**WebMCP提案書**

2026/02/17 2:08

**WebMCP提案書**

RSS: https://news.ycombinator.com/rss

要約

日本語訳:

WebMCP は、ウェブページが「ツール」―自然言語で説明された関数、JSON スキーマ、および実行コールバックを備えたもの ― を公開できる新しい JavaScript API です。これにより、エージェントやブラウザアシスタント、支援技術がブラウザ内で直接それらを呼び出すことが可能になります。
API は Model Context Protocol (MCP) を基盤としています。読み取り専用の

modelContext
プロパティが Navigator インターフェースに追加されます (
partial interface Navigator { readonly attribute ModelContext modelContext; }
)。

ModelContext メソッド:

  • provideContext(options)
    – ツールのリストを登録し、既存のものはすべてクリアします。
  • clearContext()
    – 登録済みのすべてのツールを解除します。
  • registerTool(tool)
    – 単一のツールを追加します(名前が既に存在する場合や入力スキーマが無効な場合は例外を投げます)。
  • unregisterTool(name)
    – 指定されたツールを削除します。

ModelContextTool には次の要素が必須です:

  • name
    (一意識別子)
  • description
    (その機能に関する自然言語での説明)
  • inputSchema
    (期待される入力パラメータの JSON スキーマ)
  • execute(object input, ModelContextClient client)
    – 非同期である可能性があり、
    client.requestUserInteraction(callback)
    を介してユーザーへのインタラクションを要求できるコールバック。

オプションの

annotations.readOnlyHint
は、そのツールが読み取り専用かどうかを示します。

この API は、Walderman, Lee, Nolan, Bokan, Sagar, Van Opstal, Rajasankar らによる先行研究に基づき、Nahas, McGhee、および Web Machine Learning Community Group のメンバーからのフィードバックを受けて洗練されました。

目的: 開発者が協働ワークフローを作成できるようにし、ユーザーと AI エージェントがコンテキストを共有してブラウザ内で直接ウェブ機能を制御できるようにすること。 これにより、別途サーバー側のコンポーネントを必要とせずに実現します。

本文

1. はじめに
WebMCP API は、ウェブ開発者が自らのウェブアプリケーション機能を「ツール」として公開できる新しい JavaScript インターフェースです。ツールとは、自然言語で説明された JavaScript 関数であり、構造化されたスキーマを備えているため、エージェントやブラウザのエージェント、支援技術から呼び出すことができます。WebMCP を利用するウェブページは、クライアント側スクリプトにツールを実装した「Model Context Protocol (MCP) サーバ」と考えることができ、バックエンドではなくフロントエンドで機能を提供します。WebMCP により、ユーザーとエージェントが同一のウェブインターフェース内で協働作業を行い、既存のアプリケーションロジックを活用しつつ共有コンテキストとユーザーコントロールを維持できるワークフローが実現します。

2. 用語集

  • Agent(エージェント) – ユーザーの目標を理解し、ユーザーに代わって行動して達成する自律的なアシスタント。現在では、大規模言語モデル(LLM)ベースの AI プラットフォームが主流で、テキストチャットインターフェース経由でユーザーと対話します。
  • Browser’s agent(ブラウザエージェント) – ブラウザ自体に組み込まれるか、拡張機能やプラグインを通じて提供されるエージェント。
  • AI platform(AI プラットフォーム) – OpenAI の ChatGPT、Anthropic の Claude、Google の Gemini など、エージェンシックアシスタントを提供するサービスプロバイダー。

3. セキュリティとプライバシーに関する考慮点
(本文は省略)

4. アクセスビリティに関する考慮点
(本文は省略)

5. API

5.1 Navigator インターフェースへの拡張

partial interface Navigator {
  [SecureContext, SameObject] readonly attribute ModelContext modelContext;
};

5.2 ModelContext インターフェース

ModelContext
は、ウェブアプリケーションがエージェントに呼び出されるツールを登録・管理するためのメソッドを提供します。

[Exposed=Window, SecureContext]
interface ModelContext {
  undefined provideContext(optional ModelContextOptions options = {});
  undefined clearContext();
  undefined registerTool(ModelContextTool tool);
  undefined unregisterTool(DOMString name);
};

使用例

navigator.modelContext.provideContext(options);   // ブラウザにツール(コンテキスト)を登録する。
navigator.modelContext.clearContext();             // ブラウザから全てのツール(コンテキスト)を解除する。
navigator.modelContext.registerTool(tool);         // 既存セットをクリアせずに単一ツールを追加する。
navigator.modelContext.unregisterTool(name);       // 指定した名前のツールを登録済みセットから削除する。

メソッド詳細

  • provideContext(options)
    TODO: 詳細を記述してください。

  • clearContext()
    TODO: 詳細を記述してください。

  • registerTool(tool)
    TODO: 詳細を記述してください。

  • unregisterTool(name)
    TODO: 詳細を記述してください。

5.2.1 ModelContextOptions 辞書

dictionary ModelContextOptions {
  sequence<ModelContextTool> tools = [];
};

options["tools"]
は、ブラウザに登録するツールのリストです。リスト内の各ツール名は一意である必要があります。

5.2.2 ModelContextTool 辞書

エージェントが呼び出すことのできるツールを記述します。

dictionary ModelContextTool {
  required DOMString name;
  required DOMString description;
  object inputSchema;
  required ToolExecuteCallback execute;
  ToolAnnotations annotations;
};
  • name – ツールの一意識別子。
  • description – ツール機能を自然言語で説明した文字列。
  • inputSchema – ツールに期待される入力パラメータを記述する JSON Schema オブジェクト。
  • execute – エージェントがツールを呼び出す際に実行されるコールバック。
    input
    ModelContextClient
    を受け取り、非同期で Promise を返すことも可能です。
  • annotations – ツールの振る舞いに関する任意のメタデータ。

ToolAnnotations 辞書

dictionary ToolAnnotations {
  boolean readOnlyHint;
};

annotations["readOnlyHint"]
が true の場合、ツールは状態を変更せず読み取りのみであることを示します。このヒントはエージェントが安全に呼び出すタイミングを判断する際に役立ちます。

5.2.3 ModelContextClient インターフェース

サイト側が提供するツールを実行しているエージェントを表します。

[Exposed=Window, SecureContext]
interface ModelContextClient {
  Promise<any> requestUserInteraction(UserInteractionCallback callback);
};

callback UserInteractionCallback = Promise<any>();
  • requestUserInteraction(callback) – ツール実行中にユーザー入力を非同期で要求します。コールバックは対話(例:確認ダイアログ)を実装し、Promise が結果で解決されます。

メソッド詳細

client.requestUserInteraction(callback)

TODO: 詳細を記述してください。

6. 謝辞
以下の方々に感謝します:

  • Brandon Walderman, Leo Lee, Andrew Nolan, David Bokan, Khushal Sagar, Hannah Van Opstal, Sushanth Rajasankar – 初期説明書、提案、および議論を通じて本仕様の基盤を確立した方々。
  • Alex Nahas と Jason McGhee – 早期実装経験を共有してくださった方々。
  • Web Machine Learning Community Group の参加者 – フィードバックと提案をいただいた皆様。

同じ日のほかのニュース

一覧に戻る →

2026/02/17 3:41

14歳のマイルズ・ウーは、重量の万倍を支えられる折り紙パターンを折りました。

## Japanese Translation: --- ### Summary 14歳のミレス・ウーは、ニューヨーク市にあるハンター・カレッジ高校(Hunter College High School)の9年生であり、彼がミウラ折り紙パターンについて行った研究で2025年 Thermo Fisher Scientific Junior Innovators Challenge の賞金25,000ドルのトップ賞を受賞しました。ウーは、コピー用紙、薄い厚手紙(light cardstock)、重い厚手紙(heavy cardstock)の3種類の紙を使用し、家族のリビングルームに設置した臨時実験室で **54 の異なるバリエーション**(108 回の試行)をテストしました。各折り紙は 64 平方インチで、ガードレールが 5 インチ間隔で配置されていました。初期重量推定は約50ポンドでしたが、最も強いパターンは **200 ポンド**まで耐え、正確な測定には 50 ポンドのエクササイズウエイトを必要としました。この結果、デザインは自身の重さの **10,000 倍以上** を支えることができること(ニューヨーク市のタクシーで4,000頭以上のゾウを運ぶに相当)を示しています。 この研究は、ハリケーンや山火事などの自然災害時に堅固で費用対効果が高く、簡単に展開できる **配備可能な緊急シェルター** を開発することを目的としています。ウーは、1枚または複数枚のミウラ折り紙シート(長方形/テント状構造)でアーチ型シェルターをプロトタイプ化し、横方向圧縮や多方向力に対する耐性を検証する計画です。 この業績はサイエンス協会の社長マヤ・アジャメラ(Maya Ajmera)によって注目されました。彼女はウーが生涯の折り紙趣味を厳密な構造工学へと変革したこと、創造性、リーダーシップ、チームワークを称賛しました。また、プリンストン大学のエンジニアグラウィオ・H・パウリーノ(Glaucio H. Paulino)は、設計をスケールアップするには非線形強度スケーリング、ジョイント設計、不完全性、ボッキング、多方向荷重抵抗の課題に対処する必要があると指摘しました。 ミウラ折り紙は日本の天体物理学者・宮浦耶(Koryo Miura)によって発明され、宇宙機関(例:日本のスペースフライヤー・ユニットや宇宙船のソーラーパネル)で使用されています。最近では、望遠鏡や衛星に適用できるブルームパターンも開発されています。ウーは6年前から紙折りを探求し、1960年代以降に拡張された折り紙の工学・医療・数学・建築への応用を知ったことで趣味から STEM 研究へとシフトしました。 Thermo Fisher Scientific Junior Innovators Challenge は1999年からサイエンス協会が主催する中学生向けの主要な全国STEM競技です。

2026/02/17 6:15

研究:自己生成型エージェントスキルは役に立たない (Note: This translation preserves the original meaning and maintains a natural, polite tone in Japanese.)

## Japanese Translation: 現在の要約は主要な発見とほぼすべての定量的詳細を捉えていますが、キュレーションされたスキルで影響を受けたタスク数を正確に追加し、著者数を修正することでさらに簡潔にできます。以下は若干改訂したバージョンです: > **要約:** > SkillsBench は 11 ドメインにわたる 86 タスクで大規模言語モデル(LLM)を評価し、「スキル」(事前定義された手順のステップ)がパフォーマンスに与える影響を測定するベンチマークです。キュレーションされたスキルが追加されると、平均合格率は「スキルなし」時より 16.2 pp 上昇します。効果は大きく異なり、ソフトウェアエンジニアリングでは +4.5 pp、ヘルスケアでは +51.9 pp に達します。実際に 84 タスクのうち 16 件がキュレーションされたスキルでマイナスの差分を示し、自身生成したスキルは全体として有益ではなく、モデルが消費する手順知識を信頼して作成できないことを示しています。わずか 2〜3 のスキルモジュールだけで完全なドキュメントよりも優れた性能を発揮し、これらのスキルを備えた小型モデルはそれらを持たない大型モデルと同等に競合できます。このベンチマークは 7,308 の対話軌跡で 7 つのエージェント–モデル構成をテストします。著者は複数機関からなる 38 人の研究者チームで、2026 年 2 月 13 日に公開され(ファイルサイズ 1,366 KB)、今後は最も効果的なスキルを選択してより効率的かつドメイン特化型 AI エージェントを構築する研究が進められることが示唆されています。

2026/02/17 5:34

Suicide Linux(2009)

## Japanese Translation: **改善された要約** この記事は、入力ミスしたコマンドを自動的に `rm -rf /` に書き換えてシステムを削除する「Suicide Linux」と呼ばれる皮肉な Linux ディストリビューションについて説明しています。Suicide Linux は、OS を使い続けられる時間を測るゲームや実験として提示されており、すべてのデータが失われるまでどれだけ長く使用できるかを試すものです。記事はその開発経緯を追っています:2011‑12‑26 の Debian パッケージとデモ動画、2015 年に自動修正機能がオプションであり標準の Linux 動作ではないことを明確化した説明、2017 年の Docker イメージ(`tiagoad/suicide-linux`)にソースコードが含まれていること、そして 2020 年に著者が自らそのパッケージを作成していないと認めたことです。記事は将来の改良点として、冗長な警告メッセージやランダムな単一ファイル削除などを追加し、実験を教育用途に安全にする提案も示しています。総じて、Suicide Linux は主に好奇心と学習ツールであり、システムの堅牢性をテストしたい開発者や「タイプミスアラート」スクリプトを作成したい人には有用ですが、一般的な Linux ディストリビューションに影響を与える可能性は低いと結論付けられています。

**WebMCP提案書** | そっか~ニュース