Support running MCP client conformance tests against the Ruby SDK#293
Open
koic wants to merge 1 commit intomodelcontextprotocol:mainfrom
Open
Support running MCP client conformance tests against the Ruby SDK#293koic wants to merge 1 commit intomodelcontextprotocol:mainfrom
koic wants to merge 1 commit intomodelcontextprotocol:mainfrom
Conversation
## Motivation and Context PR modelcontextprotocol#248 introduced server conformance testing using `@modelcontextprotocol/conformance`. This extends coverage to the client side so that `MCP::Client` behavior can also be validated against the MCP specification. ### Scope Client conformance is driven by the conformance runner, which spawns test servers for each scenario and invokes `conformance/client.rb` against them. The client script performs the MCP initialize handshake and executes scenario-specific operations (for example listing tools or calling a tool). Because `MCP::Client` does not yet support the full initialize handshake natively (pending modelcontextprotocol#210), the client uses a lightweight `ConformanceTransport` that handles both JSON and SSE responses and performs the handshake manually. ### Usage Run all conformance tests (server + client): ```console bundle exec rake conformance ``` Run a single client scenario: ```console bundle exec rake conformance SCENARIO=initialize ``` List available scenarios: ```console bundle exec rake conformance_list ```
atesgoral
approved these changes
Apr 4, 2026
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
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
PR #248 introduced server conformance testing using
@modelcontextprotocol/conformance. This extends coverage to the client side so thatMCP::Clientbehavior can also be validated against the MCP specification.Scope
Client conformance is driven by the conformance runner, which spawns test servers for each scenario and invokes
conformance/client.rbagainst them. The client script performs the MCP initialize handshake and executes scenario-specific operations (for example listing tools or calling a tool).Because
MCP::Clientdoes not yet support the full initialize handshake natively (pending #210), the client uses a lightweightConformanceTransportthat handles both JSON and SSE responses and performs the handshake manually.Usage
Run all conformance tests (server + client):
bundle exec rake conformanceRun a single client scenario:
bundle exec rake conformance SCENARIO=initializeList available scenarios:
bundle exec rake conformance_listTypes of changes
Checklist