Uh oh!
There was an error while loading. Please reload this page.
Document non-text content types, binary resources, and elicitation schema options - #472
Merged
Merged
Conversation
…hema options ## Motivation and Context The SDK tiering system (SEP-1730) requires Tier 1 SDKs to document all non-experimental features with examples. A documentation coverage audit against the canonical feature list found that the README.md only showed `type: "text"` content everywhere, leaving several implemented features invisible to users: - Tool responses with image, audio, and embedded resource content (`MCP::Content::Image` / `Audio` / `EmbeddedResource`) - Prompt messages carrying image or embedded resource content - Reading binary resources via `MCP::Resource::BlobContents` - Reading resources through a registered resource template URI - Elicitation `requested_schema` flat-object restrictions and client-side validation behavior - Elicitation default values (SEP-1034) and enum values with `enumNames` (SEP-1330) All of these are existing SDK capabilities; the conformance suite already exercises them. This change documents each with prose and a runnable-style example, closing every documentation gap that does not require new code. Legacy SSE transport remains undocumented because the SDK intentionally does not implement it. ## How Has This Been Tested? Documentation-only change. Every code example was written against the current public API in lib/ (`MCP::Content`, `MCP::Resource::TextContents` / `BlobContents`, `MCP::Prompt::Message`, `create_form_elicitation`) and cross-checked with the working implementations in conformance/server.rb, which pass the conformance suite. ## Breaking Changes None. This only adds sections to README.md.
atesgoral
approved these changes
Jul 28, 2026
Uh oh!
There was an error while loading. Please reload this page.
9 tasks
koic added a commit
that referenced
this pull request
Aug 15, 2026
## Motivation and Context The roadmap predates the 2026-07-28 implementation work and has drifted from the released SDK. The 2026-08-15 SEP-1730 tier audit flagged the drift while evaluating the roadmap requirement: - "Current Status" claims only 2025-06-18 and 2025-11-25 support, but the SDK now completes the 2026-07-28 revision and passes all scored server and client conformance scenarios for each revision's requirement set. - The SEP-2575 stateless lifecycle rewrite was described as reserved for 2.0, but it shipped during 1.x with both lifecycle eras served side by side; the few incompatible adjustments shipped in a minor release under the spec-conformance and security exceptions described in VERSIONING.md, as recorded in the 1.2.0 CHANGELOG entry. - Deprecation warnings for Roots/Sampling/Logging (SEP-2577) were described as future work but have shipped (#406, #516). - The documentation section undersold the coverage: all implemented non-experimental features are documented with examples (#472, #515). The refreshed text records the implemented spec revisions and how the 2026-07-28 revision actually shipped, and keeps the tasks extension (SEP-2663, #391) and the removal of legacy-era support as the remaining tracked items. Gem versions are deliberately not named: the roadmap describes the current state of the SDK, and the version-to-revision mapping already lives in CHANGELOG.md. ## How Has This Been Tested? Documentation-only change; no code paths are affected. Statements were cross-checked against the v1.2.0 CHANGELOG entry and the 2026-08-15 tier audit results (server 67/67 and client 50/50 scored conformance across the 2025-11-25 and 2026-07-28 requirement sets). ## Breaking Changes None. This only updates ROADMAP.md.
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 freeto 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 SDK tiering system (SEP-1730) requires Tier 1 SDKs to document all non-experimental features with examples. A documentation coverage audit against the canonical feature list found that the README.md only showed
type: "text"content everywhere, leaving several implemented features invisible to users:MCP::Content::Image/Audio/EmbeddedResource)MCP::Resource::BlobContentsrequested_schemaflat-object restrictions and client-side validation behaviorenumNames(SEP-1330)All of these are existing SDK capabilities; the conformance suite already exercises them. This change documents each with prose and a runnable-style example, closing every documentation gap that does not require new code. Legacy SSE transport remains undocumented because the SDK intentionally does not implement it.
How Has This Been Tested?
Documentation-only change. Every code example was written against the current public API in lib/ (
MCP::Content,MCP::Resource::TextContents/BlobContents,MCP::Prompt::Message,create_form_elicitation) and cross-checked with the working implementations in conformance/server.rb, which pass the conformance suite.Breaking Changes
None. This only adds sections to README.md.
Types of changes
Checklist