[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

Resolved 💬 2 comments Opened May 9, 2026 by garykoch Closed May 9, 2026

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:

  1. 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.
  2. 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.
  3. 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

  1. Locally configure Linear via SSE in ~/.claude.json:

``json
"mcpServers": {
"linear": { "type": "sse", "url": "https://mcp.linear.app/sse" }
}
``

  1. Separately connect the claude.ai Linear connector through the claude.ai Connectors UI. (claudeAiMcpEverConnected in ~/.claude.json will list "claude.ai Linear".)
  1. Start a Claude Code session. Both mcp__linear__* and mcp__claude_ai_Linear__* tool families are listed as available, with overlapping tool surfaces (save_issue, list_issues, save_comment, etc.).
  1. Have the model perform Linear writes. Calls routed to mcp__linear__* traverse the deprecated SSE transport and intermittently return Tool result missing due to internal error. Calls to mcp__claude_ai_Linear__* succeed normally.
  1. 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_issue calls in a single session returned Tool result missing due to internal error before the duplicate registration was diagnosed.

View original on GitHub ↗

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