Key takeaways
- Instrumenting at the protocol layer costs one line and one deploy.
- You get clients, adoption, completions, and silent failures on day one.
- Add redaction and custom events later, only if you need them.
The reason most MCP servers ship without analytics is not disagreement about value; it is the assumed cost. But instrumenting at the protocol layer means the cost is one line and one deploy.
The whole setup
import { withTrackMCP } from "@trackmcp/sdk";
import { server } from "./mcp";
export default withTrackMCP(server, {
apiKey: process.env.TRACKMCP_KEY,
service: "acme-mcp-server",
});Python is the same shape with with_trackmcp. Your tools do not change. There are no per-tool decorators and no custom events required to get the core picture.
What you get on day one
- Active clients and client mix
- Tool adoption and the tools nobody calls
- Completed workflows and where sessions stop
- Silent failures hiding inside successful responses
Start there. Add redaction and custom events later if you need them. The point is that the first insight is minutes away, not a quarter away.
See this on your own server
TrackMCP turns your MCP server's calls into adoption, workflows, and outcomes. One line to install.