Skip to main content

Overview

The MCP Servers page at /servers is a catalog of every MCP server that LangSight has observed or health-checked. It uses the same adaptive three-state layout as the Agents page.

Three-state layout

State 1 — No server selected

A full-width sortable table with columns:
ColumnDescription
ServerServer name (from server_name field in spans)
OwnerEditable in the detail panel
TagsEditable in the detail panel
StatusCurrent health status from the most recent health check
LatencyCurrent p99 latency with a sparkline trend
UptimeUptime percentage across the last 20 health checks
ToolsNumber of declared tools known for this server
CheckedTime since last health check
A Needs Attention banner appears above the table when any server is down or degraded. Click a server in the banner or in the table to open the detail panel.

State 2 — Server selected

A 280px left sidebar lists all servers with status dots. The right panel shows the selected server’s details in four tabs.

State 3 — (no full-width mode for servers)

The MCP Servers catalog does not have a full-width topology mode. The Topology view for server-to-agent relationships is available from the Agents catalog.

Detail panel tabs

About

Editable metadata stored in the server_metadata table:
FieldDescription
DescriptionFree-text description of what this server does
OwnerTeam or person responsible for this server
TagsLabels for filtering and grouping (e.g. production, data)
TransportTransport type: stdio, sse, or streamable_http
Runbook URLLink to operational runbook
All edits save on blur via PUT /api/servers/metadata/{name}.

Tools

A table of every tool declared by this server. The Tools tab is populated automatically — no manual registration is needed.
ColumnDescription
Tool nameName as returned by tools/list
DescriptionTool description from the MCP schema
Total callsNumber of times this tool was called by instrumented agents
ErrorsNumber of failed calls
p99 latency99th percentile latency across recorded calls
Success ratePercentage of successful calls
Tools that exist in the server’s schema but have not yet been called by an instrumented agent appear with 0 calls and their description from the schema.
The Tools tab populates through the SDK’s automatic tool-schema capture. Every time an instrumented agent calls list_tools() on an MCP client, LangSight records the tool names, descriptions, and input schemas. See SDK — Automatic Tool Schema Capture below.

Health

  • Uptime percentage across the last 20 health checks
  • Latency trend chart (last 20 checks)
  • Table of the last 15 health checks: timestamp, status, latency, tools count, error message

Consumers

Which agents have called this server, derived from the lineage graph. Shows agent name, total calls from this agent to this server, and a link to the Agents catalog entry.

SDK — Automatic Tool Schema Capture

When the LangSight SDK wraps an MCP client via MCPClientProxy, it intercepts every call to list_tools(). On each call, the tool names, descriptions, and input schemas are fire-and-forget posted to the backend. The MCP client continues normally even if the backend is unreachable. This means:
  • The Tools tab populates the first time an instrumented agent runs — no health checker required.
  • Tools that are declared by the server but never called still appear in the Tools tab (with 0 calls) because their schema was captured on list_tools().
from langsight import LangSightClient

client = LangSightClient(
    url="http://localhost:8000",
    project_id="production",
)

# The SDK wraps your MCP clients automatically.
# list_tools() calls are intercepted and tool schemas posted to LangSight.
async with client.mcp_session("postgres-mcp") as session:
    tools = await session.list_tools()  # schema captured here
    result = await session.call_tool("query", {"sql": "SELECT 1"})

API reference

MethodEndpointDescription
GET/api/servers/metadataList all server metadata records
PUT/api/servers/metadata/{name}Upsert metadata for a server (description, owner, tags, transport, runbook_url)
GET/api/servers/{name}/toolsList declared tools for a server
PUT/api/servers/{name}/toolsBulk-upsert tool declarations (used by SDK; also callable directly)