Expand description
MCP wire types — the Model Context Protocol message surface. RFC 0004 (client), RFC 0005 (server).
Method/notification names are constants (typos become compile errors).
Result/param structs use camelCase to match the spec. content[] and
resource contents[] are kept as Vec<Value> with text-extraction helpers
rather than a brittle tagged enum, so an unknown content type from a newer
server is preserved, not a parse error (forward-compat).
The protocol version + era model lives in crate::version; it is re-exported
here so mcp::wire::{PROTOCOL_VERSION, negotiate_version, …} resolves.
Re-exports§
pub use crate::version::*;
Modules§
- method
- Method + notification names (RFC 0004 §wire).
Structs§
- Call
Tool Params - Call
Tool Result - Result of
tools/call.is_error: trueis a tool-domain failure (fed to the model as an observation), distinct from a JSON-RPC transport error (RFC 0004 §isError). - Client
Capabilities - Capabilities a client declares. agentd declares none in v1 (no roots / sampling / elicitation / tasks) — RFC 0004 §declare-no-client-caps.
- Complete
Params completion/completeparams: what to complete (arefto a prompt or resource template) and the argument being typed. Kept asValue— therefshape varies by target and revision (forward-compat).- Complete
Result - Completion
- Discover
Result - Result of
server/discover(modern era): the server’s supported protocol versions, capabilities, and identity in a single call — the stateless replacement for the legacyinitializecapability exchange.resultTypeand the caching fields (ttlMs/cacheScope) are carried for forward-compat. - GetPrompt
Params prompts/getparams — the template name + its argument fills (all strings).- GetPrompt
Result prompts/getresult — the rendered messages.messages[]is kept asVec<Value>(each{role, content}) for forward-compat with content types.- Implementation
- Initialize
Params - Initialize
Result - List
Prompts Result - List
Resource Templates Result - List
Resources Result - List
Tools Result - Prompt
- A prompt template a server offers (RFC 0004 §prompts).
argumentsdescribe the template’s fill-ins. - Prompt
Argument - Read
Resource Params - Read
Resource Result - Resource
- Resource
Template - A resource template (a parameterized
uriTemplate, RFC 6570) a server offers viaresources/templates/list— distinct from a concreteResource. - Resource
Updated Params - Payload of
notifications/resources/updated— URI only (no diff). The reactive core re-reads on wake: notify-then-read (RFC 0004 §1.3, RFC 0008). - Resources
Capability - Server
Capabilities - What a server says it can do. We gate every call on these (RFC 0004
§capability-gating): no
tools/callunlesstoolsis present; noresources/subscribeunlessresources.subscribe == Some(true). - Subscribe
Params resources/subscribe/resources/unsubscribeparams (per-URI only — templates are NOT subscribable, RFC 0004 §item-vs-list).- Task
- A durable async-task handle (the tasks extension). A supported request (e.g.
tools/call) may return one (resultType: "task") instead of blocking; the client pollsmethod::TASKS_GETuntil a terminalstatus. - Tool
- Tools
Capability
Constants§
- TASKS_
EXTENSION - The tasks extension identifier — advertised in
capabilities.extensionsto opt into task-augmented (async long-running) requests.
Functions§
- as_
task_ result - If a result value is a task handle (
resultType: "task"), parse it — the polymorphic shape a task-augmented request returns instead of its normal result.