[BUG] Duplicate Linear MCP registration (local SSE + claude.ai connector) silently exposes both backends; no warning when a server's deprecation removal date has passed
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?
When the same Linear backend is registered both as a locally-configured MCP server in ~/.claude.json and as a claude.ai-managed connector, Claude Code exposes both to the model with nearly-identical tool surfaces (mcp__linear__* and mcp__claude_ai_Linear__*) and no indication that they target the same backend.
In my case the local registration was on Linear's deprecated /sse transport whose stated removal date (2026-04-08) had already passed. Calls routed to the deprecated server intermittently failed with Tool result missing due to internal error, leaving the model unable to tell whether the underlying write had completed. The deprecated server itself emits a startup notice that still calls the removal date "upcoming" even though it has passed, and Claude Code surfaces no warning about either condition (the duplicate registration, or the past-removal-date transport).
What Should Happen?
At least one of:
- Duplicate detection at session start. When a locally-configured MCP server and a claude.ai-managed connector resolve to the same backend (or expose substantially overlapping tool surfaces), surface a warning to the user listing the duplicates and which one will be used.
- Removal-date awareness. When an MCP server's startup notice contains a removal/deprecation date and that date has passed, surface a warning to the user (and ideally to the model in tool descriptions) so calls aren't silently routed onto a transport in a half-removed state.
- Better failure surfacing. When the MCP transport returns "Tool result missing due to internal error," include enough context (server name, transport, last status) for the model to advise the user whether the write should be retried or verified — rather than leaving the model to guess.
Error Messages/Logs
Tool result missing due to internal error
Server startup notice from the deprecated linear MCP server (verbatim):
DEPRECATED TRANSPORT — REMOVAL DATE 2026-04-08 (UPCOMING). The /sse transport on this server is deprecated. Replacement endpoint: https://mcp.linear.app/mcp. Migration guide: https://linear.app/docs/mcp.
Today's date when this was observed: 2026-05-09 (one month past the stated removal date).
Steps to Reproduce
- Locally configure Linear via SSE in
~/.claude.json:
``json``
"mcpServers": {
"linear": { "type": "sse", "url": "https://mcp.linear.app/sse" }
}
- Separately connect the claude.ai Linear connector through the claude.ai Connectors UI. (
claudeAiMcpEverConnectedin~/.claude.jsonwill list"claude.ai Linear".)
- Start a Claude Code session. Both
mcp__linear__*andmcp__claude_ai_Linear__*tool families are listed as available, with overlapping tool surfaces (save_issue,list_issues,save_comment, etc.).
- Have the model perform Linear writes. Calls routed to
mcp__linear__*traverse the deprecated SSE transport and intermittently returnTool result missing due to internal error. Calls tomcp__claude_ai_Linear__*succeed normally.
- Note that no warning is shown to the user at startup about either (a) the duplicate registration or (b) the past-removal-date transport.
Workaround: Remove the locally-configured linear entry from ~/.claude.json mcpServers. The mcp__linear__* tools disappear after a session restart, and routing through the claude.ai-managed connector (https://mcp.linear.app/mcp) is reliable.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.138 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
VS Code integrated terminal
Additional Information
- macOS / Darwin 25.4.0
- The locally-configured Linear server was added before the claude.ai Linear connector existed (or before Linear's transport migration), then the claude.ai connector was added later, leaving both live.
- Three
mcp__linear__save_issuecalls in a single session returnedTool result missing due to internal errorbefore the duplicate registration was diagnosed.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗