diff options
Diffstat (limited to 'doc/mcp.md')
| -rw-r--r-- | doc/mcp.md | 42 |
1 files changed, 33 insertions, 9 deletions
@@ -31,25 +31,47 @@ MML文字列を解析し、以下のいずれかの処理を実行します。 ### 戻り値 +ツール結果はMCPの`CallToolResult`として返されます。`content`には構造化結果をJSON化した`TextContent`が入り、`structuredContent`には同じ結果がJSONオブジェクトとして入ります。compose成功時だけ、`content`にWAV本体の`AudioContent`が追加されます。 + +MCPツール呼び出しの正式な成否は`isError`で表します。composeやAPI入力の失敗は`isError: true`、正常に完了した処理は`isError: false`です。validateは対象MMLにエラーがあっても検証処理自体は成功しているため`isError: false`となり、妥当性は`valid`で確認します。 + #### action=`compose` の場合 ```json { - "success": true, - "wav_path": "./data/20260711_120000_123/output.wav", - "duration_sec": 2.0, - "note_sequence": { ... }, - "validation": { - "errors": [], - "warnings": [] - } + "content": [ + { + "type": "text", + "text": "{\"success\":true,...}" + }, + { + "type": "audio", + "data": "UklGR...", + "mimeType": "audio/wav" + } + ], + "structuredContent": { + "success": true, + "audio": { + "mime_type": "audio/wav", + "size_bytes": 176444, + "sample_rate": 44100 + }, + "duration_sec": 2.0, + "note_sequence": { ... }, + "validation": { + "errors": [], + "warnings": [] + } + }, + "isError": false } ``` | フィールド | 型 | 説明 | |-----------|-----|------| | `success` | boolean | 合成・WAV出力が成功したか | -| `wav_path` | string \| null | 生成されたWAVファイルのパス(失敗時はnull) | +| `audio` | object \| null | MIMEタイプ、WAVのバイト数、サンプルレート。失敗時はnull | | `duration_sec` | number | 生成された音声の長さ(秒) | | `note_sequence` | object \| null | 中間表現(IR)のNoteSequence | @@ -59,6 +81,8 @@ MML文字列を解析し、以下のいずれかの処理を実行します。 | `validation.errors` | array | エラーのリスト | | `validation.warnings` | array | 警告のリスト | +WAVファイルのパスは公開しません。WAVはサイズにかかわらず`AudioContent`としてbase64エンコードして返し、`ResourceLink`への切り替えは行いません。サーバ内部では`--output-dir`以下へ`output.wav`と`output.mml`を保存します。 + #### action=`validate` の場合 ```json |
