Cover the Ruby MCP client in the smoke tests - #183
Draft
olaservo wants to merge 1 commit into
Draft
Conversation
olaservo
force-pushed
the
ruby-smoke-tests
branch
from
August 10, 2026 03:53
0c29d05 to
b51f2f2
Compare
CI installed no Ruby toolchain and the suite ran no Ruby example, so nothing under mcp-client-ruby or weather-server-ruby was exercised by a green build. A dependency change there -- modelcontextprotocol#177 removes the base64 gem now that the anthropic gem declares it -- merges on the strength of a check that never resolved its Gemfile. The client is drivable without credentials: it connects before it looks for ANTHROPIC_API_KEY and exits 0 when there is none, the same shape the Python and TypeScript clients already rely on for their coverage. The Ruby weather server stays uncovered. The mcp gem's server does not emit the resultType field that protocol revision 2026-07-28 makes mandatory, so the test client rejects its responses; that is a fix for the gem rather than something an example can work around. The README said the gem could not negotiate the revision at all, which stopped being true at 1.1.0 -- it negotiates, then answers incompletely. Ruby 3.4 rather than the 3.2.0 floor the anthropic gem declares: 3.2 reached end of life in March 2026, and a gem's floor says what it tolerates, not what an example should tell people to run. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
olaservo
force-pushed
the
ruby-smoke-tests
branch
from
August 10, 2026 04:11
b51f2f2 to
75796e0
Compare
olaservo
marked this pull request as draft
August 10, 2026 04:27
There was a problem hiding this comment.
Pull request overview
Adds Ruby MCP client coverage to the smoke-test suite and CI.
Changes:
- Installs Ruby 3.4 in CI.
- Adds Bundler preparation and Ruby client smoke testing.
- Updates smoke-test documentation and Ruby server limitations.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
.github/workflows/ci.yml |
Configures Ruby for CI. |
tests/utils.sh |
Adds Bundler dependency setup. |
tests/smoke-test.sh |
Runs the Ruby client smoke test. |
tests/README.md |
Documents Ruby coverage and requirements. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| check_dependency bundle || return 1 | ||
| local client_dir="${PROJECT_ROOT}/mcp-client-ruby" | ||
| ensure_bundled "${client_dir}" || return 1 | ||
| (cd "${client_dir}" && bundle exec ruby client.rb "${MOCK_SERVER}") >/dev/null 2>&1 |
Comment on lines
+44
to
+45
| # 3.4 is the oldest series still supported; 3.2 reached end of life in | ||
| # March 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.
CI installed no Ruby toolchain and the suite ran no Ruby example, so nothing under
mcp-client-rubywas exercised by a green build — including #177, which changes its Gemfile.Adds
ruby/setup-ruby(3.4 — 3.2 reached EOL in March 2026, so the anthropic gem's>= 3.2.0floor says what it tolerates, not what to install here) and anmcp-client-rubytest. The client connects before it checksANTHROPIC_API_KEYand exits 0 without one, so it runs credential-free like the Python and TypeScript clients.The Ruby weather server stays uncovered: the
mcpgem's server omits theresultTypefield that2026-07-28requires, so the test client rejects its responses. The README claimed the gem could not negotiate that revision — untrue since 1.1.0, it negotiates and then answers incompletely. Corrected.Verified in a fork with #177 cherry-picked on top: 7/7 pass. On Ruby 3.4
base64is no longer a default gem, so that run doubles as confirmation of #177 — without the transitive dependency the client would fail to load.