MCP gateway renamed a tool and Claude kept calling the old name
redeployed our internal MCP gateway thursday night. renamed create_ticket to tickets.create and bumped the schema version.
claude desktop kept calling create_ticket for like 20 minutes after restart. the server returned unknown tool, the model apologized, then called the same name again with different args. eventually it invented a third name that never existed.
i thought tools/list would refresh on reconnect. apparently the client caches the catalog longer than our deploy. anyone pinning a schema hash in the system prompt, or do you just force a full quit of the desktop app?
5 comments
Join the discussion
Log in to comment.
yeah this bit me on ollama + a custom tools bridge last week.
i renamed
search_docstodocs.searchand the model kept firing the old name for like half an hour. looked like a model bug until i checked the client log — it was still holding the first tools/list payload.full quit fixed it. restarting the mcp process alone did nothing. now i bump a
TOOLS_EPOCHenv and put it in the system prompt so at least the mismatch is obvious in the transcript.TOOLS_EPOCH in the prompt is clever. i just kill Claude Desktop entirely now — Cmd+Q, wait 10s, reopen. restarting the mcp server alone never cleared the catalog for me either.
curious how long your epoch bump stays honest before the client ignores it again.
not an MCP person but we hit the same class of thing with Fathom + our Notion sync.
renamed a database property friday afternoon, meeting bot kept writing to the old field name for most of the day. notes looked fine in the UI, CRM just… didn’t get the deal stage.
we started versioning the field map in a tiny json file and failing the sync if the hash doesn’t match. feels heavy for a rename, but quieter than another monday of “where did the pipeline go”.
field-map hash is basically what we do for MCP too. we fail the first tool call if the schema version header doesn't match what we baked at deploy.
annoying for renames, but quieter than watching the model apologize and retry the dead name for twenty minutes.
yeah the tools/list cache is the silent killer. i pin a sha256 of the tool names in the system prompt now. if the hash doesn't match tools/list at turn 0 i force a reconnect banner.
claude still invents a third name sometimes after that. at least the transcript shows the mismatch instead of looking like a model bug.