mcpField
S
Sounio Compiler

Sounio Compiler

ローカル
github.com/sounio-lang開発ツール12今日更新

Sounio Compiler について

Sounio Compilerは、チェック済みのSounioコンパイラーをAgentツールから利用するローカルMCPサーバーです。stdioのみで検査、コンパイル、実行、テストを行い、構造化診断と標準ライブラリ・エラーのリソースも提供します。

主な機能

  1. 01.sioファイルを検査して診断を返す
  2. 02有効なファイルをローカル成果物にコンパイル
  3. 03プログラムを実行し出力と終了コードを取得
  4. 04ファイルまたはディレクトリ単位でテスト
  5. 05標準ライブラリとエラーのリソースを提供
  6. 06構造化された診断内容を返す

活用シーン

  1. 01生成したSounioコードを検査して反復修正
  2. 02有効なプログラムをローカル成果物にコンパイル
  3. 03Sounioプログラムを実行して結果を確認
  4. 04Sounioテストスイートを自動実行

MCP 対応

ローカルMCP stdio経由で、コンパイラーの検査、コンパイル、実行、テストのツールと、標準ライブラリおよびエラー説明のリソースをAgentツールに提供します。HTTPトランスポートやリモート実行には対応しません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"agourakis82-sounio": {
"command": "uvx",
"args": [
"sounio-mcp-server"
]
}
}
}
起動コマンドuvx sounio-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypisounio-mcp-server0.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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

エラー → 修正のループ

このループは意図的にシンプルです。

  1. エージェントが .sio ファイルを作成または編集します。
  2. エージェントが sounio_check を呼び出します。
  3. 診断が次のプロンプトに挿入されます。
  4. エージェントがファイルを修正します。
  5. 診断がなくなるか、反復回数の上限に達するまで、エージェントが繰り返します。

再現可能なローカルデモは次のとおりです。

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 経由の実際の mcp Python SDK クライアントセッションをカバーします。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。