# MCPulse - [Introduction](https://docs.getmcpulse.com/introduction.md): Analytics for MCP servers. See whether your tools actually work for the models calling them — retries, empty answers, schema cost and first-call success. - [Get Started](https://docs.getmcpulse.com/quickstart.md): Create an MCPulse account, add an MCP, mint an ingest key, wrap your server with the SDK, and see live tool analytics in minutes. - [Authentication](https://docs.getmcpulse.com/authentication.md): MCPulse has two credentials that never overlap: an ingest key your server holds, and a session token your browser holds. Which one goes where, and why. - [Security & data access](https://docs.getmcpulse.com/security.md): MCPulse runs inside your MCP server. What it records, what it can never record, how accounts are isolated, and how keys are handled. - [Create an MCP](https://docs.getmcpulse.com/mcps/create.md): One MCP per server you want to track. What creating one does, and what happens next. - [The sample MCP](https://docs.getmcpulse.com/mcps/sample.md): Acme Orders — thirty days of fabricated traffic, seeded into every new account so the product can show what it does before you have wired anything up. - [The MCP list](https://docs.getmcpulse.com/mcps/list.md): The home screen: every tracked server, its calls in the last 30 days, and its first-call success rate. - [Rename an MCP](https://docs.getmcpulse.com/mcps/rename.md): Change the name of a tracked server without touching a single recorded call. - [Delete an MCP](https://docs.getmcpulse.com/mcps/delete.md): What deleting a tracked server removes, what it leaves, and why there is no undo. - [Install the SDK](https://docs.getmcpulse.com/sdk/install.md): @mcpulse/sdk — one import, one wrap. No runtime dependencies, Node 20.12 or newer. - [Serving over stdio](https://docs.getmcpulse.com/sdk/stdio.md): The common shape: one long-lived MCP server, wrapped once at the top level. - [Serving over HTTP](https://docs.getmcpulse.com/sdk/http.md): Streamable HTTP builds a fresh McpServer per request. Wrap inside the factory, not around a long-lived instance. - [Options](https://docs.getmcpulse.com/sdk/options.md): Everything watch() accepts, what each default is, and what happens when you leave it out. - [What is sent](https://docs.getmcpulse.com/sdk/what-is-sent.md): The two payloads that leave your process, the four outcomes, how empty results are detected, and how batches are buffered. - [SDK troubleshooting](https://docs.getmcpulse.com/sdk/troubleshooting.md): Nothing is arriving, numbers look doubled, or first-call success reads 100% forever. What each symptom means. - [The overview](https://docs.getmcpulse.com/metrics/overview.md): What every card, chart and panel on an MCP's main screen is measuring, and how the date range, the tool filter and the client filter change each one. - [Calls](https://docs.getmcpulse.com/metrics/calls.md): How many times your tools ran: per tool, per day, and across the whole server. - [Live calls](https://docs.getmcpulse.com/metrics/live-calls.md): The per-call feed: every call your server handled, newest first, on a five-second poll — and the only screen in MCPulse that reads individual rows. - [First-call success](https://docs.getmcpulse.com/metrics/first-call-success.md): The headline metric: did the model get what it wanted on the first try? How retries are detected, and why the number lags a day. - [Outcomes](https://docs.getmcpulse.com/metrics/outcomes.md): How calls ended: ok, empty, bad_args, tool_error and crashed — and why empty is its own slice. - [Empty results](https://docs.getmcpulse.com/metrics/empty-results.md): Calls that succeeded and returned nothing useful — the failure that reports success. - [Latency](https://docs.getmcpulse.com/metrics/latency.md): Four buckets rather than a stored percentile, why that is the right shape, and what p95 means here. - [Response size](https://docs.getmcpulse.com/metrics/response-size.md): What each answer costs the context window, in bytes, tokens and dollars. - [Sessions](https://docs.getmcpulse.com/metrics/sessions.md): One client connection, however many calls it holds. Why sessions have their own table and are never summed per day. - [Cost per session](https://docs.getmcpulse.com/metrics/cost.md): What one conversation with your server costs the person running it, in dollars of context. - [Schema size](https://docs.getmcpulse.com/metrics/schema-size.md): What each registered tool costs the context window before it is ever called. - [Tool pairs](https://docs.getmcpulse.com/metrics/tool-pairs.md): Which tools get called alongside each other inside a session, and what a strong pair usually means. - [Clients](https://docs.getmcpulse.com/metrics/clients.md): Which MCP clients are calling your server, and how the split is recorded. - [Tool health](https://docs.getmcpulse.com/tools/health.md): Every tool on a server, called or not, with the badge that says which one is the problem. - [Tool detail](https://docs.getmcpulse.com/tools/detail.md): One tool in full: outcomes, latency distribution, retries, response size and what it gets called alongside. - [Dead tools](https://docs.getmcpulse.com/tools/dead.md): Tools your server registers and nobody calls — and what they cost in every session anyway. - [Insights](https://docs.getmcpulse.com/insights/overview.md): Five rules that name a tool, a number and a consequence. The thresholds, the minimum sample, and how they are ordered. - [Low first-call success](https://docs.getmcpulse.com/insights/low-first-call.md): Agents struggle with this tool. What the rule measures, and the fixes in the order they usually work. - [Heavy payload](https://docs.getmcpulse.com/insights/heavy-payload.md): This tool returns a lot of context. What it costs per call and across the range, and how to cut it. - [Silent empties](https://docs.getmcpulse.com/insights/silent-empties.md): Calls that succeed and return nothing. The agent was told these worked. - [Dead tool](https://docs.getmcpulse.com/insights/dead-tool.md): Registered, never called, and charging every session for the privilege. - [Slow tool](https://docs.getmcpulse.com/insights/slow-tool.md): More than a tenth of these calls take over two seconds, and the agent is visibly waiting. - [Alert rules](https://docs.getmcpulse.com/alerts/rules.md): A rule per MCP, scoped to a tool and a client, evaluated once a night against one day of data. - [Channels](https://docs.getmcpulse.com/alerts/channels.md): Four destinations on /settings/channels. Two are yours, two are the account's, and delivery is the intersection of what a rule uses and what you accept. - [The weekly digest](https://docs.getmcpulse.com/alerts/digest.md): A summary of one server, subscribed to per person and per MCP. - [Create a key](https://docs.getmcpulse.com/api-keys/create.md): Mint an ingest key for one MCP. It is shown once, at creation, and never again. - [List keys](https://docs.getmcpulse.com/api-keys/list.md): Every key on an MCP, live and revoked, with the prefix and the name you gave it. - [Revoke a key](https://docs.getmcpulse.com/api-keys/revoke.md): Stop a key working immediately. What happens to the server still using it. - [Account settings](https://docs.getmcpulse.com/account/overview.md): Five settings pages behind one sidebar entry, and what lives on each. - [Your profile](https://docs.getmcpulse.com/account/profile.md): Your display name and your email address, on /settings/my-account. - [Delete your account](https://docs.getmcpulse.com/account/delete.md): Owner-only, type-to-confirm, and irreversible. Exactly what it removes. - [Invite someone](https://docs.getmcpulse.com/team/invite.md): Add a teammate by email. They appear on the team list immediately, as invited. - [Roles and permissions](https://docs.getmcpulse.com/team/roles.md): Three roles, account-wide. What each can do, and why enforcement lives in the API. - [Manage the team](https://docs.getmcpulse.com/team/manage.md): One table for everyone in the account, arrived or not. Changing roles, removing people, withdrawing invitations. - [Company profile](https://docs.getmcpulse.com/company/profile.md): The account's name and details, on /settings/company. - [Plans](https://docs.getmcpulse.com/billing/plans.md): Free, Pro and Scale — what each one allows, what happens when you reach a limit, and what a downgrade does and does not destroy. - [Usage](https://docs.getmcpulse.com/billing/usage.md): This month's consumption across the whole account — calls, bytes, tokens and cost. - [Guides](https://docs.getmcpulse.com/guides/overview.md): Walkthroughs for the jobs MCPulse exists to do — instrumenting a server, and then acting on what it tells you. - [Instrument your first server](https://docs.getmcpulse.com/guides/first-server.md): From an empty account to real numbers on the overview, with a way to check each step actually worked. - [Improve first-call success](https://docs.getmcpulse.com/guides/improve-first-call.md): Find the tool costing you the most retries, work out which of the three causes it is, and confirm the fix. - [Cut context cost](https://docs.getmcpulse.com/guides/cut-context-cost.md): Your server has two costs — what it returns per call, and what it charges every session before it is called. Both, in the order worth fixing. - [Find dead tools](https://docs.getmcpulse.com/guides/find-dead-tools.md): Tools your server registers and nobody calls, priced against the sessions paying for them. - [Local development](https://docs.getmcpulse.com/guides/local-development.md): Point the SDK at an API on your own machine, and turn instrumentation off in tests and CI. - [Overview](https://docs.getmcpulse.com/api/introduction.md): The MCPulse REST API. Ingest telemetry, read every metric the dashboard shows, and manage MCPs, keys and the account. - [Quickstart](https://docs.getmcpulse.com/api/quickstart.md): Post a payload with curl, then read it back. The shortest path through the API. - [Authentication](https://docs.getmcpulse.com/api/concepts/authentication.md): Two Bearer tokens that never substitute for each other, and how each is verified. - [Ingest](https://docs.getmcpulse.com/api/concepts/ingest.md): POST /v1/ingest — batches, the 202, and why one bad payload never costs you the other 499. - [Date ranges](https://docs.getmcpulse.com/api/concepts/date-ranges.md): from and to, the eleven presets, the hourly grain on a one-day window, and why every day is a UTC day. - [The nightly pass](https://docs.getmcpulse.com/api/concepts/nightly-pass.md): Three metrics are computed after the fact at 02:00 UTC, alerts are evaluated at 02:15, and cleanup runs at 03:00. What that means for the numbers you read. - [Errors](https://docs.getmcpulse.com/api/concepts/errors.md): One error shape everywhere, what each status means, and why another account's resource answers 404. - [Rate limits](https://docs.getmcpulse.com/api/concepts/rate-limits.md): 10,000 payloads a minute per ingest key, counted in payloads rather than requests. - [Versioning & stability](https://docs.getmcpulse.com/api/concepts/versioning.md): The wire version, the URL version, and what counts as a breaking change. - [Health Check](https://docs.getmcpulse.com/api/ingest/health-check.md): Liveness. Returns the current server time. - [List MCPs](https://docs.getmcpulse.com/api/mcps/list-mcps.md) - [Create MCP](https://docs.getmcpulse.com/api/mcps/create-mcp.md) - [Get MCP](https://docs.getmcpulse.com/api/mcps/get-mcp.md) - [Delete MCP](https://docs.getmcpulse.com/api/mcps/delete-mcp.md): Deletes the MCP and everything under it — keys, calls, hourly counters, sessions and tool pairs. Siblings are untouched. This cannot be undone. - [Rename MCP](https://docs.getmcpulse.com/api/mcps/rename-mcp.md) - [Get Overview](https://docs.getmcpulse.com/api/metrics/get-overview.md): Headline metrics, outcome breakdown, latency distribution, daily series and tool health for one MCP. - [List Tools](https://docs.getmcpulse.com/api/metrics/list-tools.md): Every tool the server registers, called or not. A tool with no calls in range still appears, because it still costs its schema in every session. - [Get Tool](https://docs.getmcpulse.com/api/metrics/get-tool.md): One tool in detail: outcome breakdown, latency distribution, retries, first-call success, response size, and which tools get called alongside it. - [Get Insights](https://docs.getmcpulse.com/api/metrics/get-insights.md): What is wrong, as sentences with a tool name, a number and a consequence: low first-call success, heavy payloads, silent empties, dead tools, slow tools. - [List Sessions](https://docs.getmcpulse.com/api/metrics/list-sessions.md): Sessions in range with calls, bytes and cost per session, plus the most recent ones. Counted by start time rather than summed per day, so a session crossing midnight stays one. - [List Events](https://docs.getmcpulse.com/api/metrics/list-events.md): Individual calls, newest first — the live feed. - [List Keys](https://docs.getmcpulse.com/api/keys/list-keys.md): Prefixes only. The key itself is never stored — only a SHA-256 hash and the first 12 characters. - [Revoke Key](https://docs.getmcpulse.com/api/keys/revoke-key.md): Revoked, not deleted, so a key that stopped working is still explicable. Takes effect immediately — the ingest resolution cache is cleared. - [List Alerts](https://docs.getmcpulse.com/api/alerts/list-alerts.md): Every alert rule on this MCP, with the sentence it reads as, when it last fired and how often. - [Create Alert](https://docs.getmcpulse.com/api/alerts/create-alert.md): Admin or owner. An empty `tool_name` or `client_name` means every one of them. - [List Alert Firings](https://docs.getmcpulse.com/api/alerts/list-alert-firings.md): What has fired on this MCP, newest first, as sentences. - [Delete Alert](https://docs.getmcpulse.com/api/alerts/delete-alert.md): Admin or owner. Deleted outright rather than disabled — the toggle already exists for "stop telling me for now", so a soft delete would be a third state nobody asked for. Its firing history goes with it. - [Update Alert](https://docs.getmcpulse.com/api/alerts/update-alert.md): Admin or owner. Omitted fields are left alone, so the enable/disable toggle is a one-field PATCH rather than a round trip to read the rule first. - [Get Digest Subscription](https://docs.getmcpulse.com/api/alerts/get-digest-subscription.md): Whether this person wants this MCP in their weekly digest, and through which channels. One digest per MCP — five subscribed servers send five digests. Nothing sends yet; the subscription is stored so the sending job has an answer waiting rather than a design question. - [Set Digest Subscription](https://docs.getmcpulse.com/api/alerts/set-digest-subscription.md): Subscribe or unsubscribe this person from this MCP's weekly digest. Anyone who can read the MCP may set their own — a member unable to subscribe to a summary of numbers they are allowed to look at would be a permission protecting nothing. - [Get Account](https://docs.getmcpulse.com/api/account/get-account.md): The caller's account and their role in it. - [Get Account Usage](https://docs.getmcpulse.com/api/account/get-account-usage.md): This month's consumption across the whole account — calls, bytes, tokens and cost. - [Provision Account](https://docs.getmcpulse.com/api/account/provision-account.md): Creates everything a newly verified person needs: the account, their membership, the sample MCP, then a Polar customer and the billing row carrying its id — the customer before the row, so a billing row is never written without one. - [Get Billing](https://docs.getmcpulse.com/api/account/get-billing.md): The plan, what it allows, what has been used against it, and the whole catalogue. - [Start Checkout](https://docs.getmcpulse.com/api/account/start-checkout.md): A hosted Polar checkout for one plan, as a URL to redirect to. Owner only — this is the other decision that costs money and binds the whole team. - [Open Billing Portal](https://docs.getmcpulse.com/api/account/open-billing-portal.md): A signed link into Polar's customer portal for invoices, card details and cancellation. Admins as well as owners: reading an invoice is not the same act as agreeing to a charge. - [List Members](https://docs.getmcpulse.com/api/account/list-members.md): Everyone in the account, arrived or not. An invitation is a member with status `invited`. - [Invite Member](https://docs.getmcpulse.com/api/account/invite-member.md): Adds them to the members list straight away with status `invited`. They become `active` the first time they sign in with this address. - [Remove Member](https://docs.getmcpulse.com/api/account/remove-member.md): Removes a member, or withdraws an invitation — the same row either way. - [Update Member Role](https://docs.getmcpulse.com/api/account/update-member-role.md) - [Get Profile](https://docs.getmcpulse.com/api/account/get-profile.md): The signed-in person's own details. - [Update Profile](https://docs.getmcpulse.com/api/account/update-profile.md): Both fields are optional and an omitted one is left alone — the theme menu sends only a theme, the settings form only a name. - [Get Company](https://docs.getmcpulse.com/api/account/get-company.md): The account's company profile. `timezone` is display only — every rollup is bucketed in UTC. - [Update Company](https://docs.getmcpulse.com/api/account/update-company.md): The only writer for the account's name. - [Get Channels](https://docs.getmcpulse.com/api/account/get-channels.md): Where anything the product wants to tell you goes. - [Update Personal Channels](https://docs.getmcpulse.com/api/account/update-personal-channels.md): This person's own switches, for the personal channels only. Merges rather than replaces, so a body carrying one channel cannot switch the other off. - [Connect Slack or Discord](https://docs.getmcpulse.com/api/account/connect-slack-or-discord.md): Admin or owner. Stores an incoming webhook for the account, replacing any existing one for that provider. - [Disconnect Slack or Discord](https://docs.getmcpulse.com/api/account/disconnect-slack-or-discord.md): Admin or owner. Alerts naming this channel stop delivering to it and keep their other channels — the rule is not edited, because disconnecting is an account decision and rewriting everyone's rules to match would be a second, invisible one. - [Get Inbox](https://docs.getmcpulse.com/api/account/get-inbox.md): This person's in-app alert deliveries, newest first, with an unread count. - [Mark Inbox Read](https://docs.getmcpulse.com/api/account/mark-inbox-read.md): Marks the given deliveries read, or every unread one with `all`. Ids rather than a blanket clear by default, so opening the panel does not silently dismiss something you scrolled past. - [Overview](https://docs.getmcpulse.com/mcp/overview.md): MCPulse ships its own MCP server, so Claude and other agents can read your analytics directly. - [Connect](https://docs.getmcpulse.com/mcp/connect.md): Point Claude, Cursor or any MCP client at MCPulse over streamable HTTP. - [MCP authentication](https://docs.getmcpulse.com/mcp/auth.md): MCPulse is an OAuth 2.0 resource server. What the discovery flow does, and what a token is checked for. - [Tools](https://docs.getmcpulse.com/mcp/tools.md): 24 tools across MCPs, metrics and the account — what each takes, which ones write, and the two that deliberately don't exist. - [Playbooks](https://docs.getmcpulse.com/mcp/playbooks.md): Prompts that work, and what the agent should be doing behind each. - [Skills](https://docs.getmcpulse.com/mcp/skills.md): Install MCPulse as a reusable skill for AI agents - [MCP troubleshooting](https://docs.getmcpulse.com/mcp/troubleshooting.md): What the common errors mean, and where each one is actually coming from. - [August 2026](https://docs.getmcpulse.com/changelog/2026-08.md): Release notes for MCPulse. ## OpenAPI Specs - [openapi](https://api.getmcpulse.com/docs/openapi.json)