Open6

MCPサーバー

MakihiroMakihiro

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

MakihiroMakihiro

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

MakihiroMakihiro

ストリームのpartialは自由設計

event: chunk
data: {"id":"42","partial":{"progress":10}}

event: chunk
data: {"id":"42","partial":{"progress":10,"current":"TestFoo"}} 

MakihiroMakihiro

失敗・例外

{
  "id": "42",
  "error": {
    "code": "CompilationError",
    "message": "18 errors detected"
  }
}
MakihiroMakihiro

ストリーム例

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

MakihiroMakihiro

InputSchema例

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