Skip to main content

What it is

Every MCP server declares its tools via tools/list. When an instrumented agent calls list_tools(), LangSight captures the full input schema for every tool and stores it. The Schema tab in the MCP Servers detail panel lets you browse these schemas without writing any code or running any CLI commands. This is the canonical source of truth for what a tool actually accepts — not what documentation says, not what the agent assumes. What the server declared.
Only tools where LangSight has captured a list_tools() response appear in the Schema tab. Tools observed in traces but never via list_tools() appear in the Tools tab instead (call counts and latencies only, no schema).

Where to find it

MCP Servers (/servers) → click any server name → Schema tab

What the UI shows

Tool list

Tools are listed alphabetically. Each row shows:
FieldDescription
Tool nameDeclared tool identifier
DescriptionThe tool’s description string as declared by the server
Parameter countNumber of declared input parameters
Click any tool row to expand the parameter detail.

Parameter detail (expanded)

Each parameter is displayed as a card with:
FieldDisplay
Parameter nameIndigo monospace label
Typestring, integer, boolean, object, array, etc.
Required / OptionalBadge — red for required, grey for optional
DescriptionHuman-readable description from the schema
Enum valuesShown as chips when the parameter has a fixed value set (e.g., markdown, adf, plain_text)

Raw JSON toggle

At the bottom of each expanded tool, a “raw JSON” link reveals the full inputSchema object as syntax-highlighted JSON:
  • Keys — indigo
  • String values — green
  • Numbers — yellow
  • Booleans — orange
  • null — grey
This is the verbatim JSON that the MCP server returned. It can be copied directly into SDK code or used to verify that an agent is calling the tool with the correct arguments.

How schemas are captured

No manual registration is required. Schemas are captured automatically when an instrumented agent calls list_tools().
1

Agent calls list_tools()

Your agent (instrumented with the LangSight SDK) calls list_tools() on an MCP server as part of its normal operation.
2

SDK intercepts and ships schemas

The LangSight SDK intercepts the response and fire-and-forgets the tool list to PUT /api/servers/{name}/tools. This happens asynchronously — the agent’s call is not blocked or slowed.
3

Schema appears in the dashboard

The Schema tab is populated immediately. Subsequent health checks compute a hash of the tool list and compare it against this baseline for drift detection.
If a server has been health-checked but no schemas appear in the Schema tab, it means no instrumented agent has called list_tools() on that server yet. Run an agent session that uses the server and schemas will populate automatically.

API reference

List declared tools for a server

GET /api/servers/{name}/tools
Returns all tools captured for the given server, with their full inputSchema.
curl http://localhost:8000/api/servers/postgres-mcp/tools
[
  {
    "server_name": "postgres-mcp",
    "tool_name": "query",
    "description": "Execute a read-only SQL query against the connected PostgreSQL database.",
    "input_schema": {
      "type": "object",
      "properties": {
        "sql": {
          "type": "string",
          "description": "The SQL SELECT statement to execute"
        },
        "limit": {
          "type": "integer",
          "description": "Maximum number of rows to return",
          "default": 100
        }
      },
      "required": ["sql"]
    },
    "captured_at": "2026-03-27T09:00:00Z"
  },
  {
    "server_name": "postgres-mcp",
    "tool_name": "list_tables",
    "description": "List all tables in the connected database.",
    "input_schema": {
      "type": "object",
      "properties": {
        "schema": {
          "type": "string",
          "description": "PostgreSQL schema name",
          "default": "public"
        }
      },
      "required": []
    },
    "captured_at": "2026-03-27T09:00:00Z"
  }
]

Response fields

server_name
string
The MCP server identifier as registered in LangSight.
tool_name
string
The tool’s declared name — what agents pass as the tool identifier.
description
string
The tool’s description string as declared by the server. This is what LLMs read to decide whether to call the tool.
input_schema
object
The full JSON Schema object for the tool’s input parameters. Standard JSON Schema draft-07 format.
captured_at
string (ISO 8601)
When LangSight last captured a list_tools() response for this server that included this tool.

Relationship with Schema Drift

The Schema tab and the Drift tab use the same underlying data. The Schema tab shows the current tool schemas — what the server is declaring right now. The Drift tab shows changes — what was different at a previous point in time and how it was classified. When a drift event occurs, you can:
  1. Go to the Drift tab to see what changed (BEFORE / AFTER values, classification, affected agents)
  2. Go to the Schema tab to see the current full schema for the affected tool
Together they give you the complete picture: what changed, and what the tool looks like now.