analytics for MCP servers
Which clients connect. Which tools get called. Where agents hit errors. One dashboard, one line of code — and never a byte of your users' payloads.
install
track() wraps your FastMCP server and instruments every tool automatically. No decorators, no config file. Fire-and-forget: if Pulse is unreachable, events drop silently and your server never notices.
from mcpulse import track
mcp = track(mcp, key="pk_live_...")what you see
The MCP handshake already announces every client. Pulse surfaces it: Claude, Cursor, Windsurf, custom agents — by name and version, over time.
Calls, error rate, and p95 latency per tool. Find the tool nobody uses — and the one that times out for every agent that touches it.
A live feed of the last sixty seconds. Ship a new version, watch agents pick it up in real time.
PAYLOAD: NOT COLLECTED
This isn't a setting — it's the schema. The ingest API has no field for payloads, so nothing you didn't see here can be stored, leaked, or subpoenaed. Session hashes are salted on your machine with a salt we never receive.
share it
Every server gets a live badge and an optional public stats page. Adoption numbers are the best marketing an open-source MCP server has — now you can prove yours.
README.md
[](https://mcpulse.dev/s/your-server)pricing
$0/mo
$99/mo