Open6
MCPサーバー

JSONルール
// OK (単発ツール)
{
"id": "42",
"result": {
"success": true,
"logs": [...]
}
}
// OK (ストリーミング chunk)
event: chunk
data: {"id":"42","partial":{"progress":30}}
// OK (ストリーミング最終)
event: result
data: {"id":"42","result":{"failed":0,"passed":352}}
event: done
data: {}

resultの中身はinputSchemaと整合性が取れていればOK

ストリームのpartialは自由設計
event: chunk
data: {"id":"42","partial":{"progress":10}}
event: chunk
data: {"id":"42","partial":{"progress":10,"current":"TestFoo"}}

失敗・例外
{
"id": "42",
"error": {
"code": "CompilationError",
"message": "18 errors detected"
}
}

ストリーム例
Claude Unity
─ POST /tools/call (stream) ─────┐
│ event: chunk progress 10 %
│ event: chunk progress 30 %
│ event: chunk current "PlayerMoveTests"
│ event: result passed 98 / failed 2
└ event: done

InputSchema例
"inputSchema": {
"type": "object",
"properties": {
"objectName": { "type": "string", "description": "ターゲット名" },
"angleDeg": { "type": "number", "description": "角度 0‑360" }
},
"required": ["objectName","angleDeg"]
}