See every MCP call your agents make
Trace MCP clients and servers in the same trace. Find the tools that fail, the methods that run slow, and the client calls that never reach a server.
Your coding agent finds your MCP clients and servers, wraps their transports, and sends a test request. For the official TypeScript MCP SDK v2.
- MCP spans
- 48,906
- Failed-span rate
- 2.8%
- p95 span duration
- 1.42s
- Observed sessions
- 3,214
- tools/call · create_refund2m agoTool resulttool_errorserver
- tools/call · get_invoice9m agoTransportconnection_errorclient
- tools/call · update_shipping_address14m agoRequest validation-32602client
- resources/read · orders://447131m agoResource not found-32002client
Find the failing tool. Follow it to the server.
Each MCP request becomes a span with its method, tool, session, and protocol version, so MCP traffic sits in the trace next to your model calls.
Know why a tool failed
Each failure gets a category from its error type and JSON-RPC code. A timeout, a bad argument, and an error that your tool returns do not look the same.
- Tool result412
- Transport188
- Request validation96
- Server41
- Resource not found22
- Cancellation9
- Top tool
- create_refund
- Error type
- tool_error
- Side
- client and server
Pair each client call with its server
See the client overhead, and the calls that never reached a server.
- Paired
- 15,402
- p95 client overhead
- 84ms
- Missing server
- 37
- Server span missing
- 37
- Response code mismatch
- 9
- Protocol version mismatch
- 3
- Duration inversion
- 0
Let your coding agent read the traces
Our read-only MCP server lets your agent search traces and read span trees.
Connect an AI agent- search_traces
- get_trace
- get_span_payloadneeds payload access
- search_sessions
- get_usage_summary
- list_logs · list_projects
Instrument the transport
Wrap the client transport, the server transport, or both. Spans from both sides join the same trace.
- 01Install the MCP package
- 02Wrap your transport
- 03Open MCP in your project
Tool arguments and results stay out of the spans by default. The spans still record method and tool names, resource URIs, and error details. Works with the TypeScript MCP SDK v2.
import { Client } from "@modelcontextprotocol/client";
import { StdioClientTransport } from "@modelcontextprotocol/client/stdio";
import { instrumentMcpTransport } from "@telemetry-dev/mcp";
import { init } from "@telemetry-dev/sdk";
init({ serviceName: "support-agent" });
const client = new Client({ name: "support-agent", version: "1.0.0" });
const transport = instrumentMcpTransport(
new StdioClientTransport({ command: "acme-mcp" }),
);
await client.connect(transport);import { McpServer } from "@modelcontextprotocol/server";
import { StdioServerTransport } from "@modelcontextprotocol/server/stdio";
import { instrumentMcpTransport } from "@telemetry-dev/mcp";
import { init } from "@telemetry-dev/sdk";
init({ serviceName: "acme-mcp" });
const server = new McpServer({ name: "acme-mcp", version: "1.0.0" });
const transport = instrumentMcpTransport(new StdioServerTransport());
await server.connect(transport);Trace your next AI request
Choose an integration, add your project API key, and run an instrumented request.
Start free
30,000 ingestion units a month, one per span, log record, or metric data point. No credit card required.
npm install @telemetry-dev/sdkTalk to an engineer
Our team shows you tracing, cost tracking, and privacy controls for the frameworks and model providers that you use.