Local MCP servers blocked by cloud connector PreToolUse:Callback hook

Resolved 💬 2 comments Opened Mar 16, 2026 by zindrael-alt Closed Mar 17, 2026

Bug Description

Local MCP servers defined in .mcp.json (project-level) and claude_desktop_config.json are blocked by a PreToolUse:Callback hook with the error:

"This tool has been disabled in your connector settings."

Cloud-based MCP connectors (Notion, Gmail, Google Calendar — the ones with UUID-based names like mcp__9ef64cc8-...) work fine. Other local servers installed via marketplace/plugins (e.g., Desktop Commander) also work. Only stdio servers from .mcp.json / claude_desktop_config.json are affected.

Environment

  • Platform: Windows 11 (10.0.26200)
  • Claude Desktop (not CLI)
  • Claude Code version: 2.0.74
  • Feature flag: tengu_claudeai_mcp_connectors: true (cached in .claude.json)

Steps to Reproduce

  1. Define a local MCP server in .mcp.json:
{
  "mcpServers": {
    "myserver": {
      "type": "stdio",
      "command": "python.exe",
      "args": ["server.py"]
    }
  }
}
  1. Server starts and responds correctly to initialize (verified manually via stdin/stdout)
  2. enableAllProjectMcpServers: true is set in both project and global .claude/settings.json
  3. mcp__myserver__* is in the allow list in settings.local.json
  4. Calling any tool from this server returns: "This tool has been disabled in your connector settings."

What We Tried (none worked)

  • Setting enabledMcpjsonServers: ["myserver"] in .claude.json project config
  • Setting tengu_claudeai_mcp_connectors: false in cached growth book features (gets overwritten on restart)
  • Setting environment variable ENABLE_CLAUDEAI_MCP_SERVERS=false (Windows user-level)
  • Moving server definition to global mcpServers in .claude.json
  • Full app restart between each attempt

Root Cause Analysis

The tengu_claudeai_mcp_connectors feature flag enables a PreToolUse:Callback hook that checks tools against cloud connector registry on claude.ai. Local stdio MCP servers don't exist in that registry, so the callback blocks them as "disabled".

Cloud connectors (with UUID prefixes) pass because they ARE in the registry. Marketplace-installed servers (Desktop Commander) pass because they use a different registration path.

Impact

This completely breaks all custom/local MCP servers for users who have the tengu_claudeai_mcp_connectors feature flag enabled. In our case, a production MCP server with 212+ tools for school management became unusable overnight.

Expected Behavior

Local MCP servers from .mcp.json and claude_desktop_config.json should not be subject to cloud connector checks, OR there should be a reliable way to opt out of the cloud connector feature.

View original on GitHub ↗

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