<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mml-composemusic-mcp.git/tests/test_server.py, branch v0.3.0</title>
<subtitle>レトロチップ音源（2A03 APU）風のMMLをLLMに作曲させるためのMCPサーバです 
</subtitle>
<id>https://git.takashi-2521.com/mml-composemusic-mcp.git/atom?h=v0.3.0</id>
<link rel='self' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/atom?h=v0.3.0'/>
<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: implement Famicom-style MML composer MCP server</title>
<updated>2026-07-11T10:02:14+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-11T10:02:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=ca35520338057512a71acd42bb116ffbb82cc192'/>
<id>urn:sha1:ca35520338057512a71acd42bb116ffbb82cc192</id>
<content type='text'>
- Add FastMCP server with compose_mml tool

- Support ppmck and pyxel MML syntax

- Add lexer and parsers for both formats

- Add NES APU-style synthesizer (pulse/triangle/noise) to WAV

- Add MML templates (basic/melody/chord/drum/empty) for both modes

- Add tests for lexer, parser, and server

- Support stdio, http, sse, streamable-http transports

- Update README, pyproject.toml, and .gitignore
</content>
</entry>
</feed>
