wasm-mcp について
wasm-mcpは、WebAssemblyコア仕様と関連API仕様を構造化して照会する読み取り専用MCPサーバーです。命令、型、条項、提案を調べるクライアント向けで、データはコミットに固定され、リクエスト時にコード実行やネットワークアクセスを行いません。
主な機能
- 01ニーモニックまたはオペコードによる命令取得
- 02命令の絞り込み・一覧・検索
- 03値型と型形式の照会
- 04仕様条項の取得とナビゲーション
- 05仕様本文と提案の検索
- 06固定コミットに基づく決定的な読み取り専用データ
活用シーン
- 01命令のオペコードとスタック型シグネチャの確認
- 02条項に記載された検証・実行規則の確認
- 03JavaScriptまたはWeb API仕様の参照
- 04WebAssembly提案とフェーズの調査
MCP 対応
core、js-api、web-api仕様を対象に、命令、型、仕様条項、全文検索、提案照会のMCPツールを提供します。命令と型の照会はcoreのみ対応し、ローカルstdioまたはホスト型Streamable HTTPエンドポイントで利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.xyzzylabs.ai/wasm/mcpclaude mcp add --transport http xyzzylabs-wasm https://mcp.xyzzylabs.ai/wasm/mcp{"mcpServers":{"xyzzylabs-wasm":{"type":"http","url":"https://mcp.xyzzylabs.ai/wasm/mcp"}}}Cursor で開く{"servers":{"xyzzylabs-wasm":{"type":"http","url":"https://mcp.xyzzylabs.ai/wasm/mcp"}}}VS Code で開く{"mcpServers":{"xyzzylabs-wasm":{"type":"http","url":"https://mcp.xyzzylabs.ai/wasm/mcp"}}}{"mcpServers":{"xyzzylabs-wasm":{"serverUrl":"https://mcp.xyzzylabs.ai/wasm/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
9このツールにパラメーターはありません。
詳細
wasm-mcp
WebAssembly コア仕様用の Model Context Protocol サーバーです。 SHA で固定され、読み取り専用かつ決定的に動作するため、認証なしのパブリックエンドポイントとして安全にホストできます。
W3C WebAssembly Community Group または Working Group とは提携しておらず、承認や後援も受けていません。
提供内容
spec_version— 固定された上流コミットとパッケージバージョン。instruction_get— ニーモニック(i32.add)またはバイナリーオペコード(0x6a)で検索できる、オペコードのバイト列、カテゴリ、導入バージョン、スタック型シグネチャ、検証および実行に関する説明文のアンカー/URL、トラップ条件(trapsおよびcan_trap)。instruction_list— カテゴリ(numeric、vector、reference、parametric、variable、table、memory、control、ref、i31、struct、array、extern)、導入バージョン、またはプレフィックスでフィルタリングできる一覧表示。instruction_search— ニーモニック、カテゴリ、オペコードを対象としたランキング付きのフリーテキスト検索。type_get— 値型(数値/ベクター/参照)と型形式(functype、limits、memtypeなど)、および型を定義する説明文。section_get— ID/アンカーで指定した仕様の節(structure、validation、execution、binary、text)。説明文、相互参照、SpecTec の形式規則への参照、レンダリングされた URL を返します。section_list— 領域またはアンカープレフィックスで節のツリーをたどります。spec_search— アンカー、タイトル、説明文を対象とした全文検索。proposal_list— WebAssembly の提案とそのフェーズ(固定されたWebAssembly/proposalsリポジトリから取得)。ステータス、フェーズ、チャンピオン、または影響を受ける仕様でフィルタリングできます。
section_get、section_list、spec_search は、WebAssembly/spec リポジトリにある3つの仕様すべてを対象とする spec 引数を受け取ります。対象は core(デフォルト)、js-api(JavaScript 埋め込み API)、web-api(Web プラットフォームとの統合)です。命令および型のツールは core のみを対象とします。
契約
すべてのツールは次のとおりです。
- 読み取り専用です。 状態の変更や、任意のローカルキャッシュ以外への書き込みは行いません。
- 決定的に動作します。
vendor/PINNED.txtに記録された固定仕様コミットに対し、同じ入力からは同じ出力が得られます。 - コードを実行しません。 WebAssembly や任意のコードをコンパイル、実行による検証、インスタンス化、実行することはありません。検証規則と簡約規則はデータとして返されます。
- 認証情報、シークレット、個人情報(PII)は不要です。 匿名で利用できます。
- リクエスト時にネットワークを使用しません。 仕様データはすべてビルド時に取得・インデックス化され、パッケージに組み込まれます。
インストール(stdio、ローカル)
npx wasm-mcp
サーバーを設定に追加することで、任意の MCP クライアントに接続できます(起動コマンドはどこでも同じで、異なるのは設定ファイルだけです)。
{
"mcpServers": {
"wasm": {
"type": "stdio",
"command": "npx",
"args": ["wasm-mcp"]
}
}
}
ホスト型 Worker
worker/ の Cloudflare Worker は、stdio パッケージと同じツール一式を、単一の認証不要エンドポイントからストリーム可能な HTTP 経由で公開します。送信元 IP ごとにレート制限(30 req / 60 s)が適用されます。
https://mcp.xyzzylabs.ai/wasm/mcp
GET /wasm/health はステータスと固定された SHA を返し、GET /wasm/privacy は匿名利用およびデータを保存しない方針を示します。すべての仕様データは Worker にバンドルされるため、メモリ内での検索のみを行い、ストレージもリクエスト時のネットワーク通信も使用しません。
リリースとデータの更新
固定されたコミットは vendor/PINNED.txt に記載されており、spec_version で報告されます。スケジュール設定された GitHub Actions ワークフロー(refresh.yml)は、毎日アップストリームリポジトリの SHA を比較します。固定先が更新されると、固定し直してパッチバージョンを上げ、リリースにタグを付けます。これにより、npm パッケージが公開され(release.yml)、Worker が再デプロイされます(deploy-worker.yml)。
メンテナー向け:
- npm の公開には Trusted Publishing(OIDC)を使用します。
NPM_TOKENは不要です。npmjs.com で一度設定してください(wasm-mcp → Settings → Trusted Publisher → GitHub Actions:orgxyzzylabs、repowasm-mcp、workflowrelease.yml)。 - Worker のデプロイには
CLOUDFLARE_API_TOKENとCLOUDFLARE_ACCOUNT_IDが必要です。これらはcloudflareGitHub Environment の 環境シークレットとして保存してください(リポジトリ全体ではなく)。デプロイルールはmainとv*に設定します。詳しくはデプロイ認証情報の保護をご覧ください。 - refresh ワークフローによるタグのプッシュをリリースとデプロイのトリガーにするには、
WORKFLOW_PATPAT(contents: writeとworkflows)を追加してください。これがない場合も、refresh による再固定とタグ付けは実行されますが、リリースとデプロイは手動で行います。(tc39-mcp と同じシークレット名のため、1 つの PAT、またはxyzzylabsの組織シークレットを両方のリポジトリで使用できます。)
ライセンス
MIT — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。