Sounio Compiler について
Sounio Compilerは、チェック済みのSounioコンパイラーをAgentツールから利用するローカルMCPサーバーです。stdioのみで検査、コンパイル、実行、テストを行い、構造化診断と標準ライブラリ・エラーのリソースも提供します。
主な機能
- 01.sioファイルを検査して診断を返す
- 02有効なファイルをローカル成果物にコンパイル
- 03プログラムを実行し出力と終了コードを取得
- 04ファイルまたはディレクトリ単位でテスト
- 05標準ライブラリとエラーのリソースを提供
- 06構造化された診断内容を返す
活用シーン
- 01生成したSounioコードを検査して反復修正
- 02有効なプログラムをローカル成果物にコンパイル
- 03Sounioプログラムを実行して結果を確認
- 04Sounioテストスイートを自動実行
MCP 対応
ローカルMCP stdio経由で、コンパイラーの検査、コンパイル、実行、テストのツールと、標準ライブラリおよびエラー説明のリソースをAgentツールに提供します。HTTPトランスポートやリモート実行には対応しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Sounio MCP Server
sounio-mcp-server は、ローカルの Model Context Protocol stdio トランスポート経由で、チェック済みの Sounio コンパイラーをエージェント型ツールに公開します。意図的にローカル専用となっており、HTTP トランスポート、OAuth、トークン処理、リモート実行経路はありません。
インストール
pip install -e tools/mcp
python -m sounio_mcp.server --transport stdio
Claude Code:
claude --mcp-server sounio=python:-m:sounio_mcp.server
サーバーは scripts/lib/resolve_souc.sh を通じて souc を解決します。このチェックアウトでは、サポート対象ホスト上のチェック済みセルフホスト型ランチャー(bin/souc)に解決されます。サーバーは /workspace/sounio の外部にあるソースパスを拒否します。
ツール呼び出しは、MCP のテキストコンテンツと structuredContent の両方を返します。テキストコンテンツはプロンプトのシェル例をシンプルに保ち、structuredContent を使うと、型付き MCP クライアントが JSON テキストを再解析せずに結果を利用できます。
ツール
sounio_check
.sio ファイルの型をチェックし、souc check --json から正規化した診断を返します。
例:
{
"source_path": "tests/fixtures/broken_dose.sio"
}
応答には、次の 2 つの診断ビューが含まれます。
diagnostics:文字列形式の重大度、1 始まりのline/column、スパン、関連する注記、警告を含む、エージェント向けのレコードです。diagnostic_envelope:CC-1/CC-2 で共有されるsounio.diagnostic.v1エンベロープで、tools/shared/diagnostic_schema.jsonに照らして検証されます。
sounio_compile
sounio_check を実行し、有効なファイルをローカルの成果物にコンパイルします。
例:
{
"source_path": "examples/hello.sio",
"target": "elf",
"optimization": "default"
}
ターゲットには elf、macho、ptx、metal、wasm を指定できます。現在のチェック済みランチャーはホストネイティブの ELF で最も安定しており、その他のターゲットはコンパイラーのターゲットフラグに渡され、未対応の場合はその旨が正確に報告されます。
sounio_run
sounio run を実行し、標準出力/標準エラー/終了コードを取得して、compile_error、runtime_error、timeout、ok のいずれかを報告します。
例:
{
"source_path": "examples/hello.sio",
"args": [],
"timeout_sec": 30
}
環境変数による上書きは、機密性のないキーに限り許可されます。トークン、シークレット、認証情報、プロキシ、認証情報を含むキーは拒否されます。
sounio_test
チェック済みコンパイラーを使って、Sounio のテストディレクトリまたはファイルをプログラムで実行します。
例:
{
"test_pattern": "tests/run-pass",
"test_filter": "hello"
}
テストランナーは、既存の //@ run-pass、//@ compile-fail、//@ check-only、//@ expect-stdout、//@ expect-stdout-contains、//@ error-pattern、//@ ignore アノテーションを解釈します。
リソース
sounio://stdlib/{module}は、標準ライブラリの README/ソースのコンテキストを返します。sounio://errors/{error_code}は、現在のコンパイラーソースまたはコミット済みのコンパイル失敗の証拠をたどった、コンパイラーエラーの説明を返します。
例:
sounio://stdlib/stats
sounio://stdlib/clinical
sounio://errors/E070
エラー → 修正のループ
このループは意図的にシンプルです。
- エージェントが
.sioファイルを作成または編集します。 - エージェントが
sounio_checkを呼び出します。 - 診断が次のプロンプトに挿入されます。
- エージェントがファイルを修正します。
- 診断がなくなるか、反復回数の上限に達するまで、エージェントが繰り返します。
再現可能なローカルデモは次のとおりです。
PYTHONPATH=tools/mcp python3 tools/mcp/examples/llmloop_recipe.py \
--fixtures 'tests/fixtures/broken/*.sio' \
--max-iter 10 \
--seed 1729
現在のフィクスチャベンチマーク:
- フィクスチャ:20
- エージェントモデル:
deterministic-fixture-agent-v0.1 - シード:
1729 - 収束率:
1.0 - 平均反復回数:
1.0
これは LLMloop パターンのためのローカルレシピであり、ホストされたモデルについての主張ではありません。Claude Code、Cursor、MCP 経由の ChatGPT、CLI エージェントが、実際の Sounio コンパイラーを使って同じチェック/修正/再チェックのループを完了できるようにするものです。
エージェント間での利用
- CC-1 が
tools/shared/diagnostic_schema.jsonを管理します。MCP は同じsouc check --jsonの形式を利用し、LSP 互換のrangeフィールドを保持します。 - Cx-1 は、生成されたデータセット例の標準的な検証方法として
sounio_checkを使用してください。 - Cx-2 は、翻訳済みの
.sioファイルが生成された後、HumanEval/MultiPL-E の実行ハーネスとしてsounio_runを使用できます。
品質に関する注意事項
- コンパイラのバイナリは変更しません。
- リモート MCP トランスポートは実装されていません。
- エラーカタログの項目はトレースに基づいています。不明なコードに対しては、説明を作り上げず、明示的な「まだ昇格されていません」というリソースを返します。
- チェック対象のランチャーの
compile互換モードは、成果物が出力されなくても終了コード 0 を返すことがあるため、sounio_compileは出力の存在を確認します。 - 絞り込んだ Python ゲートでは、直接ツール、スキーマ検証、単発の JSON-RPC、および stdio 経由の実際の
mcpPython SDK クライアントセッションをカバーします。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。