KBCodeKB
7 issues

Fix Claude Desktop MCP Tools Failing with 'Required' Parameter Error — Missing arguments in JSON-RPC tools/call (July 2025 Regression)

Unverified

On July 23, 2025, all MCP tools in Claude Desktop suddenly stopped working with parameter validation errors. Every tools/call JSON-RPC request was sent WITHOUT the required 'arguments' field, causing all MCP servers to reject tool calls with: 'expected: object, received: undefined' / 'Required' / 'Cannot convert undefined or null to object'. The first tool call in a fresh conversation would work, but all subsequent calls failed because the arguments parameter was stripped from the JSON-RPC params. Affected ALL MCP servers — local filesystem, remote proxies, first-party connectors (Atlassian/Jira, Asana, Slack), and custom MCP servers alike. Root cause: upstream Anthropic API failure on July 23, 2025 that emitted malformed tool-use content blocks without arguments, which Claude Desktop relayed directly to MCP servers. Anthropic staff (ollie-anthropic) confirmed the issue as an 'upstream API failure affecting all MCP tool calls' and deployed a server-side fix within hours, requiring only a Claude Desktop restart. Status page incident: https://status.anthropic.com/incidents/9px1qykyb9w4. Impact: 59 community reactions, 66 comments — a global MCP outage affecting all Claude Desktop users. Agent Decision Tree: (1) Check if this is a historical event — the bug occurred July 23, 2025 and was fixed same day. If user reports are from July 23, 2025, verify with dates. (2) If symptoms match but date is different, this may be a new incident — check https://status.anthropic.com/ for current outages. (3) First diagnostic: inspect MCP server logs for tools/call params. If params contain only '"name":"tool_name"' without '"arguments":{...}', this is the bug. (4) If first call works and subsequent calls fail, this is the classic signature. (5) Apply Solution 1 (restart + fresh conversation). (6) If problem persists after restart, escalate to Anthropic support with MCP server log excerpts.

mcp

Fix MCP TypeScript SDK Zod v4 Incompatibility: '_parse is not a function' (-32603) in Claude Desktop, Cursor, VS Code, and Custom MCP Servers

Unverified

MCP TypeScript SDK v1.17.0 through v1.17.5 is incompatible with Zod v4.x due to breaking changes in Zod's internal API. When projects use Zod v4 alongside the MCP SDK, tools fail with JSON-RPC error -32603: 'w._parse is not a function' and 'null is not an object (evaluating F._def)'. Root cause: the MCP SDK directly calls internal Zod methods (_parse, _def) that were removed or changed in Zod v4. The fix was shipped in MCP SDK v1.23.0-beta.0 and stable v1.23.0+ by maintainer felixweinberger, who added backward-compatible Zod v4 support via PR #869. This affects all MCP server implementations using the TypeScript SDK, including Claude Desktop, Cursor, VS Code, Cline, and any custom MCP server built with @modelcontextprotocol/sdk. NPM/Bun dependency resolution can silently hoist Zod v4 even when the SDK specifies zod@^3, causing the error to appear without explicit Zod v4 installation. Workarounds include upgrading the SDK to v1.23.0+, pinning Zod to v3.x in package.json overrides, or using the v1.23.0-beta.0 release for early adoption.

cursormcp

Fix MCP OAuth CIMD redirect_uris Port Mismatch (-32000/invalid_redirect_uri) in Claude Code 2.1.80+ for Granola, Slack, and All CIMD-Enabled MCP Providers

Unverified

Starting in Claude Code v2.1.80, a new clientMetadataUrl getter on the MCP OAuth provider class causes every provider that supports Client ID Metadata Documents (CIMD, per IETF OAuth 2.1 draft-ietf-oauth-v2-1-13 §8.4.2) to receive portless redirect_uris (http://localhost/callback) while the local OAuth callback server binds to port 3118 (or custom MCP_OAUTH_CALLBACK_PORT). This mismatch triggers invalid_redirect_uri errors for ALL CIMD-supporting MCP providers — confirmed for Granola (mcp.granola.ai) and Slack (mcp.slack.com), but affects any provider advertising client_id_metadata_document_supported: true. Root cause identified via binary diffing of cli.js between v2.1.79 (last working) and v2.1.81 (broken). Three solutions: downgrade to v2.1.79, verify via diff diagnostic, and clear the Keychain cache that blocks retry. OAuth 2.1 standard (§8.4.2) explicitly requires allowing any port, making the portless published metadata non-compliant as well.

claude-codemcp

MCP server shows as disconnected in the client

Verified

An MCP server fails to connect or repeatedly drops in the client.

mcpmcpconfigurationtransport

Fix MCP Servers Not Working with NVM/npx (ENOENT/-32000) in Claude Desktop, Cursor, and Cline

Unverified

When using NVM (Node Version Manager), MCP servers fail to connect from GUI applications like Claude Desktop, Cursor, and Cline. The root cause is that GUI apps spawn child processes via spawn() with shell: false, so NVM's shell functions (which resolve node/npx) are unavailable. Symptoms include silent connection failures, 'Client Closed', ENOENT errors, and -32000 'Connection closed'. This affects all major Node version managers (nvm, fnm, Volta, n, nodenv, proto, mise) across macOS, Windows, and Linux. Seven verified workarounds are provided — from simple PATH injection to full version manager migration — ordered by complexity. 91 comments and 182 reactions on the official modelcontextprotocol/servers repo confirm this is a widespread issue affecting thousands of MCP users.

claude-codemcp

Fix Claude Code Task Agent 'tools: Tool names must be unique' API Error (400) When Spawning Subprocess with MCP Tools

Unverified

Claude Code v2.0.30 introduced a regression in subprocess tool inheritance that causes Task agent spawns to fail with API Error 400: 'tools: Tool names must be unique'. Core tools, MCP tools from multiple servers, and custom agent tools are incorrectly deduplicated during subprocess initialization, producing duplicate tool names that the Anthropic API rejects. Affects all built-in subagents (Explore, Plan, general-purpose), custom agents defined in .claude/agents/, and the /sidequest command. The main Claude Code session functions normally — only subprocess launches fail. Anthropic staff confirmed and shipped the fix in v2.0.31 within 6 hours of the report. Multiple community-confirmed workarounds available: downgrade to v2.0.29, temporarily disable MCP servers before agent launch, or pin npx to v2.0.29 in shell aliases.

claude-codemcp

Claude Desktop OAuth 2.1 Custom MCP Connector Fails with 401/end_error While CLI Works

Unverified

Claude Desktop (Electron, >= 0.13.x) and claude.ai web interface fail to connect to custom MCP servers using OAuth 2.1/SSE/Streamable HTTP, while Claude Code CLI connects successfully to the same server. The GitHub issue has 71+ reactions, 66 comments, was closed as completed by Anthropic staff. Multiple root causes confirmed: WAF blocking Anthropic outbound IPs, missing WWW-Authenticate header on 401 responses, CORS misconfiguration on .well-known endpoints, and DCR format issues (float client_secret_expires_at rejected by RFC 7591 integer parser, token_endpoint_auth_method: client_secret_post rejected by better-auth). Complete fix kit below with copyable config examples and verification curl commands.

claude-codemcpcloudflare-workers