omega-mcp について
omega-mcpは、Omegaを扱うエージェント向けのMCPサーバーです。固定バージョンのコンパイラーで`.om`プログラムを隔離サンドボックス内でコンパイル・実行し、キーワードやエラー、トラップも検索できます。
主な機能
- 01Omegaソースのコンパイル
- 02隔離サンドボックスでの実行
- 03コンパイルエラーとトラップの説明
- 04キーワードやトピックの検索
- 05CPU・メモリ・ファイルの制限
活用シーン
- 01Omegaプログラムのコンパイル確認
- 02リソース制限下でのサンプル実行
- 03コンパイルエラーや実行時トラップの把握
- 04キーワードの構文と例の検索
MCP 対応
stdio上のJSON-RPCを介して、compile、run、explain_error、lookupをMCPツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
omega-mcp
Omega で記述された MCP サーバーです。エージェントが固定されたシード済みコンパイラーを使って Omega(.om)プログラムをコンパイルして実行したり、言語について調べたりできます。標準入出力を介した改行区切りの JSON-RPC 2.0 として、MCP(プロトコルバージョン 2025-06-18)を使用します。
固定バージョン:omega-mv e5b32567a7aff3ce594e3254a622a846a6cd190b、omc sha256
2c82480596bbdc50cda9626866209ef662d5834f278f839ff4ce0250c495029f。build.sh はこれ以外のコンパイラーを拒否し、サーバーも起動時にコンパイラーの sha256 を再確認します。
ツール
| ツール | 引数 | 結果 |
|---|---|---|
compile | source | ok、バイナリサイズと sha256、またはコンパイルエラー {line, code, meaning, fix} |
run | source、stdin、timeout_ms(1..30000、デフォルト 5000) | コンパイル結果、上限付きの stdout/stderr、および終了内容:normal、trap(意味を含む)、または停止させた limit(cpu_time、file_size、wall_clock、killed) |
explain_error | query:エラーコード 1..30、omc: line N: error K の行、trap T、または終了ステータス 101..114 | 意味、原因、修正方法、最小限の例、omega-mv@e5b32567 内の引用箇所 |
lookup | query:キーワードまたはトピック、あるいは部分文字列 | 項目(形式、引数の数、型、結果、例、引用箇所)、または最大 20 件の検索結果 |
コンパイル診断は成功したツール結果です(isError: false)。実行できるものがない場合(サンドボックスの失敗、コンパイル段階での拒否)、または explain/lookup で項目が見つからなかった場合は isError が true になります。不正な引数は JSON-RPC エラー(-32602)になります。
分離
compile と run の各段階では、新しい /tmp/omega-mcp-<16 hex> ディレクトリ(モード 0700)を作成し、応答後に削除します。また、bwrap --unshare-all --clearenv の下で実行します。サンドボックスから見えるのは、コンパイラーまたはプログラム(読み取り専用)、サンドボックス内の再親プロセス、および 16 MiB の tmpfs 作業ディレクトリだけです。ネットワークもホストファイルもなく、環境変数は空です。prlimit は開始前にサンドボックスにリソース制限を適用し、サーバーは実時間の上限に達するとサンドボックス全体を強制終了します。
| 段階 | CPU | アドレス空間 | ファイルサイズ | プロセス数 | 実時間 |
|---|---|---|---|---|---|
| run | 10 s | 256 MiB | 1 MiB | 5 | timeout_ms(デフォルト 5 s、最大 30 s) |
| compile | 20 s | 512 MiB | 16 MiB | 4 | 20 s |
どちらの段階にも、開いているファイル数は 64、コアダンプはなしという制限が適用されます。--test-only-no-isolation を指定するとこれらすべてが無効になり、信頼性ゲートが脱出を検出できることを証明するためだけに存在します。エージェントには決して渡さないでください。
ビルドと使用
OMEGA_SRC=/path/to/omega-mv ./build.sh # omega-mv checkout at e5b32567 with seed/out/omc built
build/omega-mcp # reads JSON-RPC on stdin; logs one line per request on stderr
サーバーは、実行ファイルと同じ場所にある data/reference.json と data/examples/ を読み込みます。起動時の終了コード:2 は引数不正、3 はコンパイラーが固定バージョンと不一致、4 はデータ欠落、5 は bwrap/prlimit 欠落です。mcp.json はクライアント設定の例です。command が build/omega-mcp を指すように設定してください。
ゲート
python3 gates/smoke.py # MCP client session; transcript in evidence/smoke-transcript.jsonl
python3 gates/trust.py # trust boundary: 4 attacks plus negative controls; evidence/trust-gate.json
python3 tools/check-reference.py --omega-src $OMEGA_SRC --omc $OMEGA_SRC/seed/out/omc --self-test
trust.py は run ツールを介して、~/.local/state にあるカナリアの読み取り、フォーク爆弾、無限ループ、10 GiB の書き込みを試み、それぞれが拒否または強制終了され、プロセスが残らないことを要求します。--test-only-no-isolation を指定して起動した 2 つ目のサーバーでは、同じ攻撃の制限付きバージョンを実行し、成功することを確認します。これにより、脱出を検出できないゲートは失敗します。check-reference.py は、固定されたソースからすべてのキーワード、エラー項目、トラップ項目を再生成し、固定された omc ですべての例をコンパイルして実行し、3 つのネガティブコントロールも実行します。
これらのゲートが示すのは、Linux arm64(bubblewrap 0.9.0、util-linux 2.39.3)上でのホストの検証結果です。他のカーネルや、src/sandbox.om に記載されたもの以外のサンドボックス設定については何も示しません。
構成
src/*.om:サーバー(連結順はsrc/UNITSに記載されており、build.shがビルドします)vendor/omega-mv/:omega-mv@e5b32567 から変更せずにコピーした sha256 と JSON のユニットdata/:参照データとサンプルプログラム。tools/gen-reference.pyが生成し、tools/check-reference.pyが検証しますgates/、evidence/:検証オラクルと記録された結果DEPENDENCIES.md:ビルド、実行、検証の各経路で使用するすべてのホストツール
ライセンス:Apache-2.0(LICENSE と NOTICE を参照)。
人間主導のエージェントエンジニアリング
開発では、人間主導のエージェントエンジニアリング(HDAE)に従います。人間が目標、 アーキテクチャ、制約、受け入れ基準、停止時点を定め、エージェントはその範囲内で実装し、 チェックを実行し、失敗を診断して修正します。主張、受け入れ、リリースに関する責任は、 人間によるレビューが担います。これは開発手法についての説明であり、実行時の自律性や 過去の証拠を変更するものではありません。
この手法の文書とシステムソフトウェアのケーススタディについては、Gregory M. Kurtzer (2026)、Ginux: Building an Independent Kernel That Runs Linux Userspace through Human-Directed Agentic Engineering、テクニカルレポート、v1、Zenodo、 https://doi.org/10.5281/zenodo.23682548を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。