feat!: add MRTR behavior support (SEP-2322) (#929)

* feat!: add MRTR behavior support

* feat: harden SEP-2322 MRTR support

* ci: diff public API only on features common to base and head

cargo public-api builds both revisions with the same feature set, so a
feature introduced (or removed) by a PR broke the build of the other
revision. Restrict the all-features diff to features present in both the
base and head revisions.
This commit is contained in:
Dale Seo 2026-07-10 12:02:26 -04:00 • committed by GitHub
commit dd30a70f84
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -72,6 +72,17 @@ A minimal stdio server demonstrating task-based tool invocation per
- Wires up `enqueue_task` / `tasks/get` / `tasks/result` / `tasks/cancel` via `#[task_handler]`
- Pair with `examples/clients/src/task_stdio.rs` to see the full lifecycle (create → poll → fetch result)
### MRTR Demo (`mrtr.rs`)
An end-to-end walkthrough of SEP-2322 Multi Round-Trip Requests, running a
server and client in one process over an in-memory stream.
- Server answers `tools/call` with an `InputRequiredResult` asking the client to elicit a value
- Client uses `call_tool` to auto-fulfil the elicitation and retry, then `call_tool_once` for manual control
- Seals/opens the untrusted `requestState` with `RequestStateCodec` (HMAC integrity)
- Both sides negotiate `2026-07-28`, the minimum version for MRTR
- Run with `cargo run -p mcp-server-examples --example servers_mrtr`
### Progress Demo Server (`progress_demo.rs`)
A server that demonstrates progress notifications during long-running operations.