[Doc] Align the Docs Page Names With the MCP Specification
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.
This commit is contained in:
parent
fcb1ac935d
commit
c9d36b04bf
1 changed files with 55 additions and 45 deletions
|
|
@ -1,52 +0,0 @@
|
|||
---
|
||||
layout: default
|
||||
title: Completions
|
||||
nav_order: 16
|
||||
---
|
||||
|
||||
# Completions
|
||||
|
||||
MCP spec includes [Completions](https://modelcontextprotocol.io/specification/latest/server/utilities/completion),
|
||||
which enable servers to provide autocompletion suggestions for prompt arguments and resource URIs.
|
||||
|
||||
To enable completions, declare the `completions` capability and register a handler:
|
||||
|
||||
```ruby
|
||||
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.
|
||||
Loading…
Reference in a new issue