A Tool has a non-empty name and an inputSchema, and accepts only the properties of the Section 9.1 table, each with its defined type. The execution object accepts only taskSupport.
Requirement
Section titled “Requirement”A Tool Object has its required fields, defined property types, and no unknown properties; so does its Execution Object.
Details
Section titled “Details”Rule ID: mcpdesc.tool.members
Owner: mcpdesc
Surface: Tool, Execution
Kind: structural
Requirement level: must
Protocol versions: independent of the MCP protocol version
Document schema locations: #/$defs/tool, #/$defs/execution
Status: internal · Enforcement: internal
Required by
Section titled “Required by”- MCP Description 0.9.0, Sections 9.1 and 9.7
- 9. Tools: req-tool-fields
-
- Tools: req-execution-fields
-
- Elicitation Declarations: req-elicitations-non-empty
-
- Tags: req-entity-tags-shape
-
- Tags: req-entity-tags-unique
Examples
Section titled “Examples”Invalid example
Section titled “Invalid example”Source: expected-invalid/empty-ordinary-nested-collections.json · Selected: /tools/0/elicitations
[]Invalid example
Section titled “Invalid example”Source: expected-invalid/missing-tool-input-schema.json · Selected: /tools/0
{ "name": "missing_schema"}Rule Source Code
Section titled “Rule Source Code”tool.yaml at immutable tag v0.9.0-rc.3.