-
Notifications
You must be signed in to change notification settings - Fork 90
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
Improve on tool input handling and add tests #159
Open
olaservo
wants to merge
28
commits into
modelcontextprotocol:main
Choose a base branch
from
olaservo:handle-empty-json-fields
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Improve on tool input handling and add tests #159
olaservo
wants to merge
28
commits into
modelcontextprotocol:main
from
olaservo:handle-empty-json-fields
Conversation
This file contains 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
…o/inspector into handle-empty-json-fields
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.
Motivation and Context
The ToolTab JSON input handling still has some quirks and testing it manually isn't very sustainable. This PR adds the Jest testing framework to the client side of the MCP Inspector, enabling unit testing for the more complex client-side utilities and components.
The intent here is to improve maintainability by:
jsonPathUtils.ts
: Handles JSON path operations (updating and retrieving values)schemaUtils.ts
: Handles schema-related operations (generating default values, formatting labels)Another option to consider is using a JSON editing library which handles more of this stuff out of the box. I prefer to avoid adding libraries which might be overkill and introduce their own overhead. But it's still an option, if trying to cover all the more complex tool input testing scenarios doesn't seem sustainable in the long term.
How Has This Been Tested?
The PR includes new Jest tests for the utility functions that were extracted from components:
I also updated the GitHub workflow to run these tests automatically during CI.
After these changes I also confirmed that I could update JSON fields for object tool inputs, which appears to be broken right now.
Breaking Changes
None.
Types of changes
Checklist