Skip to content

MCP Inspector v0.14.3 Reuses Stale Parameters on Invalid JSON Input #527

Open
@fboisier-visma

Description

@fboisier-visma

Describe the bug

When using MCP Inspector, if a request is made with a syntactically invalid JSON string as a parameter, the Inspector does not send the invalid data. Instead, it silently re-sends the valid parameters from the last successful request. This makes debugging tools extremely difficult, as the server receives stale, unexpected data, and there is no error shown on the client-side UI to indicate the actual input was ignored.

This issue is confirmed to be present in the latest version, v0.14.3, as executed via npx.

To Reproduce

Steps to reproduce the behavior:

Start MCP Inspector pointing to a tool server.
Bash

npx -y @modelcontextprotocol/inspector@latest

Select a tool that accepts a JSON object as a parameter (e.g., a filters parameter).
First Request (Valid): Execute the tool with a valid JSON string.
Example input: {"status": "active"}

Observe the server logs to confirm it correctly received the parameters: {'status': 'active'}.
Second Request (Invalid): In the same parameter field, enter a malformed JSON string.
Example input: {"status": "inactive",} (note the trailing comma).
Execute the tool again and check the server logs.

Expected behavior

On the second request, the tool server should receive the malformed string or a null value for the filters parameter. This should ideally trigger a server-side validation error (like an HTTP 400 Bad Request), correctly indicating that the client sent invalid data. The server should not receive the data from the first request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtoolsIssues related to testing tools

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions