HTTP MCP servers show "connected" but tools are not loaded on Windows

Resolved 💬 4 comments Opened Jan 17, 2026 by Moddy14 Closed Feb 28, 2026

Environment

  • Claude Code version: 2.1.12
  • OS: Windows 10

Description

HTTP-based MCP servers configured in .claude.json show as "✓ connected" in the /mcp dialog, but their tools are never loaded into the allowed-tools list and cannot be used.

Steps to Reproduce

  1. Set up any HTTP MCP server that implements the MCP JSON-RPC 2.0 protocol
  2. Add it to Claude Code:

``bash
claude mcp add --transport http my-mcp https://my-server.example.com --header "Authorization: Bearer <token>" -s user
``

  1. Start Claude Code and check /mcp → Shows "✓ connected"
  2. Check /allowed-tools → No mcp__my-mcp__* tools appear
  3. Ask Claude to use the MCP tool → Claude cannot find it, uses fallback methods instead

Expected Behavior

Tools from the HTTP MCP server should appear in /allowed-tools and be usable, just like stdio-based MCPs.

Actual Behavior

  • /mcp shows "✓ connected" for the HTTP MCP server
  • Server responds correctly to tools/list requests (verified via manual curl/Invoke-RestMethod)
  • Tools are NOT loaded into Claude's available tools
  • Claude falls back to other methods (SSH, local file search, etc.) instead of using the MCP tools

Verification

The server works correctly - manual testing confirms it responds to MCP protocol:

Invoke-RestMethod -Uri "https://my-server.example.com/" -Method POST `
  -ContentType "application/json" `
  -Headers @{Authorization="Bearer <token>"} `
  -Body '{"jsonrpc":"2.0","method":"tools/list","id":1}'
# Returns tools correctly

Additional Context

  • Same HTTP MCP works on Linux with Claude Code 2.1.12
  • Same HTTP MCP works in Claude.ai browser interface (via Connectors)
  • stdio-based MCPs work fine on Windows (playwright, github, etc.)
  • Issue appears to be Windows + HTTP transport specific

Configuration (sanitized)

{
  "mcpServers": {
    "my-mcp": {
      "type": "http",
      "url": "https://my-server.example.com",
      "headers": {
        "Authorization": "Bearer <token>"
      }
    }
  }
}

Workaround

Currently using Claude.ai browser interface or running Claude Code on Linux where HTTP MCPs work correctly.

View original on GitHub ↗

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