NewIntroducing Spanly

Observability for MCP servers

Every tool call, every packet, any language. No code changes.

The dedicated layer for Model Context Protocol (MCP) traffic, alongside the Datadog, Sentry, or New Relic you already run. Built for engineering teams shipping MCP servers in production.

Free tier, no credit card · Open-source SDK & CLI on GitHub

Spanly dashboard

< 1ms

SDK overhead per request.

99.9%

Uptime SLA for data ingestion.

2 regions

US and EU, with full data residency.

APM-ready

Correlate any MCP exchange with its APM trace.

Open source

SDK and CLI source on GitHub, Apache 2.0.

Wrap your server with the CLI or drop in the SDK. No code changes required.

Founding Partner Program · First 10 production MCP teams. 50% off Business for 12 months, locked in.

Apply →
WHY A DEDICATED LAYER

Don't APMs cover MCP now?

Sentry and New Relic ship MCP instrumentation in their SDKs. Datadog traces it from the client side. That works if your server runs a supported language and you can change its code.

Spanly works at the protocol level. An on-call engineer reads a failing tool call without piecing it together from spans.

Any languageNo code changesFull payloads
tools/call
error412ms
Request
{
"jsonrpc": "2.0",
"id": 47,
"method": "tools/call",
"params": {
"name": "create_invoice",
"arguments": {
"amount": 4200,
"currency": "USD$"
}
}
}
Response
{
"jsonrpc": "2.0",
"id": 47,
"error": {
"code": -32602,
"message": "currency must be ISO 4217"
}
}
server billing-mcp·client claude-desktop·v2.3.1
Approach
Your APM
Vendor SDK inside your server process
Spanly
Transport level: wrap the process or proxy the traffic
Languages
Your APM
Node and Python agents
Spanly
Any language, stdio or HTTP, zero code changes
Payloads
Your APM
Tool calls as spans, against your tracing quota
Spanly
Full JSON-RPC packets: arguments, results, errors, timings
Third-party
Your APM
Needs code you can instrument
Spanly
Proxy mode covers servers you don’t own
Tenancy
Your APM
Tags you wire up yourself
Spanly
Per-client and per-tenant views via headers or JWT claims

We complement your existing stack. We don't replace it. What is MCP observability?

What does Spanly monitor?

Every MCP request your server handles, from tools/call to resource reads.

initialize3021ms2ms15ms
tools/call1041ms6ms8ms
resources/read621ms1ms1ms

Real-time Traces

Visualize every request and response between clients and servers with detailed timing breakdowns.

Error Rate
0.42%
−12%
Affected Servers
3
+1
Error CodeCountLast Occurred
Invalid Params242m ago
Internal Error1114m ago
Request Timeout71h ago
Method Not Found53h ago
Connection Closed38h ago

Error Tracking

Catch errors before your users do. Recurring failures show up once, not a thousand times.

Slowest operations
p50p95p99
tools/call: web_search
58380890
tools/call: code_exec
210480720
resources/read: /docs/api
76280540
prompts/get: search
22210320
tools/call: file_read
82140180
initialize
184265

Performance Metrics

Monitor request durations, identify bottlenecks, and track performance trends over time.

Cursor
14.1k+9%
Error rate0.18%
Codex CLI
9.7k+14%
Error rate0.21%
Claude Code
18.2k+28%
Error rate0.09%
Windsurf
6.3k+41%
Error rate0.27%
Copilot
11.5k3%
Error rate0.14%
Cline
4.8k+22%
Error rate0.33%
Zed
3.2k+52%
Error rate0.41%
Continue
2.1k+7%
Error rate0.19%

Analytics

Aggregate usage across servers and clients to spot trends and tune performance.

Distinct versions over time
1.3.71.4.21.5.0
VersionConnectionsp50p95p99
v1.3.7
142
38110180
v1.4.2
891
42128210
v1.5.0
318
86340620

Catch the bad deploy

Every request is tagged with the server and client version that handled it.

DATA RESIDENCY

Your data, in your region

Pick US or EU when you create a project. Telemetry stays there.

2 regions
US and EU ingest endpoints. Pick one per project; data never leaves it.
1 jurisdiction
EU customers keep all telemetry inside the EU. GDPR-ready, no US-side replication.
0 cross-region copies
Daily backups live in the same region as your live data. Never replicated elsewhere.
Operate at scale

What do you ship to the on-call team?

Live status, alerts, session traces, and logs from your MCP server.

Status board

Built for the office TV

Pin always-on status boards to any screen. Full-screen, auto-refresh, no chrome.

Auto-refresh · 30sLive
Uptime
99.97%
p95
142ms
Errors
18
Open incidents
2
Alerts

Alerts, before users notice

Thresholds on error rate, p95/p99, or traffic.

p99 latency exceeded threshold on mcp-prod-east
p99 > 500ms for 5mjust now
Error rate spiked on tool code_exec
errors > 2% for 10m6m ago
Traffic dropped 40% on client Cursor
volume drop > 30% for 15m24m ago
Sessions

Trace every session, end to end

Group requests by session to see the full arc of an interaction.

  • sess_72c1ed40· started 12m ago12m 04s
    40 req2 err
  • sess_8a39f10c· started 3m ago3m 22s
    18 req0 err
  • sess_5d20b4ee· ended 2h ago41m 18s
    112 req5 err
  • sess_19b7cc28· ended 5h ago1m 02s
    7 req0 err
Logs

Logs, alongside your requests

Capture every notifications/message your MCP server emits.

  • 12:42:08infomcp.server
    client Cursor connected (protocol 2025-06-18)
  • 12:41:55warningmcp.tools.code_exec
    sandbox cold-start exceeded 800ms
  • 12:39:21errormcp.transport
    stream closed unexpectedly mid-response
  • 12:38:02debugmcp.resources
    cache miss on /docs/api, fetched in 76ms

How fast can you be live?

Drop the SDK into your MCP server. No schema to maintain, no agent process, no rebuild.

For your server

Instrument your MCP server

Every prompt, tool call, and resource gets traced.

Install
$ npm install @spanly/sdk
Usespanly-setup.ts
import express from "express";
import { spanly } from "@spanly/sdk";

const app = express();
app.use(spanly({ apiKey: process.env.SPANLY_API_KEY }));
Also

Query Spanly from your editor

Spanly ships its own MCP server. Search traces and triage errors from your IDE.

$ claude mcp add --transport http spanly https://mcp.spanly.com
Spanly

Start monitoring your MCP servers

Engineering teams: add the MCP layer to your observability stack in under 5 minutes.