[BUG] Sonnet sees only 4 of 10 MCP tools while Opus sees all 10 — same server, same project, same Desktop config
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?
[BUG] Sonnet sees only 4 of 10 MCP tools while Opus sees all 10 — same server, same project, same Desktop config
Environment
- Claude Desktop: 1.1.7714 (3bd6f6), 2026-03-19
- macOS: MacBook Air (Apple Silicon)
- MCP server: Python FastMCP, stdio transport, 10 registered tools
- MCP SDK: Latest via pip
Summary
When an MCP server registers 10 tools, Claude Opus can see and use all 10, but Claude Sonnet can only access 4. Both models are running in the same Claude Desktop app, same project, same MCP server config, same connectors panel (all 10 tools enabled with checkmarks). The MCP server log confirms all 10 tools are sent in the tools/list response.
This is not a Claude Desktop or MCP transport issue — Desktop is delivering all 10 tools correctly. The limitation is model-specific.
Which tools survive
Sonnet consistently sees these 4:
search_postsget_threadfind_threadsdb_stats
Sonnet does not see these 6:
get_postsearch_manualget_manual_sectionsearch_clubget_club_pagecolor_availability
Opus sees all 10.
What I've verified
- MCP server logs: Server sends all 10 tools in
tools/listresponse ✅ - Connectors panel: All 10 tools show as enabled (checkmarked) for both models ✅
- Opus in same project: Sees and can call all 10 tools ✅
- Multiple full restarts (Cmd+Q, 10-second wait, relaunch): No change
- Cleared caches:
~/Library/Caches/Claudeand~/Library/Application Support/Claude/tool_cache - Reduced docstring length: No effect on Sonnet's tool count
Diagnosis
The original assumption was that Claude Desktop was truncating the tools/list response before passing tools to the model (MCP log showed [5851 chars truncated]). However, testing with Opus in the identical environment confirmed that Desktop delivers all 10 tools correctly. The 4-tool limit is specific to Sonnet's handling of the tool list.
Actual behavior
Sonnet silently drops 6 of 10 tools. No error is surfaced to the user. The connectors UI gives no indication that Sonnet will only use a subset.
What Should Happen?
Expected behavior
Both Opus and Sonnet should see all 10 tools when all 10 are enabled in the connectors panel and confirmed sent by the MCP server.
Error Messages/Logs
Steps to Reproduce
Steps to reproduce
- Create a FastMCP server (stdio transport) with 10 registered tools
- Add it to
claude_desktop_config.json - Launch Claude Desktop, enable all tools in Settings → Connectors
- Create a project and open a conversation using Opus — ask it to list all available tools from the server → 10/10 tools visible
- In the same project, open a new conversation using Sonnet — ask it to list all available tools → 4/10 tools visible
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
1.1.7714
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗