[BUG] Approval-gated destructive MCP tool errors "not registered" on invocation, despite server confirming read-write mode and tool being fully implemented
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
A self-hosted stdio MCP server (tastytrade-mcp, github.com/tastytrade/tastytrade-mcp) correctly registers and lists a tool (tastytrade_place_order) that is flagged as DESTRUCTIVE in its annotations. The tool appears correctly in:
tools/list results (confirmed via server-side logs)
The Settings → Capabilities → "Write/delete tools" permission list, with a "Needs approval" gate correctly shown for it by name
Tool-search / schema lookups (full parameter schema is surfaced correctly)
But invoking the tool fails immediately with:
Error: tool 'tastytrade:tastytrade_place_order' is not registered. This may
indicate a tool name hallucination or a stale tool schema.
No approval prompt ever appears in the UI before this error — the call fails before reaching whatever would normally trigger the approval dialog.
What Should Happen?
Either:
The approval prompt should appear, allowing the user to approve/deny the call, or
If the tool genuinely isn't dispatchable, the error should not say "not registered" (which is misleading — the tool IS registered, per the server's own logs and the Capabilities UI), and should not suggest "tool name hallucination" when the name is verifiably correct and unchanged between the schema lookup and the invocation attempt.
Error Messages/Logs
Steps to Reproduce
Configure a self-hosted stdio MCP server in claude_desktop_config.json that exposes at least one tool annotated as destructive/write (per MCP tool annotations spec).
Confirm in Settings → Capabilities that the tool is listed under "Write/delete tools" with a "Needs approval" (or similar) gate.
In a conversation, prompt Claude to call that specific tool.
Observe the tool call fails with tool '...' is not registered, and no approval prompt appears at any point.
Claude Model
Sonnet (default)
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
Claude 1.44121.4 (0d57a2) 2026-09-02T23:50:20.000Z
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗