Skip to content
{mcpdesc}

Keep completion result members within MCP fields

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.

The completion object of a completion result contains only values, total, and hasMore.

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

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
}
}
}
}

Source: expected-invalid/completion-result-extra-field.json · Selected: /resourceTemplates/0/completionExamples/issue-prefix/result/completion

{
"values": [
"120",
"121"
],
"acmeRank": 1
}

result.yaml at immutable tag v0.9.0-rc.3.