diff options
| author | tanaka takashi <isazaka@gmail.com> | 2026-09-12 20:40:07 +0900 |
|---|---|---|
| committer | tanaka takashi <isazaka@gmail.com> | 2026-09-12 20:40:07 +0900 |
| commit | 4f3f548b1b55d4c7477250fc3373b3bd6d0d397f (patch) | |
| tree | 5688ea7fa04af051055323e316e53533b9db6193 /doc/config.md | |
| parent | cc6165947a82d2182df8accbc7b4adfe2606db9e (diff) | |
streamable-httpトランスポート対応を追加
MCP SDK 2.xのMCPServer.run(transport="streamable-http")を使い、stdioに
加えてStreamable HTTPトランスポートで起動できるようにする。SSEはMCP仕様で
非推奨のため選択肢から除外し、transport enumはstdioとstreamable-httpの
2種類のみとした。
transportの選択はTOML [server] tableで指定し、CLI引数は追加しない。
仕様の「CLI上書きを行わない」「TOML集約」原則に準拠する。[server]省略時は
stdio(後方互換)、streamable-http時はhost=127.0.0.1 port=8000を既定値とする。
変更内容:
- config.py: ServerConfig dataclass、VALID_TRANSPORTS定数、AppConfig.server
フィールド、load_configの[server]読込・validation追加
- cli.py: main()でconfig.server.transportに応じたrun()引数分岐
- tests/conftest.py: app_config fixtureにserver=ServerConfig()追加
- tests/test_config.py: [server]の正常系・異常系・境界値テスト追加
(省略時stdio既定値、streamable-http読込、sse/http/ws/unknown拒否、
port境界値0/65536/-1/文字列、host空文字拒否)
- doc/config.md: [server]セクション追記、設定項目一覧表更新
- config.example.toml: [server]コメント例追記
- doc/Specifications.md: スコープ表にMCPトランスポート行追加
- doc/Design.md: 責務表と起動フロー更新
- doc/mcp.md: 概要のtransport記載更新
- README.md: streamable-http起動例追記
- script/smoke_streamable_http.py: streamable-http経由の検証スクリプト追加
検証:
- ruff format/check、pyright 0 errors、pytest 50 passed
- 実GPU・実モデルでstreamable-http経由generate_imageの全ルート確認
(HTTP接続→MCP initialize→tools/list→tools/call→PNG生成・返却)
- 生成結果: 335KB PNG、512x512、20 steps、CFG 7.0
Diffstat (limited to 'doc/config.md')
| -rw-r--r-- | doc/config.md | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/doc/config.md b/doc/config.md index 804fbf8..48142dc 100644 --- a/doc/config.md +++ b/doc/config.md @@ -56,6 +56,9 @@ uv run mcp-sd15 --config C:\path\to\config.toml | `controlnet.inpaint.model` | string | 有効時 | なし | | `output.enabled` | boolean | No | `false` | | `output.directory` | string | No | `./outputs` | +| `server.transport` | string enum | No | `stdio` | +| `server.host` | string | No | `127.0.0.1` | +| `server.port` | integer | No | `8000` | ## 4. `[model]` @@ -248,6 +251,50 @@ directory = "./outputs" | `enabled` | `true`で保存、`false`でMCP返却のみ。既定値`false` | | `directory` | 保存先。既定値`./outputs` | +## 9. `[server]` + +MCPトランスポートとHTTP待受アドレスを指定する。table自体を省略した場合は +`stdio`トランスポートになる。 + +```toml +[server] +transport = "stdio" +``` + +streamable-httpトランスポートを使う場合は次のように指定する。 + +```toml +[server] +transport = "streamable-http" +host = "127.0.0.1" +port = 8000 +``` + +### `transport` + +次の値だけを指定できる。 + +| 値 | 動作 | +|---|---| +| `stdio` | 標準入出力でMCPクライアントと通信する。既定値 | +| `streamable-http` | HTTPでMCPクライアントと通信する。`http://<host>:<port>/mcp`で接続する | + +`sse`はMCP仕様で非推奨のため選択できない。 + +### `host` + +- `transport`が`streamable-http`のときに使用する待受アドレス +- 既定値は`127.0.0.1`(localhostのみ) +- `0.0.0.0`を指定すると全インターフェースでリッスンする +- `transport`が`stdio`のときは使用されない + +### `port` + +- `transport`が`streamable-http`のときに使用する待受ポート +- `1`以上`65535`以下のinteger +- 既定値は`8000` +- `transport`が`stdio`のときは使用されない + 相対`directory`はconfigファイルのディレクトリを基準に解決する。保存が有効な場合、 ディレクトリは最初の保存時に作成され、ファイル名はランダムUUIDの`<uuid>.png`となる。 |
