Recommended Free Tools
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Compare two saved MCP tools/list responses by matching tools on their programmatic name, then separating additions and removals from changes to existing definitions. Keep the protocol version, capture time, authorization context, and pagination status with each snapshot: without them, an apparent tool change may reflect a partial capture or different permissions rather than a changed server interface.
What a saved tools/list response tells you
A tools/list response is a record of the tools visible in a particular request context, not necessarily a timeless inventory of everything a server can provide. A tool definition can include a programmatic name, description, and inputSchema, plus optional fields such as title, outputSchema, annotations, and _meta. The MCP schema reference for 2025-06-18 documents these fields and the list result shape: MCP schema reference, 2025-06-18.
Protocol versions matter. The 2025-06-18 reference lists tools and optional nextCursor; the 2026-07-28 Tools specification example also includes resultType and requestState. Preserve the exact raw response and label it with the applicable protocol version rather than assuming all saved responses share one fixed shape. See the MCP Tools specification, 2026-07-28.
Capture complete, comparable snapshots
Before diffing definitions, make sure each snapshot represents a complete and identifiable capture. The current MCP specification supports pagination, and a response may provide a cursor for retrieving another page. If one capture stops early, tools absent from it can be mistaken for removals.
#1 Best Overall
- Save the raw JSON-RPC response for every page rather than only a flattened summary.
- Record server identity, protocol version, timestamp, authorization or scope context, and whether all cursor pages were collected. Record permission context without storing credentials or secrets.
- Follow each returned cursor until the inventory is complete, retaining page and cursor provenance so the assembled snapshot can be audited.
- Keep unknown fields in the saved data. A comparator that does not recognize a field should not silently erase it.
The 2026-07-28 specification says the available tool set must not vary per connection or as a side effect of other requests on that connection, while allowing it to vary according to authorization presented on a request. Two complete lists can therefore differ because they were captured under different permissions. The specification also describes list-change notifications when the server declares the relevant capability and a client subscribes; a notification can prompt a refresh, but it does not make an older saved response current by itself.
Compare names first, then definitions
Use each tool’s programmatic name as its identifier. Compare membership separately from edits to tools that appear in both captures. A useful report has three membership groups and then field-level changes for the shared names:
- Added: names present in the newer snapshot but absent from the earlier one.
- Removed: names present in the earlier snapshot but absent from the newer one.
- Modified: names present in both whose definition fields differ.
For each matched name, compare descriptive and contract fields separately. A display-oriented title or description edit is not the same kind of change as an input-schema edit. Treat outputSchema as optional, and compare annotations and _meta as their own category rather than mixing them into schema changes.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesStructural versus semantic schema diffs
Parse JSON before comparing it. Whitespace and the order of object keys are not semantic changes, so a textual diff of raw JSON can be noisy. For schema objects, either show a structural diff or normalize them under explicit, appropriate rules. The MCP 2025-11-25 specification says schema usage defaults to JSON Schema 2020-12 when $schema is absent; account for that dialect when interpreting schema changes. Do not present a normalized result as universal equivalence unless the normalization rules and dialect are clear. The relevant guidance is in the MCP Tools specification, 2025-11-25.
Rank #3
Separate ordering and hints from contract changes
Ordering
Report list order separately from membership and definition edits. The 2026-07-28 specification recommends that servers return tools in deterministic order to support reliable caching, but an ordering difference alone does not establish that a callable interface changed. Avoid treating a reorder as a removal followed by an addition.
Annotations
Annotation values can be useful signals—for example, a change to readOnlyHint or destructiveHint deserves attention—but they are hints, not proof of runtime behavior. The 2025-11-25 specification says clients must consider tool annotations untrusted unless they come from trusted servers. Flag annotation changes separately and assess them in the context of the server and its trustworthiness.
Judge compatibility from the specific schema edit
A diff identifies what changed; it does not by itself establish whether clients will break. Inspect the changed schema and the requests made in the relevant context before assigning compatibility impact. For example, adding a required input field can materially affect callers that do not supply it, while changing a display title does not alter the input contract. State the observed edit and its consequence separately, and do not infer changed runtime behavior solely from metadata or an annotation.
Free tools Windows power users keep installed
One-click scans. No signup required.
Keep API-specific caching claims in context
OpenAI’s API documentation describes an mcp_list_tools output item and says that while the item remains in the API request context, the API will not fetch the list again on each conversation turn. This is documented behavior for that API context, not a general MCP caching rule. See OpenAI API documentation for MCP servers.
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.

