MCP server connects with hasTools:true but tool not available via ToolSearch or direct invocation
Resolved 💬 4 comments Opened Feb 11, 2026 by vipulchhajer Closed Feb 14, 2026
Summary
An MCP server (superpowers-chrome) connects successfully and reports hasTools: true, but its tool (use_browser) is never surfaced — neither via ToolSearch (deferred tool lookup) nor via direct invocation (mcp__chrome__use_browser).
Environment
- Claude Code: 2.1.39
- macOS Darwin 24.6.0
- MCP server:
superpowers-chromev1.6.1 (chrome-mcp-server v1.0.0) - MCP SDK:
@modelcontextprotocol/sdk ^1.6.1
Reproduction
- Add an MCP server to
.mcp.json:
{
"chrome": {
"type": "stdio",
"command": "node",
"args": ["/path/to/superpowers-chrome/mcp/dist/index.js"]
}
}
- Add
"chrome"toenabledMcpjsonServersin projectsettings.local.json
- Start Claude Code. Run
claude mcp list— server shows✓ Connected
- Try to use the tool:
ToolSearchwith queriesuse_browser,+chrome,select:mcp__chrome__use_browser— all return "No matching deferred tools found"- Direct invocation of
mcp__chrome__use_browser— "No such tool available"
Debug log evidence
The server connects fine and reports tools:
MCP server "chrome": Starting connection with timeout of 30000ms
MCP server "chrome": Successfully connected to stdio server in 76ms
MCP server "chrome": Connection established with capabilities: {"hasTools":true,"hasPrompts":false,"hasResources":false,"serverVersion":{"name":"chrome-mcp-server","version":"1.0.0"}}
But 0 deferred tools get included:
Dynamic tool loading: 0/124 deferred tools included
Raw MCP handshake confirms the tool exists
Manually sending the MCP tools/list request to the server returns the tool correctly:
{"result":{"tools":[{"name":"use_browser","description":"Control persistent Chrome browser...","inputSchema":{...}}]}}
What I've ruled out
- Enterprise/managed settings: None present (
/etc/claude/settings.jsonand/Library/Application Support/Claude/settings.jsondon't exist) - Tool deny lists: No
disallowedToolsin any settings file - Server enablement:
enableAllProjectMcpServers: trueis set, and"chrome"is explicitly inenabledMcpjsonServers - Plugin conflict: Tried with the superpowers-chrome plugin both enabled and disabled — same result either way
- Duplicate servers: Tried with only the
.mcp.jsonentry (no plugin) — same result
Expected behavior
mcp__chrome__use_browser should be available as a deferred tool and findable via ToolSearch.
Actual behavior
Server connects but tool is invisible to the session.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗