Beta. The TypeScript package is on npm under the
beta tag. The Python package is not on PyPI yet, and SDK keys are not being issued yet. For early access, email support@agentdiscoverability.com.initialize, tools/list and tools/call it handles. It only observes: it never changes your tools, their results or their speed.
1. Get an SDK key
Create one on the MCP page. It starts withadok_ and is shown only once. Store it as MCP_ANALYTICS_SDK_KEY and never commit it.
2. Install
3. Call observe()
Call it once, after your tools are registered and before the server starts.
server can be a Server or McpServer (TypeScript), or a FastMCP, MCPServer or Server (Python). observe() never throws. If the key is missing it logs a warning and leaves the server uninstrumented.
4. Verify
Connect any MCP client to your server. Within about a minute, the MCP page changes from Waiting for your first event… to Receiving · N events. You don’t need to call a tool first. To check locally, inspect the handleobserve() returns. client.stats() should show sent above zero and dropped at zero.
Requirements
Not supported: MCP SDK v2 (
@modelcontextprotocol/server), CommonJS, Bun, Deno, Cloudflare Workers, or fastmcp 2.x.
What is collected
- The tool name, the argument shape (key names and types, not values), duration and errors
- The tool result, sanitized and truncated
- The AI client family (Claude, ChatGPT, Cursor…) and versions
- An end-user id only if you supply one. It is hashed before storage.
Troubleshooting
Still stuck? Email support@agentdiscoverability.com with your key prefix (never the full key) and the
stats() output.
For coding agents
- Find the file that creates the MCP server and registers tools.
- Add the dependency, then the
observe()call from step 3, after the tools are registered. - Read the key from
MCP_ANALYTICS_SDK_KEYand keep it out of git. - Change nothing else. No tool name, schema or result may change.
- Run the server, connect a client, and report the changed file and the
stats()output.