Questions
Common questions about MCPulse
Answered plainly, including the ones where the honest answer is "not yet".
Installing and running it
What happens to my server if MCPulse goes down?
Nothing. The SDK runs inside your process and sends its own batches outward, so your tool calls never traverse anything of ours. A failed batch is dropped the way a network error is dropped. This is the whole reason it is a package and not a proxy: a proxy that is down is a server that is down.
Can you see my tool arguments or my results?
No. One row leaves your process per call. It holds which tool ran, how long it took, how big the answer was, and a one-way fingerprint of the arguments. There is no field that could hold customer data — which is a stronger thing to be able to say than a promise about how the fields get used. The fingerprint is twelve characters of a SHA-256 with the keys sorted: enough to tell whether two calls were the same, not enough for anything else. There is no option to turn this off, because a guarantee you can switch off is not one.
Will it slow my tools down?
Recording happens after your handler has returned and batches are sent on their own schedule, so a tool call never waits on us. The SDK has no runtime dependencies, so it drags nothing into your tree. And every path through it is wrapped: if the recording itself fails, it fails silently rather than turning a working tool call into an error. Instrumentation that can break the thing it measures is worse than no instrumentation.
Do I have to change my server's URL or its auth?
No. You add a package and wrap the server object you already built; `watch()` hands the same server back, so nothing downstream sees a difference. Your URL, your OAuth, your deployment and your dependencies are untouched. That is the point of not being a proxy: a proxy would move your traffic to a new address, which breaks your OAuth and breaks every directory that already lists you.
Which languages can I use it from?
All ten: TypeScript, Python, C#, Go, Rust, Java, Ruby, Swift, PHP and Kotlin. Every one is checked against the same wire-format fixture, so ten separate implementations cannot drift into sending ten slightly different payloads. Where the host SDK gives us a server object or middleware — TypeScript, Python, Go, Java — you wrap it and get the same thing back. The rest expose a `record()` that wraps your handler body instead, because there is no seam to attach to. And if your language is not on the list at all, ingest is one authenticated POST with two payload shapes; the package only exists to save you writing it.
How long before I see anything?
Create a server in the dashboard, paste the key, restart. The startup payload — your tool list and the byte size of each schema — arrives immediately, so dead tools and schema cost are visible before a single call happens. Per-call numbers appear as traffic does. The three nightly metrics, including first-call success, are labelled as of yesterday because they need a night's worth of calls in order.
Can I get at my own data?
Every plan reaches its own data through the API and through an MCP connector, so your agent can ask about your server the same way you would. There is also a documented agent skill that tells a model which figures are already computed server-side and must not be re-derived. Analytics you can only read inside somebody else's dashboard is a hostage, not a product.
Will this pass a security review?
The five questions a review actually asks — what leaves the process, what is retained, who is the subprocessor, can it be turned off, and what happens if you are breached — each have a written answer rather than a sales response. The short version: sizes and hashes only, no field that could hold customer data, and no dependency for us to be compromised through.
Billing
Caps, downgrades, and who takes the payment. The pricing page has the plans themselves.
- What happens at the cap?
- Recording stops, and the app says so — a banner on the overview, the meter red on the billing page, the chart flat from the moment it stopped. Your server carries on serving; the SDK treats a refused batch the way it treats a network failure and drops it, so a cap costs you data and never a tool call. A cap that is not a cap is a line nobody can plan around.
- Does downgrading delete anything?
- History is hidden, not deleted. The counters are one row per hour per tool per client and cost almost nothing to keep, so a plan decides how far back the date picker reaches rather than when a clock starts — upgrade later and the months you could not see are already there. The one thing genuinely deleted is the individual call log, which is a row per call: 7 days on Free, 90 on Pro, 365 on Scale.
- Why is a year ten months?
- Because the card fee is the part that punishes a small plan. Our merchant of record charges a percentage plus a flat fifty cents, and a year is one of those rather than twelve. Paying yearly costs us less to collect, so it costs you less to pay.
- Who takes the payment?
- Polar, as merchant of record. They are the seller, so VAT, GST and sales tax in every country are handled by somebody who does that for a living. Cards, invoices and cancellation all live in their portal — MCPulse never holds a card number.
Still not answered?
The documentation goes further on every one of these, and the SDK is on GitHub if the answer you want is in the code.
Answered? Then try it on one server
Free forever, with all sixteen metrics and no card. If a question here did not settle it, the how-it-works page has the long version.
Free forever. No card, no trial to expire. All ten MCP SDKs supported.