What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
To find out whether an MCP tool description is confusing callers in production, log each recovery response as a structured event and attach the identity of the deployed tool description and schema. In one implementation report, Steef-Jan Wiggers used sentinel events, a description hash and a schema version to connect caller misunderstandings with the contract that produced them.
What “contract” means in this implementation
Here, the contract is the interface exposed to an MCP caller through tool descriptions and properties—not a legal agreement. Those descriptions help a model choose and use tools. When a caller misunderstands one, the failure may surface as a recovery response rather than as an obvious server error.
As an Amazon Associate I earn from qualifying purchases.
Wiggers’ approach, described in his September 28, 2026 implementation report, makes those recovery responses measurable. Instead of relying on free-text logs, the server records a stable event name along with fields that identify the tool and the version of its exposed contract.
How the confusion telemetry is structured
Use stable sentinels for recovery paths
The implementation routes three recovery responses through a shared logging helper. Each path emits a stable sentinel, so queries can count known classes of confusion without parsing changing message text:
#1 Best Overall
search_no_matchmenu_unknown_restaurantorder_rejected
Attach the deployed description and schema identity
Every event also records the tool name, a description hash and a schema version. The author computes the hash at startup from the same MCP trigger and property attributes used by the deployed server, rather than maintaining a separate hand-edited value. When the description changes, later events carry a different hash, allowing the team to compare recovery-event counts across description versions.
The structured fields become custom dimensions in Application Insights and can be queried with KQL. This ties an observed recovery response to the tool interface that was active when it occurred.
Rank #2
What the 60-request demonstration showed
Wiggers drove 60 deterministic requests through an Entra-protected MCP endpoint. In this demonstration, the expected outcomes were:
Recommended Free Tools
| Outcome | Requests in the demonstration |
|---|---|
menu_unknown_restaurant |
16 |
order_rejected |
16 |
search_no_match |
14 |
| Clean results | 14 |
The Application Insights query reportedly returned the same three sentinel totals as the traffic driver, with the expected description hash and schema version 1. That match is a useful check that the telemetry captured the known outcomes in this run. The counts describe this controlled example only; they are not typical MCP error rates, a general production benchmark or evidence that the method will produce the same results in another system.
Rank #3
What the dashboard can—and cannot—tell you
When the expected sentinel events and contract identifiers are present, a team can group recovery responses by tool description and schema version. A change in counts after a description edit can then be investigated against the version in use, rather than inferred from unstructured error text alone.
Missing telemetry also matters. If a known sentinel class or a required dimension disappears, that may indicate an instrumentation or event-routing problem rather than an absence of caller confusion. A useful implementation should make missing dimensions and expected-but-absent event classes visible, not silently treat missing data as zero.
Rank #4
The reported implementation had an important attribution limit: at the time of Wiggers’ article, the Functions MCP extension did not pass the MCP initialize client’s name and version to the tool method through ToolInvocationContext. The tool-level events therefore could not support per-client confusion rates. Wiggers says platform request telemetry would be needed to understand the client mix. Because this extension detail is version-sensitive, check the behavior of the specific extension version in use before relying on it as current guidance.
Free tools Windows power users keep installed
One-click scans. No signup required.
Access setup was a separate part of the test
In Wiggers’ traffic-generator setup, two access checks had to be satisfied: Entra did not issue a token until the client was preauthorized, and App Service authentication separately rejected the token until that client was allowed there. This describes the author’s reported setup, not a universal rule for every Azure deployment.
How to evaluate this pattern for your MCP service
The example suggests several practical checks when designing confusion telemetry:
- Stable events: Can queries count recovery classes reliably without parsing free-text messages?
- Contract attribution: Does each event identify the exact deployed tool description and schema?
- Missing-data detection: Can you detect absent sentinel classes or dimensions that should be present?
- Reconciliation: Does a controlled set of known requests produce dashboard totals that match the expected outcomes?
- Client attribution: Is client identity available at the instrumentation layer, or must it be correlated from platform telemetry?
- Operational cost: What shared logging code and platform configuration are required to keep those fields queryable?
Wiggers’ account is one implementation report, not a vendor comparison or independently replicated experiment. Its useful contribution is a concrete observability pattern: treat recovery responses as structured signals, tie them to the interface version, and validate the resulting counts against known traffic. As Wiggers puts it, “The prose is the interface, and now the interface has monitoring.”
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




