contextpulse

See how your MCP is being used

Track and analyze who uses your MCP server, what they are trying to do, whether the work gets done, and what to fix next. All from one line of code.

Start 14-day trial
$npm i@contextpulse/sdk

Add one line. Start learning. Fail-open by design.

ContextPulse, is analytics and observability for teams shipping Model Context Protocol servers.

See who is using it
See what they use
Know what to improve
app.contextpulse.online/overview
Live Sync

overview

Live Stream
Last 7 days
Production
send_email needs attention: failing 94% of calls this week due to schema mismatch.
Active Clients+1
4
Claude, Cursor, ChatGPT, Custom
New Connections+18%
1,284
Past 7 days across 3 hosts
Completed+24%
968
Successful agent goals achieved
Completion Rate+3.1pt
75%
Above industry median (68%)
Completed Workflows
968 sessions · last 7 days
Current Prior
MonTueWedThuFriSatSun
Traffic by Client
Claude Desktop46% (590)
Cursor AI31% (398)
ChatGPT Operator18% (231)
Custom Agent (API)5% (65)
Top Tools
ToolCallsAdoptionHealth
search_docs14,208
Healthy
create_issue9,841
Healthy
run_query6,502
Slow (p95 1.4s)
send_email3,120
94% Failing

Works out-of-the-box with every MCP client

Claude DesktopCursor AIChatGPT OperatorWindsurfCline & Roo CodeCustom Agents
Real-time Telemetry Pipeline

How ContextPulse Observes Every Protocol Frame

Zero-overhead async instrumentation at the JSON-RPC boundary.

1. AI Clients
Claude Desktop
protocol: stdio / sse
Cursor AI
protocol: stdio / sse
ChatGPT Operator
protocol: stdio / sse
ContextPulse SDKFail-Open BoundaryRedacts credentials & hashes payloads in-memory
0 prompts leaked
2. MCP Tools Executed
search_docs
latency: 48ms
Healthy
query_database
latency: 142ms
Healthy
send_email
latency: 890ms
Alert
Ingest: 1,240 events/sec
Avg overhead: < 0.4ms
100% Non-blocking Async
The Questions That Matter

Built for the way AI agents actually call tools

Traditional web APMs look for 500 errors and user IP addresses. ContextPulse is tuned to protocol handshakes, schema hallucination loops, and multi-turn completion funnels.

Client Attribution

1. Adoption: See who is using it

Stop guessing which AI clients connect to your MCP server. Track exact client application attribution—whether your queries originate from Claude Desktop, Cursor, ChatGPT, or autonomous agent loops.

Claude Desktop46% · stdio transport
Cursor (31%) ChatGPT (18%) Custom API (5%)
Ranking

2. Tools: See what they use

Rank every tool by call volume, error rate, and adoption shifts. Surface dead tools no model ever calls.

search_docs14.2k calls
create_issue9.8k calls
send_email94% err
200 OK Inspector

3. The errors in 200 OK

Agent protocols return HTTP 200 even during schema failures. Capture parameter mismatch errors before users bounce.

// Intercepted JSON-RPC response
"status": 200 OK
"error": "Missing arg 'repo_id'"
"latency_p95": "1,240ms"
Funnel Tracing

4. Outcomes: Know if work gets done

Workflow completion rate is the true north star metric for MCP servers. Track turn sequences to measure whether an agent actually accomplished its user task.

1. Handshake
100%
1,284 conn
2. List Tools
98.4%
1,263 calls
3. Tool Calls
84.2%
1,081 exec
4. Goal Done
75.4%
968 success
One-Line Integration

Install the SDK. Wrap your server. Done.

No architectural rewrites, no middleware refactoring. ContextPulse sits cleanly at the server boundary. It observes tool declarations, client connections, and tool executions asynchronously.

Fail-Open Architecture: If telemetry times out, your server continues operating flawlessly without dropping user requests.
Bounded Payload Redaction: Sensitive auth tokens, API credentials, and binary data are scrubbed before leaving process memory.
TypeScript & Python Native: Official first-class SDKs for Node.js, Bun, Deno, and Python FastMCP.
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { withContextPulse } from "@contextpulse/sdk";

const server = new McpServer({
  name: "acme-mcp-server",
  version: "1.0.0"
});

// Wrap server at export boundary
export default withContextPulse(server, {
  apiKey: process.env.CONTEXTPULSE_KEY,
  service: "acme-mcp-server",
  environment: "production"
});
Fail-open: If telemetry is unreachable, agent execution continues uninterrupted.

Frequently asked questions

Everything you need to know about observing your Model Context Protocol server.

Ready to see how your MCP server is used?

Join hundreds of engineering teams observing their Model Context Protocol servers in production. Start with a 14-day risk-free trial.