<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>MCPulse — Analytics for MCP servers</title><description>See whether your MCP tools actually work for the models calling them — retries, empty answers, schema cost and first-call success. Two lines to install.</description><link>https://getmcpulse.com/</link><item><title>What MCP servers cannot tell you</title><link>https://getmcpulse.com/blog/what-mcp-servers-cannot-tell-you/</link><guid isPermaLink="true">https://getmcpulse.com/blog/what-mcp-servers-cannot-tell-you/</guid><description>You ship a server, it gets listed, people install it. From that moment on you are working blind — and the directories report almost none of what you need.</description><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate><category>Measurement</category></item><item><title>First-call success is the only number that grades your descriptions</title><link>https://getmcpulse.com/blog/first-call-success/</link><guid isPermaLink="true">https://getmcpulse.com/blog/first-call-success/</guid><description>Uptime grades your infrastructure. Error rate grades your code. First-call success is the only metric that grades the thing you actually wrote for the model — the words.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><category>Measurement</category></item><item><title>Empty results are failures the protocol calls success</title><link>https://getmcpulse.com/blog/empty-results-are-failures/</link><guid isPermaLink="true">https://getmcpulse.com/blog/empty-results-are-failures/</guid><description>An empty array is a 200. The model got nothing it could use, the user got a shrug, and no error was recorded anywhere. These are the failures nobody reports.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate><category>Measurement</category></item><item><title>Your tool schemas are billed on every session, used or not</title><link>https://getmcpulse.com/blog/schema-tokens-every-session/</link><guid isPermaLink="true">https://getmcpulse.com/blog/schema-tokens-every-session/</guid><description>Descriptions and JSON Schema go into the context window at the start of every conversation. Twelve tools can cost 3,000 tokens before anyone asks a question.</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate><category>Tool design</category></item><item><title>Dead tools — registered, described, and never once called</title><link>https://getmcpulse.com/blog/dead-tools/</link><guid isPermaLink="true">https://getmcpulse.com/blog/dead-tools/</guid><description>Every server has at least one. It costs schema tokens on every session, competes for the model&apos;s attention, and returns nothing, because nobody has ever reached it.</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><category>Measurement</category></item><item><title>Telling a crash from an error return is harder than it looks</title><link>https://getmcpulse.com/blog/crashed-vs-tool-error/</link><guid isPermaLink="true">https://getmcpulse.com/blog/crashed-vs-tool-error/</guid><description>The MCP SDK catches whatever your handler throws and turns it into isError: true. From outside the request handler, a bug and a deliberate error are the same object.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate><category>Engineering</category></item><item><title>bad_args is a message about your schema, not about the model</title><link>https://getmcpulse.com/blog/bad-args-is-a-schema-problem/</link><guid isPermaLink="true">https://getmcpulse.com/blog/bad-args-is-a-schema-problem/</guid><description>When arguments fail validation, the instinct is that the model got it wrong. Usually the schema asked for something the model had no way to know.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>Tool design</category></item><item><title>Why we hash arguments instead of storing them</title><link>https://getmcpulse.com/blog/why-we-hash-arguments/</link><guid isPermaLink="true">https://getmcpulse.com/blog/why-we-hash-arguments/</guid><description>Twelve hex characters of a SHA-256 over the arguments, keys sorted. Enough to tell whether two calls were the same, and not enough for anything else.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><category>Privacy</category></item><item><title>Why the SDK runs inside your server instead of in front of it</title><link>https://getmcpulse.com/blog/not-a-proxy/</link><guid isPermaLink="true">https://getmcpulse.com/blog/not-a-proxy/</guid><description>A proxy is the easier product to build and the wrong one to ship. Directory-listed servers cannot change their URL, and OAuth breaks the moment traffic is redirected.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate><category>Engineering</category></item><item><title>Percentiles cannot be summed, so we bucket latency instead</title><link>https://getmcpulse.com/blog/percentiles-cannot-be-summed/</link><guid isPermaLink="true">https://getmcpulse.com/blog/percentiles-cannot-be-summed/</guid><description>You cannot average two days of p95 and get the week&apos;s p95. Four counters can be added across any range and still tell you the truth.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate><category>Engineering</category></item><item><title>Sessions cross midnight, and other counter traps</title><link>https://getmcpulse.com/blog/sessions-cross-midnight/</link><guid isPermaLink="true">https://getmcpulse.com/blog/sessions-cross-midnight/</guid><description>Bucketed counters are how a dashboard stays fast. But some things are not buckets, and summing them by day quietly double-counts every one that spans two.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate><category>Engineering</category></item><item><title>What a 10kb tool response actually costs</title><link>https://getmcpulse.com/blog/what-a-heavy-response-costs/</link><guid isPermaLink="true">https://getmcpulse.com/blog/what-a-heavy-response-costs/</guid><description>Roughly 2,500 tokens, about a cent, and a chunk of the context window that the rest of the conversation no longer has. The last one is the expensive part.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><category>Measurement</category></item><item><title>Writing tool descriptions for a reader who only gets one pass</title><link>https://getmcpulse.com/blog/writing-tool-descriptions/</link><guid isPermaLink="true">https://getmcpulse.com/blog/writing-tool-descriptions/</guid><description>The model reads your description once, alongside forty others, and decides immediately. Everything that makes documentation good makes a tool description worse.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate><category>Tool design</category></item><item><title>What gets computed at 2am, and why it cannot be done sooner</title><link>https://getmcpulse.com/blog/the-nightly-pass/</link><guid isPermaLink="true">https://getmcpulse.com/blog/the-nightly-pass/</guid><description>Three of the sixteen metrics need to see what came after a call. That is not knowable when the call arrives, so it happens overnight — and the dashboard says so.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>Engineering</category></item><item><title>Counters exist so that calls can be deleted</title><link>https://getmcpulse.com/blog/rollups-exist-so-events-can-be-deleted/</link><guid isPermaLink="true">https://getmcpulse.com/blog/rollups-exist-so-events-can-be-deleted/</guid><description>Every call is written twice — once as a row you will throw away, once as a counter you keep forever. The second one is what makes the first one disposable.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate><category>Engineering</category></item><item><title>Naming tools for a reader who cannot see your API</title><link>https://getmcpulse.com/blog/naming-tools/</link><guid isPermaLink="true">https://getmcpulse.com/blog/naming-tools/</guid><description>The model has your tool name, your description, and nothing else. No source, no docs site, no colleague to ask. The name is doing more work than you think.</description><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate><category>Tool design</category></item><item><title>Instrumentation must never break the thing it measures</title><link>https://getmcpulse.com/blog/instrumentation-must-never-break-it/</link><guid isPermaLink="true">https://getmcpulse.com/blog/instrumentation-must-never-break-it/</guid><description>The SDK runs inside someone else&apos;s production server. Three rules follow from that, and none of them are negotiable — including handing the server back unmodified.</description><pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate><category>Engineering</category></item><item><title>Which tools get called together, and what that tells you</title><link>https://getmcpulse.com/blog/tool-pairs/</link><guid isPermaLink="true">https://getmcpulse.com/blog/tool-pairs/</guid><description>Models chain tools. When two of yours are always called in sequence, that pattern is usually a design note you have not read yet.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><category>Measurement</category></item><item><title>Cost per session is the number to quote when someone asks what your server costs</title><link>https://getmcpulse.com/blog/cost-per-session/</link><guid isPermaLink="true">https://getmcpulse.com/blog/cost-per-session/</guid><description>Not the monthly bill — that measures how popular you are. Cost per session measures how expensive you are, which is the part you control.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate><category>Measurement</category></item><item><title>The five questions a security review will ask about your analytics</title><link>https://getmcpulse.com/blog/passing-a-security-review/</link><guid isPermaLink="true">https://getmcpulse.com/blog/passing-a-security-review/</guid><description>If your MCP server touches customer data, someone will eventually ask what your monitoring vendor receives. These are the questions, and the answers that end the conversation.</description><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate><category>Privacy</category></item></channel></rss>