[BUG] MCP tool calls with empty string "" parameter drop ALL parameters
Resolved 💬 3 comments Opened May 12, 2026 by alessandro308 Closed Jul 14, 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 an MCP tool parameter has an empty string value (""), Claude Code's parameter serializer drops all parameters in the tool call — not
just the empty one. The MCP server receives {}.
What Should Happen?
mpty string "" is a valid value and should be passed through to the MCP server like any other string.
Error Messages/Logs
Steps to Reproduce
- Connect any MCP server with a tool that accepts optional string parameters
- Call the tool with a mix of required params and one param set to ""
- Observe: the server receives an empty {} dict; all parameters (including required ones like IDs) are missing
Example with a update_device_metadata tool:
- notes="test" → server receives {device_id: 718830, collector_id: 12071, notes: "test"} — correct
- notes="" → server receives {} — all parameters dropped
The Claude Code permission prompt also shows no parameters when one is an empty string, confirming the issue is in serialization before
the MCP transport.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.139
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗