Menu

AI

MCP Error -32602 Invalid Params: How to Fix It (Claude Code, Cursor, VS Code, Inspector, SDKs)

Fix MCP error -32602 Invalid params: unknown tool names, arguments that fail the input schema, missing _meta fields in 2026-07-28 requests, and resource not found.

By: Irina ShvayaNovember 2, 2026

MCP Error -32602 Invalid Params: How to Fix It (Claude Code, Cursor, VS Code, Inspector, SDKs)

This fix is part of MCP troubleshooting, within The MCP Guide. Still stuck? Request a free MCP readiness review.

MCP error -32602 means "Invalid params": the server understood the method but rejected what was sent with it. In MCP it covers several cases: an unknown tool name, a request that fails the schema, a 2026-07-28 request missing its required _meta fields, and a resource that does not exist. The fastest fix is to read the error message, list the server's tools again, and resend with the exact tool name and arguments that match its input schema.

Checked against: the JSON-RPC 2.0 specification, the Tools and base protocol pages of the 2026-07-28 MCP spec, and the Inspector protocol eras page on 2 November 2026 (Python mcp 2.3.0, TypeScript @modelcontextprotocol/server 2.4.0). eSEOspace did not run these steps.

Key Takeaways

  • JSON-RPC 2.0 defines -32602 as "Invalid params: Invalid method parameter(s)."
  • The MCP Tools spec returns -32602 for an unknown tool, with a message such as Unknown tool: invalid_tool_name.
  • A 2026-07-28 request missing a required _meta field is malformed and gets -32602 (HTTP 400 on Streamable HTTP).
  • Since 2026-07-28, "resource not found" is also -32602 (it was -32002).
  • Bad argument values that a model could correct should come back as a tool result with isError: true, not as -32602.

What this error means

The JSON-RPC 2.0 spec reserves -32602 for invalid method parameters. MCP reuses it in four places:

SituationWhere the spec says soTypical message
Unknown tool name in tools/callTools pageUnknown tool: <name>
Request fails the CallToolRequest schemaTools page ("Malformed requests")Varies by SDK
Missing io.modelcontextprotocol/protocolVersion or clientCapabilities in _metaBase protocol pageVaries; HTTP 400
Resource URI does not existResources pageResource not found

The Tools page separates two kinds of failure. Protocol errors, like an unknown tool, are JSON-RPC errors that "models are less likely to be able to fix." Tool execution errors, including "Input validation errors (e.g., date in wrong format, value out of range)," go back as a normal result with isError: true so the model can retry. Our tool errors guide explains the split.

SDKs differ on where schema failures land. The Python SDK troubleshooting page says an unknown tool and a bad argument both come back to its client as a result with is_error set, not as an exception. The Inspector reads the message to label a -32602 as Unknown Tool or Invalid Parameters, since both share one code.

Quick fix

  1. Read the message. "Unknown tool" and "Resource not found" each have their own fix below.
  2. For unknown tool: call tools/list and compare the name exactly. Names are case-sensitive, and clients may prefix them (Claude Code shows mcp__<server>__<tool>; the server only knows <tool>).
  3. For bad arguments: compare your arguments with the tool's inputSchema: required fields, types, enums, formats.
  4. For missing _meta: update the client or SDK. Hand-written HTTP clients must add the per-request fields on 2026-07-28.
  5. For resources: see resource not found.
  6. Reconnect if the server renamed or removed a tool since your client cached the list.

Fix by client / OS

Claude Code

Reconnect the server from /mcp to refresh its tool list. Claude Code's MCP docs note that if the API rejects a tool's input schema, the debug log says the API refused this tool's input schema and Claude Code resends the tool declared without parameters. That makes calls with arguments fail, so fix the schema on the server side.

Cursor and VS Code

Restart the server so the client fetches a fresh tool list. In VS Code, MCP: List Servers > Show Output shows the raw error, per the manage and troubleshoot page. If the tool was renamed, start a new chat so the model stops using the old name.

MCP Inspector

Call the tool directly and look at the error panel:

npx @modelcontextprotocol/inspector --cli node path/to/server.js --method tools/call --tool-name get_weather --tool-arg city=Boston

If this succeeds, the server is fine and the client or model is sending different arguments.

Your own server

  • Return isError: true results for argument problems a model can fix, with a clear message ("date must be in the future").
  • Keep -32602 for unknown tools and malformed requests.
  • Write strict, clear schemas. The 2026-07-28 spec allows any JSON Schema 2020-12 keywords, but a client or API may reject unusual ones. See our input schema guide.

Where to find the logs

  • Claude Code: claude --debug-file /tmp/claude-debug.log, then search for the tool name.
  • VS Code: MCP: List Servers > Show Output.
  • Claude Desktop: ~/Library/Logs/Claude/mcp*.log (macOS) or %APPDATA%\Claude\logs (Windows), per the MCP debugging guide.
  • Your server: log incoming params on errors, minus secrets.

If it still fails

Next step

If your server's tools keep confusing models, eSEOspace's MCP development team can review naming, schemas and error messages.

More in the MCP Guide

Free tools: MCP Error Code Lookup · MCP Config Generator

Latest research: State of MCP: October 2026

Frequently asked questions

What does -32602 mean in MCP?

It is the standard JSON-RPC "Invalid params" code. MCP uses it for unknown tools, malformed requests, missing per-request _meta fields in 2026-07-28, and missing resources.

Why does the model keep calling a tool that does not exist?

It may be using a name from an older tool list or a different server. Reconnect the server, start a fresh conversation, and check that tool names are distinct across your connected servers.

Should my server return -32602 for a bad date format?

The Tools spec lists input validation errors such as "date in wrong format" under tool execution errors, returned with isError: true. That lets the model read the message and retry.

Is -32602 the same as a tool call failure?

Not quite. A tool call can fail with -32602 before the tool runs, or run and return isError: true. See MCP tool call failed for the second case.

You Might Also like to Read

Get a FREE Website Audit

Enter your website and get a 20–30 page SEO, GEO, AEO & CRO audit within 24 hours. Completely free.

Don't have a site yet? Get in touch →

Ready to speak with a marketing expert?
Give us a call! (916) 866-7893

Websites Launched
1407
Websites Launched
Marketing Experts
29
Marketing Experts
Hours of Dedicated Work
204533
Hours of Dedicated Work
Irina S.Benjamin G.Jeanette M.David G.