Skip to content
{mcpdesc}

Match elicitation steps to their declaration

A Tool’s elicitation step must agree with the named elicitation declaration and its requested form. Accepted form content must satisfy that schema, while declined or cancelled responses have different content rules. Check the reference, request, and response together.

An elicitation step matches the Tool’s named Elicitation Declaration, and its response content is present exactly when an accepted form response requires it and validates against the requested schema.

Rule ID: mcpdesc.tool.interaction.elicitation-consistency
Owner: mcpdesc
Surface: Tool interaction example · Path: steps
Kind: mcpdesc-semantic
Requirement level: must
Status: internal · Enforcement: internal

2024-11-05 2025-03-26 2025-06-18 2025-11-25 2026-07-28
applies applies applies applies applies

Source: expected-valid/named-tool-interaction-examples.json · Selected: /tools/0/interactionExamples

{
"approved-release": {
"input": {
"version": "2.0.0"
},
"steps": [
{
"type": "roots",
"request": {},
"response": {
"roots": [
{
"uri": "file:///workspace/example",
"name": "Example workspace"
}
]
}
},
{
"type": "sampling",
"request": {
"messages": [
{
"role": "user",
"content": {
"type": "text",
"text": "Summarize the release plan."
}
}
],
"tools": [
{
"name": "diff_summary",
"description": "Summarize pending release changes.",
"inputSchema": {
"type": "object",
"properties": {
"branch": {
"type": "string"
}
},
"required": [
"branch"
]
}
}
],
"toolChoice": {
"mode": "auto"
},
"maxTokens": 180
},
"response": {
"role": "assistant",
"content": {
"type": "text",
"text": "Run smoke tests and confirm the changelog before publishing version 2.0.0."
},
"model": "claude-3-sonnet-20240229",
"stopReason": "endTurn"
}
},
{
"type": "elicitation",
"declaration": "confirm",
"request": {
"mode": "form",
"message": "Approve this release?",
"requestedSchema": {
"type": "object",
"properties": {
"approved": {
"type": "boolean"
}
},
"required": [
"approved"
]
}
},
"response": {
"action": "accept",
"content": {
"approved": true
}
}
}
],
"result": {
"content": [
{
"type": "text",
"text": "Release preparation completed."
}
],
"structuredContent": {
"status": "prepared"
}
}
}
}

Source: expected-invalid/invalid-tool-interaction-example-semantics.json · Selected: /tools/0/interactionExamples/broken/steps/0

{
"type": "elicitation",
"declaration": "missing",
"request": {
"mode": "url",
"message": "Authorize publication.",
"url": "https://mcp.example.com/release/connect"
},
"response": {
"action": "accept",
"content": {
"approved": true
}
}
}

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