<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mml-composemusic-mcp.git/tests/test_compose_mml_tool.py, branch main</title>
<subtitle>レトロチップ音源（2A03 APU）風のMMLをLLMに作曲させるためのMCPサーバです 
</subtitle>
<id>https://git.takashi-2521.com/mml-composemusic-mcp.git/atom?h=main</id>
<link rel='self' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/'/>
<updated>2026-09-13T05:13:04+00:00</updated>
<entry>
<title>feat: return composed WAV as MCP audio content</title>
<updated>2026-09-13T05:13:04+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-09-13T05:12:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=97b34627667fd699f4e0e054533eb89a205a2878'/>
<id>urn:sha1:97b34627667fd699f4e0e054533eb89a205a2878</id>
<content type='text'>
Replace the server-local wav_path result with a protocol-native multimedia response.

- Split internal composition execution from MCP ToolResult serialization so filesystem paths never enter public payloads.

- Return every successfully composed WAV as AudioContent with the audio/wav MIME type, regardless of file size.

- Keep structured audio metadata, duration, note sequence, and validation details alongside the multimedia content.

- Use CallToolResult.isError as the authoritative MCP execution status while retaining compose success and validate valid as domain fields.

- Treat invalid compose/API requests and runtime failures as tool errors, while invalid MML discovered by validate remains a successful validation operation.

- Sanitize synthesis, file-write, audio-serialization, and unexpected failure responses so internal paths and exception details are not exposed.

- Add protocol-level coverage for base64 round trips, content block types, error semantics, ResourceLink absence, and path non-disclosure.

- Update existing tests for the separated execution layer and path-free result contract.

- Document AudioContent and isError behavior in the README, MCP schema, and design specification.

- Require the tested FastMCP 3.4.4 API line and exclude the incompatible 4.x major version.

Verification: 487 tests passed; ruff check passed; git diff --check passed; uv lock --check passed; and a manual MCP call returned TextContent plus AudioContent with no wav_path.
</content>
</entry>
<entry>
<title>feat: MMLパーサーと意味解析を厳格化</title>
<updated>2026-07-15T11:00:24+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-15T11:00:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=7249ca3a6fdf51f6b7ea66ac6854edd5e02ae5ec'/>
<id>urn:sha1:7249ca3a6fdf51f6b7ea66ac6854edd5e02ae5ec</id>
<content type='text'>
- ppmckの終端分岐付きリピートとL制御トラックを実装
- case、構文構造、音長、エフェクト値域の検証を強化
- Pyxel拡張コマンドのarityと参照検証を追加
- リピート展開上限と構文・意味エラー時の合成停止を追加
- BNF、設計書、適合監査、回帰テストを更新
</content>
</entry>
<entry>
<title>waveファイルの出力先変更</title>
<updated>2026-07-12T13:28:14+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-12T13:28:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=764a892b43ba55e3d96b0d8986c64cd6b5d42236'/>
<id>urn:sha1:764a892b43ba55e3d96b0d8986c64cd6b5d42236</id>
<content type='text'>
mmlファイルをwaveファイルと一緒に出力するように変更
サンプルデータ追加
</content>
</entry>
<entry>
<title>feat: 合成機能テンプレートの拡充とドキュメントの更新</title>
<updated>2026-07-12T09:50:50+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-12T09:50:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=d83a966199671a1cab6b8f56be448662e79f4a46'/>
<id>urn:sha1:d83a966199671a1cab6b8f56be448662e79f4a46</id>
<content type='text'>
- ppmck/pyxel向けに表現力のある作曲テンプレートを追加
- エンベロープ、ビブラート、音程変化の使用例を追加
- テンプレートの検証・IR・音声合成テストを追加
- README、設計書、MCP仕様書を現行実装に合わせて更新
</content>
</entry>
<entry>
<title>waveファイル名可変対応</title>
<updated>2026-07-11T16:10:41+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-11T16:10:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=3bb311ad8e0f10617805c8737d92d13e6a627818'/>
<id>urn:sha1:3bb311ad8e0f10617805c8737d92d13e6a627818</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: レビュー指摘事項の修正（エラー戻り値統一、タイ延長、ネストリピート、専用エラーコード）</title>
<updated>2026-07-11T10:57:02+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-11T10:57:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=e16782c208320138d77b88f2ff359e3e9e059e76'/>
<id>urn:sha1:e16782c208320138d77b88f2ff359e3e9e059e76</id>
<content type='text'>
High severity:
- compose action エラー戻り値の validation キー統一（server.py）
- ppmck/pyxel タイ &amp; の duration 延長修正（_tie_pending フラグ導入）
- pyxel ネストリピート対応（RepeatFrame + イベントスナップショット方式）

Medium severity:
- 専用エラーコード追加: VALIDATION_MISSING_PARAMETER, VALIDATION_INVALID_MODE, VALIDATION_INVALID_ACTION
- SYSTEM_INTERNAL_ERROR キャッチ範囲拡大（compose/validate全体をtry/except）

Low severity:
- 設計書 line/column を1始まりに明記、APIレベルエラーコード追記

テスト: 129 passed, ruff: All checks passed
</content>
</entry>
<entry>
<title>テスト追加と修正</title>
<updated>2026-07-11T10:35:37+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-11T10:35:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=c2e5098d030fe902eff258e10d2fefc01226e4bf'/>
<id>urn:sha1:c2e5098d030fe902eff258e10d2fefc01226e4bf</id>
<content type='text'>
</content>
</entry>
</feed>
