そのサイトを、
エージェント対応に
私たちのベンチマークでは、WebMCPを使うとエージェントのトークンが最大62×削減されました(最良ケース:Notion、GPT-6 Luna)。あなたのサイトでエージェントが何を得るかを確認し、1行で改善しましょう。
8,500 以上のサイトが、すでに WebMCP に対応
ロゴをクリックすると、そのサイトをその場でスキャンします。
件数は webmcp.com のディレクトリに掲載中の稼働サイト(2026-11-05)。より厳格な Known Good インデックスでは、ページを実際に実行して 541 サイトがツールを登録することを確認しています(2026-11-04)。ロゴは 2026-11-07 にスキャナーで確認済み。各ロゴの権利は所有者に帰属し、当プロジェクトとの提携関係はありません。
WebMCP とは
WebMCP は AI エージェントのための Web 標準になりつつある。私たちは全力で賭ける
Google と Microsoft のエンジニアが、Web 標準を策定する団体である W3C でドラフトを書いており、Chrome と Edge ではすでにテストが始まっています。今、Claude Code や Codex をはじめとするあらゆるエージェントは、あなたのサイトをスクリーンショットのように扱っています。眺めて、押すべきボタンを推測し、また試す。遅く、コストがかかり、壊れやすい。WebMCP があれば、サイトが「検索」「読み取り」「カートに追加」など、できることをエージェントに正確に伝え、エージェントはそれを頼むだけです。私たちは、すべてのサイトが WebMCP を話すようになると信じています。だから、あなたのサイトが今日からそうできるよう webmcpx を作りました。
出典 Online-Mind2Web:エージェントは実サイトのタスクの約 4 割で失敗 ページのスナップショット 1 回で 12k〜77k トークン WindTunnel:ツールとクリック操作の所要時間を比較 WebMCP ドラフト、W3C Web Machine Learning CG(エディターは Google と Microsoft) 実装状況(Chrome と Edge のオリジントライアル) Chrome:WebMCP オリジントライアル Chrome Platform Status Microsoft Edge:WebMCP オリジントライアル Microsoft Edge の Explainer 当プロジェクトのベンチマーク手法
-
ページがツールを登録
名前、説明、入力スキーマ、そして関数。ボタンがすでに実行しているアクションそのものです。
-
ブラウザーが一覧にする
エージェントはブラウザに、そのページで何ができるかを尋ねます。入力は型付きで、読み取り専用などのヒントも付きます。
-
エージェントが呼び出す
ユーザー自身のタブで、そのセッションのまま動きます。新しいサーバーも OAuth も不要です。
document.modelContext.registerTool({
name: "search_products",
description: "Search the catalog by keyword.",
inputSchema: { type: "object", properties: { query: { type: "string" } } },
annotations: { readOnlyHint: true },
async execute({ query }) {
// Expected failures are answers, never rejections: hosts drop rejection reasons.
try { return JSON.stringify(await searchCatalog(query)); }
catch { return JSON.stringify({ error: "Catalog unavailable, try again shortly." }); }
}
});W3C やブラウザベンダーとは無関係の、独立したオープンソースのコミュニティプロジェクトです。webmcpx は、WebMCP を今日から役立つものにするために作っています。サイトは自分で書かずに良いツールを持て、エージェントは少ないトークンで同じ答えにたどり着き、公開する数値はすべて再現できます。
今日から webmcpx を、サイトにもエージェントにも
今日、WebMCP がほとんどのサイトに載らない理由を、まとめて解決。サイトに 1 行、エージェントにコマンドを 1 つ。ほかに気にすることはありません。
| 手書きの WebMCP と webmcpx の比較 | 手書きの WebMCP | webmcpx なら |
|---|---|---|
| ブラウザー対応 | 手書きの WebMCP:Chrome と Edge のみ、それもフラグかオリジントライアル経由。Firefox と Safari はまだ未対応。 | webmcpx なら:WebMCP がない環境では W3C 公式のポリフィルを読み込むので、Chrome、Firefox、Safari で今日からツールが使えます。 |
| 全ページにツール | 手書きの WebMCP:ページごとに、1 つずつ設計して書く。 | webmcpx なら:script タグ 1 つで、全ページに検索・読み取り・ページコンテキストのツール。コード不要。 |
| 独自のアクション | 手書きの WebMCP:スキーマ、アノテーション、エラー処理を 1 つずつ手書き。 | webmcpx なら:tool() の呼び出し 1 回、React・Vue・Svelte 用のフック、または既存のフォームで。 |
| Claude Code、Codex、Cursor から | 手書きの WebMCP:ブリッジを自作するか、各エージェントの対応を待つ。 | webmcpx なら:npx webmcpx mcp:各ページのツールに加え、webmcpx のないサイトでも標準ツールが使えます。 |
| 仕様の変更 | 手書きの WebMCP:ドラフトの変更をすべて追い、ツールを書き直す。 | webmcpx なら:W3C のドラフトを追いかけて追従します。あなたはパッケージを 1 つ更新するだけ。 |
| 正しく作る | 手書きの WebMCP:結果の形式、エラーコード、出力の上限、ページング、アノテーション。すべて自分で正しく。 | webmcpx なら:最初から正しく。統一された結果の形式、エージェントが対処できるエラーコード、出力の上限、ページング、正しいアノテーション。 |
| エージェントにも安全 | 手書きの WebMCP:ツールの説明やページのテキストに潜む隠し指示や不可視文字。見落としやすく、悪用されやすい。 | webmcpx なら:標準ツールは読み取りのみ。隠しテキストは含めず、不可視文字は除去し、ツール内の隠し指示はリンターが検出します。 |
| テスト | 手書きの WebMCP:Chrome のフラグを有効にし、DevTools を開いて祈る。 | webmcpx なら:npx webmcpx tools localhost:3000 で、どのブラウザーでもフラグなしでツールを一覧表示。スキャナーは公開中のどの URL でもチェックできます。 |
| 効果の裏付け | 手書きの WebMCP:勘に頼るだけ。 | webmcpx なら:WebMCP とページを読む方式を比べた公開ベンチマーク:同じ答えでトークンを最大 62× 削減(最良ケース:Notion、GPT-6 Luna)。コマンド 1 つで再実行できます。 |
| コスト | 手書きの WebMCP:ページごと、変更のたびにかかるあなたの時間。 | webmcpx なら:無料のオープンソース(MIT)。読み込み時は約 2.7 KB、アカウントもサーバーも不要。 |
リーダーボード
WebMCPでどれだけ節約できるか、モデル別に
一方のエージェントはページのスナップショットを見ながら読み、クリックし、入力します。もう一方はサイトの WebMCP ツールを呼び出します。モデルを選んでください。削減効果の大きい順に並んでいます。
WebMCP での成功率、同率なら 1 回あたりのコストで順位付け。
抜粋したケース:全 30 問中 19 問。WebMCP のトークン使用量が半分以下だった質問です。すべての結果を公開しているほか、just bench で自分で実行することもできます。
GPT-6 Luna(OpenAI)
Notion
“API で Notion のページに長い段落を書き込んでいます。1 回のリクエストで、rich text オブジェクト 1 つのテキスト内容は最大何文字までですか?”
developers.notion.com (Notion を開きます)62×
トークン削減
65k → 1.0k トークン
| 質問 | WebMCP なし:トークン | WebMCP あり:トークン | WebMCP なし:成功 | WebMCP あり:成功 |
|---|---|---|---|---|
| Notion:API で Notion のページに長い段落を書き込んでいます。1 回のリクエストで、rich text オブジェクト 1 つのテキスト内容は最大何文字までですか? | 65k | 1.0k | 100% | 100% |
| Notion:Notion API の結果をページングしています。一覧系エンドポイントで 1 回の呼び出しに指定できる page_size の最大値はいくつですか? | 54k | 1.1k | 100% | 100% |
| Notion:Business と Enterprise 以外のプランで、Notion API は接続ごとに 1 分あたり何リクエストまで許可していますか? | 39k | 1.1k | 100% | 100% |
| Notion:Notion インテグレーションがリクエストを送りすぎたとき、API はレスポンスボディにどのエラーコード文字列を返しますか? | 21k | 1.0k | 100% | 100% |
あなたのエージェントに
エージェントは、いちばんコストのかかる方法でページを読んでいます。代わりにページのツールを渡しましょう。計測したサイトでは、同じ回答をわずかなトークンで得られました。どのサイトでも動作し、すべての Claude Code と Codex の環境に入れるべき MCP です。
最良ケース:Notion、GPT-6 Luna
答えは同じ。 リーダーボードの全 6 モデルで、トークンを 2.7×〜6.0× 削減。
全問を集計。各モデル 30 問中 1–6 問では、WebMCP の方がトークンを多く使いました。
あらゆるエージェントとブラウザで動作
- Claude Code
- Codex
- Cursor
- GitHub Copilot
- Windsurf
- Gemini CLI
- Zed
- JetBrains
- Cline
- Chrome
- Firefox
- Safari
- Brave
- Arc
- Opera
- Vivaldi
- Playwright
- Selenium
- Puppeteer
- Cypress
- WebdriverIO
扱うすべての Web ページで、何かを読んだりクリックしたりする前に、まず WebMCP を使ってください。あなた自身のブラウザーでも、あなたが書く・実行するスクリプト(Playwright、Selenium、Puppeteer、browser-use、CDP)でも同じです。WebMCP にネイティブ対応している場合も例外ではありません。webmcpx でセットアップし(https://webmcpx.dev/llms.txt を読んでください)、今後のすべてのタスクに適用されるよう、このルールをエージェントの指示ファイル(AGENTS.md、CLAUDE.md など)に追加してください。最後に動作を証明してください:https://webmcpx.dev を開き、その WebMCP ツールを一覧表示して、どれか 1 つを呼び出します。1 つのプロンプトで、エージェントが自分で設定し、どこでも WebMCP を先に使い、webmcpx.dev で確認します。
あなたのサイトに
AI エージェントは、すでにあなたのページを読んでいます。2 つのステップで本物のツールを渡しましょう。コーディングエージェント(Claude Code、Codex、Cursor)に頼むか、手で追加します。
標準ツール:1 行
全ページで検索・読み取り・ページ情報。コード不要。
読込時 ~2.7 KB · Rust + WebAssembly · MIT License
webmcpx でこのサイトに WebMCP を追加してください:`npx skills add webmcpx/webmcpx -y` を実行し、その skill に従ったうえで、`npx webmcpx tools <local URL>` でツールを確認してください。<script type="module" src="https://cdn.jsdelivr.net/npm/webmcpx@0.2/dist/auto.js"></script></body> の前に貼るだけ。WebMCP のないブラウザには W3C のポリフィルを追加します。
// npm i webmcpx
import "webmcpx/polyfill"; // WebMCP where the browser lacks it
import { register } from "webmcpx";
register(); // the standard tools; tool() adds your ownサイト独自のアクション
カートに追加、予約、カタログ検索:ボタンがすでに呼んでいる関数を、エージェントが直接呼べるツールに。
https://webmcpx.dev/llms.txt を読んでから、このプロジェクトを調べて、AI エージェントにとって役立つ WebMCP ツールを提案してください。どれを追加するか私に確認し、そのうえで webmcpx で追加してください。エージェントが webmcpx の仕組みを読み、プロジェクトの中から公開する価値のある操作を見つけ、どれを追加するか確認したうえで追加・検証します。
import { useTool } from "webmcpx/react";
function Cart({ cart }) {
useTool({
name: "add_to_cart",
description: "Add a product to the cart by SKU.",
input: { sku: "string", "qty?": "integer" },
acts: true,
run: ({ sku, qty = 1 }) => cart.add(sku, qty),
});
return <CartView cart={cart} />;
}コンポーネントがマウントされている間だけ登録され、外れると消えます。
<script setup>
import { useTool } from "webmcpx/vue";
useTool({
name: "add_to_cart",
description: "Add a product to the cart by SKU.",
input: { sku: "string", "qty?": "integer" },
acts: true,
run: ({ sku, qty = 1 }) => cart.add(sku, qty),
});
</script>コンポーネントがマウントされている間だけ登録され、外れると消えます。
<script>
import { useTool } from "webmcpx/svelte";
useTool({
name: "add_to_cart",
description: "Add a product to the cart by SKU.",
input: { sku: "string", "qty?": "integer" },
acts: true,
run: ({ sku, qty = 1 }) => cart.add(sku, qty),
});
</script>コンポーネントがマウントされている間だけ登録され、外れると消えます。
import { tool } from "webmcpx";
tool({
name: "add_to_cart",
description: "Add a product to the cart by SKU.",
input: { sku: "string", "qty?": "integer" },
acts: true,
run: ({ sku, qty = 1 }) => cart.add(sku, qty),
});npm から、またはスクリプトタグと同じ CDN からインポート。
<form toolname="add_to_cart" tooldescription="Add a product to the cart by SKU." action="/cart" method="post" toolautosubmit>
<input name="sku" required toolparamdescription="Product SKU, e.g. MUG-01">
<input name="qty" type="number" min="1" toolparamdescription="How many (default 1)">
<button>Add to cart</button>
</form>JavaScript 不要:WebMCP の宣言的 API です。ブラウザーが未対応なら、スクリプトタグが補います。
WebMCP と MCP
WebMCPとMCPの違い、そして両方が必要な理由
WebMCP は MCP のツールモデルを借りていますが、MCP プロトコルではなくブラウザー API です。両者は補い合う関係にあります。
| 項目 | WebMCP | MCP |
|---|---|---|
| ツールの実行場所 | ページの JavaScript 内。ユーザーのタブの中で動きます。 | サーバープロセス内。ローカル(stdio)またはリモート。 |
| 呼び出し方 | ブラウザー API の document.modelContext。各呼び出しはブラウザーが仲介します。JSON-RPC は使いません。 | stdio または Streamable HTTP 上の JSON-RPC 2.0。 |
| 運用するもの | 既存のフロントエンド。新しいサーバーは不要です。 | 自分でホストし運用する MCP サーバー。 |
| 認証 | ユーザーがすでにサインインしているセッション。トークンを発行する必要はありません。 | リモートサーバー向けの OAuth ベースの認可。 |
| ディスカバリー | ページを開いた時点で見つかります。訪問前に探すものはありません。 | 既知のエンドポイントへの tools/list と、公開レジストリ。 |
| 有効期間 | ページを開いている間だけ。 | 常時稼働。ブラウザーは不要です。 |
| ユーザー | エージェントと同じページにいます。 | いなくても構いません。ヘッドレスで動作します。 |
| 対象範囲 | ツールのみ。入力・出力スキーマ付き。 | ツール、リソース、プロンプト。加えて elicitation と拡張機能。 |
| ツールのヒント | readOnlyHint、consequentialHint、untrustedContentHint。デフォルトで同一オリジン。 | readOnlyHint、destructiveHint、idempotentHint、openWorldHint。 |
| ステータス | W3C Community Group のドラフト。ChatGPT デスクトップと Codex が呼び出せます。Chrome はオリジントライアル。 | Linux Foundation のプロジェクト。公開サーバーは 10,000 以上。 |
両方を使う
MCP は、あなたのサイトを開かないエージェントのためのもの。WebMCP は、ユーザーのそばで、そのタブの中で働くエージェントのためのものです。1 つのバックエンドで両方を動かせます。Shopify はすでにそうしています。
仕様トラッカーから
webmcpxが対応済みのspecへの要望
FAQ
WebMCP のよくある質問
WebMCP とは?
W3C の Web Machine Learning Community Group で策定中のブラウザ API です。ページが
document.modelContext.registerTool()でツールを登録し、AI エージェントはスクリーンショットやページの HTML を読む代わりに、そのツールを呼び出します。ツールはユーザー自身のタブで動作します。Claude Code や Codex から WebMCP を使うには?
claude mcp add webmcpx -- npx -y webmcpx mcpを実行します(Codex ならcodex mcp add webmcpx -- npx -y webmcpx mcp)。以後エージェントは自前の Chromium でページを開き、どのサイトでも各ページの WebMCP ツールと標準ツールを使えます。サイトをエージェント対応にするには?
webmcpx の script タグを追加するだけで、すべてのページに標準ツール(検索、読み取り、ページのコンテキスト)が入ります。ほかのコードは不要です。そのうえで、検索やカートへの追加といった独自のアクションを
tool()で登録しましょう。確認は、ここでサイトをスキャンするだけです。Firefox や Safari でも動きますか?
はい。ブラウザ自体に WebMCP がない場合は、webmcpx が HTTPS ページで W3C の WebMCP ポリフィルを読み込みます。Chrome、Firefox、Safari のどれでも同じツールが見えます。
WebMCP は W3C 標準?
まだです。W3C の Web Machine Learning Community Group のドラフト(2026 年 11 月 2 日)です。Chrome と Edge はオリジントライアルで提供し、Mozilla は中立、WebKit は異議を唱えています。webmcpx はドラフトに追従し、W3C のポリフィルを読み込むので、ツールは今すぐ動き、仕様の変更にもついていきます。
エージェントにサイトのツールを呼ばせても安全?
ツールはユーザー自身のタブで、ユーザー自身の権限のもとで動き、ページがもともとできないことは何もできません。webmcpx の標準ツールはページに表示されている内容を読むだけで、不可視文字は除去されます。何かを変更する独自ツールに
consequentialHintを付ければ、エージェントは先にユーザーに確認できます。ツールの説明に隠された指示は、リンターで検出しましょう。WebMCP と MCP は同じもの?
いいえ。WebMCP は MCP のツールモデルを借りていますが、MCP プロトコルではなくブラウザ API です。ツールはページの中にあり、ユーザーのタブで動作します。両者は補い合う関係で、webmcpx の MCP サーバーがその 2 つをつなぎます。