Protocol revision 2026-07-28 requires a resultType on every result. The mcp
gem stamps it as of 1.2.0, so a ">= 1.1.0" floor allowed an install whose
responses a 2026-07-28 client rejects outright.
Observed against the test client on 1.1.0:
Invalid result for tools/list: missing required resultType
On 1.2.0 the same server lists both tools and both structured-content
assertions pass.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The mcp gem 1.1.0 (2026-08-01) is the first to negotiate 2026-07-28, so the
Ruby examples can finally show the same thing the other four do: get_alerts
declares an array-rooted output_schema and returns a bare top-level JSON
array, get_forecast returns an object. Declaring `type:` at the root is what
suppresses the SDK object-root default.
Failure paths return an error result rather than a bare text one, because a
tool declaring an output_schema MUST return conforming structured content.
No alerts is an empty array, not an error.
The client compiles each declared schema at connect time and validates every
non-error result. The SDK client does not do this itself, so the spec
client-side SHOULD costs real code here, as it does in Go and Rust.
NOT READY TO SHIP. The gem never emits the `resultType` field that the
2026-07-28 schema marks mandatory, and no user-level knob sets it, so a
spec-strict client rejects every response including tools/list. Verified
end-to-end against the Ruby client, which does not check the field; blocked
against the TypeScript SDK client. See the server README.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Add a weather server example using the MCP Ruby SDK and the National Weather Service API,
following the same pattern as other language examples.
https://github.com/modelcontextprotocol/ruby-sdk