Fix: Validate tool name presence in MCP tools/call requests#287
Merged
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
TestHandleRequest_ToolsCall_InvalidJSONtest was failing because requests with missing or empty tool names returned "unknown tool: " instead of "invalid params".Root Cause
Valid JSON structures like
{"arguments": {}},null, or{}successfully unmarshal but leavecallParams.Nameas an empty string. The code then calledcallTool("")which returned "unknown tool: " rather than validating the parameter first.Changes
internal/sys/sys.go
callParams.Nameis emptyinternal/sys/sys_test.go
TestHandleRequest_ToolsCall_UnknownToolsince explicit empty strings are now correctly categorized as invalid params rather than unknown toolsThis distinguishes between malformed requests (missing required field) and valid requests for non-existent tools, providing clearer error semantics.
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.