MCP tools from locally configured stdio server not exposed to model despite successful connection

Resolved 💬 3 comments Opened Feb 27, 2026 by alessandro-rizzo-ki Closed Mar 3, 2026

Environment

  • Claude Code version: CLI on Linux (Ubuntu 22.04, Linux 6.8.0-101-generic)
  • Model: claude-opus-4-6
  • MCP server: incidentio-mcp-golang (stdio transport, 44 tools)
  • Configuration: ~/.claude/settings.json under mcpServers

Description

Tools from a locally configured MCP server (stdio transport) are not exposed to the model, even though the server connects successfully. This may relate to #11175.

Steps to Reproduce

  1. Install the incidentio MCP server:

``bash
go install github.com/incident-io/incidentio-mcp-golang/cmd/mcp-server@latest
ln -s "$(go env GOPATH)/bin/mcp-server" "$(go env GOPATH)/bin/incidentio-mcp-golang"
``

  1. Configure in ~/.claude/settings.json:

``json
{
"mcpServers": {
"incidentio": {
"command": "incidentio-mcp-golang",
"env": {
"INCIDENT_IO_API_KEY": "<key>"
}
}
}
}
``

  1. Start Claude Code (or run /mcp to reconnect).
  1. /mcp reports: "Reconnected to incidentio" — server connects fine.
  1. Try to discover or call any incidentio tool — none are available.

Evidence the Server Works Correctly

Manual JSON-RPC testing confirms the server is fully functional:

Initialize response (correct per MCP spec):

{
  "capabilities": {"tools": {}},
  "protocolVersion": "2024-11-05",
  "serverInfo": {"name": "incidentio-mcp-server", "version": "0.1.0"}
}

tools/list response: Returns 44 properly formatted tools (get_incident, list_incidents, create_incident, etc.) with complete inputSchema definitions.

tools/call: Responds correctly when tools are invoked via JSON-RPC directly.

Observed Behavior

  • ToolSearch with any query (e.g., +incidentio, get_incident, select:mcp__incidentio__get_incident) returns no matching deferred tools.
  • The tools are not available as direct (non-deferred) tools either.
  • Plugin MCP servers (Slack, Notion, Atlassian) in the same session all expose their tools correctly via ToolSearch.

Expected Behavior

Tools from locally configured MCP servers should be discoverable and callable, the same as plugin MCP servers.

Workaround

Calling the underlying REST API directly via curl with the API key from the config works as a fallback.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗