trackmcp
MCP server analytics

See how your MCP server is being used

Track clients, tools, sessions, failures, and workflow outcomes from one line at the server boundary. Know what to fix before another agent gets stuck.

Start measuring
$npm i @trackmcp/sdk

TypeScript and Python · asynchronous telemetry · fail-open by design

app.trackmcp.com/overview

Overview

Live
Active clients+1
4
New connections+18%
1,284
Completed+24%
968
Completion rate+3.1pt
75%
Completed workflows
968 · last 7 days
MonTueWedThuFriSatSun
Traffic by client
Claude46%
Cursor31%
ChatGPT18%
Custom agent5%
Top tools
ToolCallsAdoptionStatus
search_docs14,208Healthy
create_issue9,841Healthy
run_query6,502Slow
get_user4,120Healthy
The questions that matter

Your server is talking. Start listening.

Transport logs tell you that a request happened. MCP analytics tells you whether the agent got where it was going.

Who

Clients and connections

See which clients connect, where usage comes from, and which environments are actually active.

What

Tools and workflows

Understand the tools agents reach for, the paths they take, and the catalog gaps that block them.

Where

Failures and drop-off

Find the first broken call, retry loop, slow dependency, or silent application error inside a 200 OK.

From signal to decision

A clearer picture of every workflow.

Connect what happened at the protocol layer to the product question behind it: who tried, where they stopped, and what change is worth shipping next.

01

Adoption

Which clients and tools create real demand?

46%

Claude

02

Reliability

Which calls are slow, retried, or failing?

1.2s

p95 latency

03

Outcomes

Did the workflow finish the job?

75%

completion

Built for the server boundary

Useful telemetry without changing your tools.

Wrap the server you already ship. Redact locally, send only the metadata you need, and keep serving even if telemetry is unavailable.

  • No manual event tagging
  • Application errors remain visible inside 200 responses
  • TypeScript and Python SDKs
server.tsone line at the boundary
export default withTrackMCP(server, {
  apiKey: process.env.TRACKMCP_KEY,
  service: "acme-mcp-server",
});
Async flush · fail-open · privacy-aware

Analytics for MCP servers

Make the next call a better one.

Start with one server, one key, and one real workflow.