claude-code - 💡(How to fix) Fix MCP integration broken on Windows: OAuth reconciliation re-flags as "needs auth" after success; stdio MCPs connect but tools never surface

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Error Messages/Logs

Code Example

Environment:

OS: Windows
Claude Code: (run claude --version and paste the result)
Tested MCP: Sentry — both sentry@claude-plugins-official (hosted HTTP + OAuth) and @sentry/mcp-server@latest via stdio with a user auth token
Bug 1: Plugin OAuth reconciliation loop

Reproduction:

claude plugin install sentry@claude-plugins-official (or claude plugin install sentry-mcp@sentry-mcp)
In a Claude Code session, run /mcp and authenticate the Sentry server. Complete OAuth in browser successfully.
Observed: a toast says "connected." ~/.claude/.credentials.json is updated with a valid OAuth credential.
Bug: ~/.claude/mcp-needs-auth-cache.json is also updated at the same instant to keep the entry marked as needing auth.
claude mcp list reports ! Needs authentication.
Restart Claude Code; entry is re-added to the auth cache automatically on every startup, even after manually deleting it. Tools are never exposed to the LLM.
Expected: after successful OAuth, the entry should be removed from mcp-needs-auth-cache.json, and the MCP's tools should be available in-session.

Bug 2: Stdio MCP tools/list not surfaced

Reproduction:

Create a Sentry user auth token with read scopes (org:read, project:read, event:read, team:read, member:read)
claude mcp add-json -s user sentry '{"command":"npx","args":["-y","@sentry/mcp-server@latest"],"env":{"SENTRY_ACCESS_TOKEN":"<token>"}}'
Restart Claude Code.
claude mcp list reports ✓ Connected.
Bug: No mcp__sentry__* tools are available in-session. ToolSearch returns no matches for any Sentry tool, even searched by exact name.
Verified the server itself works correctly: a standalone Node script sending initialize and tools/list JSON-RPC requests to the same npx -y @sentry/mcp-server@latest process returns the full tool list (whoami, find_organizations, find_issues, get_event_details, etc.).
Expected: tools returned by tools/list should be registered as mcp__sentry__* for the LLM.

Notes:

Stderr from the Sentry server during stdio handshake emits a non-fatal warning: Warning: No LLM API key found (OPENAI_API_KEY or ANTHROPIC_API_KEY). Agent-assisted search and use_sentry will be unavailable.  Possibly the harness is mis-classifying this as a startup failure?
Both bugs reproduce consistently across multiple restart cycles, plugin reinstalls, manual cache cleanup, and credential cleanup.
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

Environment:

OS: Windows Claude Code: (run claude --version and paste the result) Tested MCP: Sentry — both sentry@claude-plugins-official (hosted HTTP + OAuth) and @sentry/mcp-server@latest via stdio with a user auth token Bug 1: Plugin OAuth reconciliation loop

Reproduction:

claude plugin install sentry@claude-plugins-official (or claude plugin install sentry-mcp@sentry-mcp) In a Claude Code session, run /mcp and authenticate the Sentry server. Complete OAuth in browser successfully. Observed: a toast says "connected." ~/.claude/.credentials.json is updated with a valid OAuth credential. Bug: ~/.claude/mcp-needs-auth-cache.json is also updated at the same instant to keep the entry marked as needing auth. claude mcp list reports ! Needs authentication. Restart Claude Code; entry is re-added to the auth cache automatically on every startup, even after manually deleting it. Tools are never exposed to the LLM. Expected: after successful OAuth, the entry should be removed from mcp-needs-auth-cache.json, and the MCP's tools should be available in-session.

Bug 2: Stdio MCP tools/list not surfaced

Reproduction:

Create a Sentry user auth token with read scopes (org:read, project:read, event:read, team:read, member:read) claude mcp add-json -s user sentry '{"command":"npx","args":["-y","@sentry/mcp-server@latest"],"env":{"SENTRY_ACCESS_TOKEN":"<token>"}}' Restart Claude Code. claude mcp list reports ✓ Connected. Bug: No mcp__sentry__* tools are available in-session. ToolSearch returns no matches for any Sentry tool, even searched by exact name. Verified the server itself works correctly: a standalone Node script sending initialize and tools/list JSON-RPC requests to the same npx -y @sentry/mcp-server@latest process returns the full tool list (whoami, find_organizations, find_issues, get_event_details, etc.). Expected: tools returned by tools/list should be registered as mcp__sentry__* for the LLM.

Notes:

Stderr from the Sentry server during stdio handshake emits a non-fatal warning: Warning: No LLM API key found (OPENAI_API_KEY or ANTHROPIC_API_KEY). Agent-assisted search and use_sentry will be unavailable. — Possibly the harness is mis-classifying this as a startup failure? Both bugs reproduce consistently across multiple restart cycles, plugin reinstalls, manual cache cleanup, and credential cleanup.

What Should Happen?

Environment:

OS: Windows Claude Code: (run claude --version and paste the result) Tested MCP: Sentry — both sentry@claude-plugins-official (hosted HTTP + OAuth) and @sentry/mcp-server@latest via stdio with a user auth token Bug 1: Plugin OAuth reconciliation loop

Reproduction:

claude plugin install sentry@claude-plugins-official (or claude plugin install sentry-mcp@sentry-mcp) In a Claude Code session, run /mcp and authenticate the Sentry server. Complete OAuth in browser successfully. Observed: a toast says "connected." ~/.claude/.credentials.json is updated with a valid OAuth credential. Bug: ~/.claude/mcp-needs-auth-cache.json is also updated at the same instant to keep the entry marked as needing auth. claude mcp list reports ! Needs authentication. Restart Claude Code; entry is re-added to the auth cache automatically on every startup, even after manually deleting it. Tools are never exposed to the LLM. Expected: after successful OAuth, the entry should be removed from mcp-needs-auth-cache.json, and the MCP's tools should be available in-session.

Bug 2: Stdio MCP tools/list not surfaced

Reproduction:

Create a Sentry user auth token with read scopes (org:read, project:read, event:read, team:read, member:read) claude mcp add-json -s user sentry '{"command":"npx","args":["-y","@sentry/mcp-server@latest"],"env":{"SENTRY_ACCESS_TOKEN":"<token>"}}' Restart Claude Code. claude mcp list reports ✓ Connected. Bug: No mcp__sentry__* tools are available in-session. ToolSearch returns no matches for any Sentry tool, even searched by exact name. Verified the server itself works correctly: a standalone Node script sending initialize and tools/list JSON-RPC requests to the same npx -y @sentry/mcp-server@latest process returns the full tool list (whoami, find_organizations, find_issues, get_event_details, etc.). Expected: tools returned by tools/list should be registered as mcp__sentry__* for the LLM.

Notes:

Stderr from the Sentry server during stdio handshake emits a non-fatal warning: Warning: No LLM API key found (OPENAI_API_KEY or ANTHROPIC_API_KEY). Agent-assisted search and use_sentry will be unavailable. — Possibly the harness is mis-classifying this as a startup failure? Both bugs reproduce consistently across multiple restart cycles, plugin reinstalls, manual cache cleanup, and credential cleanup.

Error Messages/Logs

Environment:

OS: Windows
Claude Code: (run claude --version and paste the result)
Tested MCP: Sentry — both sentry@claude-plugins-official (hosted HTTP + OAuth) and @sentry/mcp-server@latest via stdio with a user auth token
Bug 1: Plugin OAuth reconciliation loop

Reproduction:

claude plugin install sentry@claude-plugins-official (or claude plugin install sentry-mcp@sentry-mcp)
In a Claude Code session, run /mcp and authenticate the Sentry server. Complete OAuth in browser successfully.
Observed: a toast says "connected." ~/.claude/.credentials.json is updated with a valid OAuth credential.
Bug: ~/.claude/mcp-needs-auth-cache.json is also updated at the same instant to keep the entry marked as needing auth.
claude mcp list reports ! Needs authentication.
Restart Claude Code; entry is re-added to the auth cache automatically on every startup, even after manually deleting it. Tools are never exposed to the LLM.
Expected: after successful OAuth, the entry should be removed from mcp-needs-auth-cache.json, and the MCP's tools should be available in-session.

Bug 2: Stdio MCP tools/list not surfaced

Reproduction:

Create a Sentry user auth token with read scopes (org:read, project:read, event:read, team:read, member:read)
claude mcp add-json -s user sentry '{"command":"npx","args":["-y","@sentry/mcp-server@latest"],"env":{"SENTRY_ACCESS_TOKEN":"<token>"}}'
Restart Claude Code.
claude mcp list reports ✓ Connected.
Bug: No mcp__sentry__* tools are available in-session. ToolSearch returns no matches for any Sentry tool, even searched by exact name.
Verified the server itself works correctly: a standalone Node script sending initialize and tools/list JSON-RPC requests to the same npx -y @sentry/mcp-server@latest process returns the full tool list (whoami, find_organizations, find_issues, get_event_details, etc.).
Expected: tools returned by tools/list should be registered as mcp__sentry__* for the LLM.

Notes:

Stderr from the Sentry server during stdio handshake emits a non-fatal warning: Warning: No LLM API key found (OPENAI_API_KEY or ANTHROPIC_API_KEY). Agent-assisted search and use_sentry will be unavailable. — Possibly the harness is mis-classifying this as a startup failure?
Both bugs reproduce consistently across multiple restart cycles, plugin reinstalls, manual cache cleanup, and credential cleanup.

Steps to Reproduce

Environment:

OS: Windows Claude Code: (run claude --version and paste the result) Tested MCP: Sentry — both sentry@claude-plugins-official (hosted HTTP + OAuth) and @sentry/mcp-server@latest via stdio with a user auth token Bug 1: Plugin OAuth reconciliation loop

Reproduction:

claude plugin install sentry@claude-plugins-official (or claude plugin install sentry-mcp@sentry-mcp) In a Claude Code session, run /mcp and authenticate the Sentry server. Complete OAuth in browser successfully. Observed: a toast says "connected." ~/.claude/.credentials.json is updated with a valid OAuth credential. Bug: ~/.claude/mcp-needs-auth-cache.json is also updated at the same instant to keep the entry marked as needing auth. claude mcp list reports ! Needs authentication. Restart Claude Code; entry is re-added to the auth cache automatically on every startup, even after manually deleting it. Tools are never exposed to the LLM. Expected: after successful OAuth, the entry should be removed from mcp-needs-auth-cache.json, and the MCP's tools should be available in-session.

Bug 2: Stdio MCP tools/list not surfaced

Reproduction:

Create a Sentry user auth token with read scopes (org:read, project:read, event:read, team:read, member:read) claude mcp add-json -s user sentry '{"command":"npx","args":["-y","@sentry/mcp-server@latest"],"env":{"SENTRY_ACCESS_TOKEN":"<token>"}}' Restart Claude Code. claude mcp list reports ✓ Connected. Bug: No mcp__sentry__* tools are available in-session. ToolSearch returns no matches for any Sentry tool, even searched by exact name. Verified the server itself works correctly: a standalone Node script sending initialize and tools/list JSON-RPC requests to the same npx -y @sentry/mcp-server@latest process returns the full tool list (whoami, find_organizations, find_issues, get_event_details, etc.). Expected: tools returned by tools/list should be registered as mcp__sentry__* for the LLM.

Notes:

Stderr from the Sentry server during stdio handshake emits a non-fatal warning: Warning: No LLM API key found (OPENAI_API_KEY or ANTHROPIC_API_KEY). Agent-assisted search and use_sentry will be unavailable. — Possibly the harness is mis-classifying this as a startup failure? Both bugs reproduce consistently across multiple restart cycles, plugin reinstalls, manual cache cleanup, and credential cleanup.

Claude Model

Opus

Is this a regression?

No, this never worked

Last Working Version

No response

Claude Code Version

2.1.72

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Windows Terminal

Additional Information

No response

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING