The nested completion object is closed even when its surrounding result is open. It accepts values, total, and hasMore, not arbitrary pagination or vendor fields. Remove additional members or explicitly review a different metadata destination.
Requirement
Section titled “Requirement”The completion object of a completion result contains only values, total, and hasMore.
Details
Section titled “Details”Rule ID: mcp.completion.result-closed
Owner: mcp
Surface: CompleteResult · Path: completion
Kind: structural
Requirement level: must
Protocol versions: independent of the MCP protocol version
Document schema locations: #/$defs/completionResult
Status: internal · Enforcement: internal
Required by
Section titled “Required by”- MCP Description 0.9.0, Sections 10.4.6 and 11.4
- 3. Document Structure: req-carried-nested-closed
-
- Document Structure: req-carried-closed-reject
Based on
Section titled “Based on”- Tier 1 — MCP schema.ts and normative specification text: MCP 2024-11-05 to 2026-07-28 schema.ts, interface CompleteResult, completion (no index signature)
Examples
Section titled “Examples”Valid example
Section titled “Valid example”Source: expected-valid/named-completion-examples.json · Selected: /resourceTemplates/0/completionExamples
{ "issue-prefix": { "argument": { "name": "issue", "value": "12" }, "result": { "completion": { "values": [ "120", "121", "129" ], "hasMore": true, "total": 14 } } }}Invalid example
Section titled “Invalid example”Source: expected-invalid/completion-result-extra-field.json · Selected: /resourceTemplates/0/completionExamples/issue-prefix/result/completion
{ "values": [ "120", "121" ], "acmeRank": 1}Rule Source Code
Section titled “Rule Source Code”result.yaml at immutable tag v0.9.0-rc.3.