{"version":"2.1.311","anchor":"mcp-tool-calls-are-re-checked-against-the-servers-live-tool","canonical_anchor":"mcp-tool-calls-are-re-checked-against-the-servers-live-tool","heading":"MCP tools are checked against the server's live tool list before they run","tier":"notice","area":"MCP","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/mcp-tool-calls-are-re-checked-against-the-servers-live-tool","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311","markdown":"### MCP tools are checked against the server's live tool list before they run\n\nClaude Code now compares MCP tool listings it was handed at start-up with the server's live listing and refuses calls that do not match, with an opt-out\n\n**Unclear.** It is not clear whether this check applies to every MCP server or only in a particular mode, or whether something switches it on.\n\n**What**\n\nMCP (Model Context Protocol) servers are add-ons that give Claude extra tools. Claude Code can be handed a listing of a server's tools at start-up instead of asking the server itself. It now checks those handed listings:\n\n- Check before a call: a new wrapper sits around running, validating, permission-checking and input-preparing an MCP tool. Before a call it lists the server's tools again and compares the tool and the server's handshake (its capabilities, name, version and instructions) with what Claude Code was given at start-up. If they differ, the call is refused with an error saying the MCP tool was refused by the check of its handed listing.\n\n- Check at setup: when setting up an MCP client, cached clients are marked as listed by the host, and the handed tools are compared with the live ones.\n\n- Marking: accepted listings are tagged `comparedBeforeUse: true`.\n\n- Opt-out: setting the environment variable `CLAUDE_CODE_MCP_HANDED_LISTINGS` to `0` makes Claude Code ignore handed listings entirely.\n\nIt is not known what turns the call-time wrapper on or whether a flag controls it.\n\n**Why**\n\nIf an MCP server changes a tool's definition after start-up, calls to that tool can now be refused instead of running against an outdated description. You may see new errors from MCP tools because of this. The environment variable turns handed listings off.\n\n- Area: MCP\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: yes"}