Request #1 — tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "deploy_app",
"arguments": { "env": "production" }
}
}
Response #1 — incomplete (dependent_requests)
{
"jsonrpc": "2.0",
"id": 1,
"dependent_requests": {
"confirm": {
"method": "elicitation/create",
"params": { "message": "Confirm deploy?", "requestedSchema": { "type": "object" } }
}
}
}
Request #2 — retry (elicitation response)
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "deploy_app",
"arguments": { "env": "production" }
},
"dependent_responses": {
"confirm": { "result": { "action": "accept", "content": { "confirmed": true } } }
}
}
Response #2 — sampling request (dependent_requests)
{
"jsonrpc": "2.0",
"id": 2,
"dependent_requests": {
"summary": {
"method": "sampling/createMessage",
"params": { "messages": [ "..." ], "maxTokens": 120 }
}
}
}
Request #3 — retry (sampling response added)
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "deploy_app",
"arguments": { "env": "production" }
},
"dependent_responses": {
"confirm": { "result": { "action": "accept", "content": { "confirmed": true } } },
"summary": { "result": { "role": "assistant", "content": { "type": "text", "text": "Deploy summary..." }, "model": "claude-3-sonnet", "stopReason": "endTurn" } }
}
}
Response #3 — CallToolResult
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [ { "type": "text", "text": "Deployment queued." } ],
"isError": false
}
}