-
Notifications
You must be signed in to change notification settings - Fork 835
Fix optional arrays/objects issue #771 #772
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
olaservo
merged 9 commits into
modelcontextprotocol:main
from
JMLX42:fix/optional-arrays-issue-771
Sep 28, 2025
Merged
Fix optional arrays/objects issue #771 #772
olaservo
merged 9 commits into
modelcontextprotocol:main
from
JMLX42:fix/optional-arrays-issue-771
Sep 28, 2025
+31
−11
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Update generateDefaultValue to return undefined for optional array parameters - Add comprehensive tests for required vs non-required arrays - Fixes issue where MCP Inspector sends empty arrays [] for optional parameters - Resolves compatibility issues with OpenAPI servers expecting omitted optionals Refs modelcontextprotocol#771
- Update generateDefaultValue to return undefined for optional object parameters - Add comprehensive tests for required vs non-required objects - Fixes issue where MCP Inspector sends empty objects {} for optional parameters - Objects with required properties still return populated objects - Empty optional objects now return undefined to be omitted from requests Refs modelcontextprotocol#771
5 tasks
JMLX42
added a commit
to lx-industries/rmcp-openapi
that referenced
this pull request
Sep 1, 2025
This reverts commit b90c893. The original implementation was incorrect as it made the server second-guess client intent by omitting parameters that clients explicitly provided. Empty values are valid and should be passed through unchanged. Root cause has been fixed at the client level in MCP Inspector PR: modelcontextprotocol/inspector#772 Closes #65
👍 Pretty useful |
olaservo
approved these changes
Sep 28, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks and sorry for the wait!
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.
Disclaimer
PR/patches written with Claude Code (Sonnet 4)
Summary
Fixes MCP Inspector sending empty arrays
[]
and objects{}
for optional parameters instead of omitting them, which causes compatibility issues with OpenAPI servers.Problem
[]
for optional array parameters{}
for optional object parametersSolution
Updated the
generateDefaultValue
function inschemaUtils.ts
to:undefined
for optional array parameters (omits them from requests)undefined
for optional object parameters (omits them from requests)[]
for required array parameters{}
for required object parametersImplementation Plan
[]
only for required arrays andundefined
for optional arrays{}
only for required objects andundefined
for optional objectsfix:
commits for arrays and objects as requestedTesting
Added comprehensive test coverage for:
undefined
[]
undefined
{}
undefined
undefined
All existing tests continue to pass, ensuring no regression.
Expected Outcome
Optional array and object parameters will be omitted from tool call arguments instead of being sent as empty arrays/objects, resolving compatibility issues with OpenAPI servers.
Fixes #771