Three pages carried names the 2026-07-28 specification does not use: "Multi-Round-Trip Results" for the pattern the specification titles Multi Round-Trip Requests (MRTR) and serves at basic/patterns/mrtr - the results are the `InputRequiredResult` wire type, not the feature - plus "Completions" for the utility the specification titles Completion, and "Notification Subscriptions" for the pattern it titles Subscriptions. Retitle the three pages to the specification's names, move them to /server/mrtr/ and /client/mrtr/, /server/completion/, and /server/subscriptions/ following the specification's slugs, update every internal reference, and keep the URLs published with v1.3.0 working via jekyll-redirect-from. The Discovery page keeps its title but moves from /server/discovery/ to /server/discover/, matching the specification's slug and the `server/discover` RPC, with its published URL redirected the same way.
1.7 KiB
1.7 KiB
| layout | title | nav_order | redirect_from | |
|---|---|---|---|---|
| default | Completion | 16 |
|
Completion
MCP spec includes Completions, which enable servers to provide autocompletion suggestions for prompt arguments and resource URIs.
To enable completions, declare the completions capability and register a handler:
server = MCP::Server.new(
name: "my_server",
prompts: [CodeReviewPrompt],
resource_templates: [FileTemplate],
capabilities: { completions: {} },
)
server.completion_handler do |params|
ref = params[:ref]
argument = params[:argument]
value = argument[:value]
case ref[:type]
when "ref/prompt"
values = case argument[:name]
when "language"
["python", "pytorch", "pyside"].select { |v| v.start_with?(value) }
else
[]
end
{ completion: { values: values, hasMore: false } }
when "ref/resource"
{ completion: { values: [], hasMore: false } }
end
end
The handler receives a params hash with:
ref- The reference ({ type: "ref/prompt", name: "..." }or{ type: "ref/resource", uri: "..." })argument- The argument being completed ({ name: "...", value: "..." })context(optional) - Previously resolved arguments ({ arguments: { ... } })
The handler must return a hash with a completion key containing values (array of strings), and optionally total and hasMore.
The SDK automatically enforces the 100-item limit per the MCP specification.
The server validates that the referenced prompt, resource, or resource template is registered before calling the handler. Requests for unknown references return an error.