チュートリアル
Google Agent Plugins 2026 とは?Skills、MCP Server、Plugin、JSON Schema が次の Agent ツール生態をどう組むか
Skill は書いた。MCP も通った。次の Coding Agent ではまた別の包みが要る。2026 年に足りないのは道具ではない。一緒に旅できる箱だ。
2026 年 8 月 6 日、Google は Developers Blog で Agent Plugins の TSC に入り、自社製品へこの形式を載せると書いた。9 月 10 日、Google Cloud Developer Plugin が届く。認証、プロジェクト、gcloud のガードレール、Developer Knowledge MCP を一つのインストール可能な束にし、Antigravity、Claude Code、Codex、Cursor に渡す。「Google がまた道具プロトコルを発明した」と聞きがちだ。違う。Agent Skills はすでに Skill の書き方を決め、MCP はすでにツールの呼び方を決めている。欠けていたのは両方を一つのディレクトリに入れ、クライアントを替えても分岐しない箱だ。箱の契約は閉集合の JSON 二つ、plugin.json と mcp.json。プロトコルは MCP とは、入参は MCP と JSON Schema。本稿は四層の組み方だけだ。Plugin、Skills、MCP Server、JSON Schema。規範は Agent Plugins 1.0.0。
MCP 入門ではない:Plugin は箱だ
層を先に固定する。Skill はモデルが読む説明だ。いつ使うか、どう進むか、横にどのスクリプトと参考があるか。MCP Server はランタイムの手だ。tools/list が道具を出し、tools/call が実行し、引数は JSON。Plugin はどちらも再発明しない。根に plugin.json が必須。Skill は skills/ の直下の子だけから見つける。MCP は根の mcp.json だけ読む。v1 が認めるコンポーネントはこれだけだ。コマンド、子 Agent、hooks は com.example.client/ のような逆ドメインへ。他クライアントは無視してよい。
Google 自身も書く。すべての Skill を Plugin にするな。MCP 一台、クライアント一つなら、原生の設定の方が単純だ。単体の SKILL.md に箱は要らない。Plugin が値を持つのは一緒に動かなければならない部品が複数あるときだ。請求を引く MCP、結果を週報にする Skill、第三のファイルに書いてはいけない発見契約。Cursor、Claude Code、Antigravity を替えても、二種類のディレクトリと二種類の Manifest 方言を保守してはならない。
仕様は意図してインストール、配布、権限、サンドボックス、信頼を書かない。それは IDE、CLI、企業基盤それぞれの義務だ。可搬フィールドに焼くと初日に分岐する。Agent Plugins は包装形式だけだ。発見は別層(Google が触れる Agentic Resource Discovery と AI Catalog)でもよい。実行は今まで通り MCP と Agent Skills。一層を採っても次を買う必要はない。一文で覚える。箱は可搬、インストール体験は可搬でなくてよい。
| 層 | 何か | 契約はどこ |
|---|---|---|
| Plugin | 一緒に行く部品を一つの配布ディレクトリにまとめる | plugin.json(閉集合フィールド) |
| Skill | 再利用できる手順、スクリプト、参考資料 | skills/<name>/SKILL.md |
| MCP Server | 道具と資源のランタイムと伝送 | 根の mcp.json と MCP プロトコル |
| JSON Schema | Manifest、MCP 設定、ツール入参の形 | 公式 plugin.schema.json / mcp.schema.json と inputSchema |
plugin.json:閉集合 Manifest と JSON Schema
クライアントは部品を探す前に根の plugin.json を読む。JSON オブジェクトで、Schema は閉集合。$schema、name、version、description、author、homepage、repository、license、keywords、extensions だけ。余分なトップレベルは報告して無視し、それで拒否してはならない。致命なのは必須欠け、型違い、不正な name。そのときは包全体を載せない。1.0.0 の $schema は https://agent-plugins.org/schemas/1.0.0/plugin.schema.json。クライアントはこれでローカル検証を選び、読み込み中に Schema をネットから取ってはならない。
name は自由な表示名ではない。1–64 文字、小文字・数字・ハイフン・ドットのみ。先頭と末尾は英数字。-- と .. は禁止。My-Plugin も -start も不正。版は SemVer 推奨だが、「SemVer に見えない」だけで拒否してはならない。author は name / email / url だけ。クライアント私有は extensions.com.example.client。hooks 用の第五のトップキーを作るな。
Manifest ができないことを見る。部品の場所を移せない。Skill も MCP もインラインにできない。発見パスも優先順位もない。skills/ があれば載せる。なければ飛ばす。それは誤りではない。下は name だけの例より少し厚い、それでも合法な Manifest。まず parse できることを確認し、公式 Schema で欄を見る。
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "reports-plugin",
"version": "1.0.0",
"description": "Query invoices and write the weekly finance summary",
"license": "Apache-2.0",
"keywords": ["finance", "reports", "mcp"],
"homepage": "https://example.com/plugins/reports",
"repository": "https://github.com/example/reports-plugin"
}
Skills:固定ディレクトリの SKILL.md
Skill の形式は Agent Plugins が書き直さない。Agent Skills が frontmatter、本文、scripts/、references/、assets/ の正本だ。Plugins は発見だけを決める。固定位置は skills/。直下の子ディレクトリに、名前がちょうど SKILL.md の通常ファイルがあれば、それが一つの Skill。より深く再帰してはならない。skills/deploy/extra/SKILL.md に隠した二件目は見えない。
一件の Skill が不正なら、それを飛ばし、他の Skill と他のコンポーネントを載せ続け、どれが壊れたかを報告すべきだ。「MCP 一台が落ちたら包全体が死ぬ」の逆だ。Google の言い方は、独立した部品は独立して失敗する。週報 Skill が壊れても請求 MCP は繋がるべきで、逆も同じ。Coding Agent では重要だ。文書 Skill の frontmatter の誤字で gcloud のガードレールを失ってはならない。
Skill が持つのは文脈であり、伝送ではない。「先にプロジェクトを見、次に billing、鍵を git に入れるな」とモデルに教える。雲の資源を変えるのは、今まで通り MCP ツールかローカルスクリプトだ。手引全書をシステムプロンプトに貼ると窓が尽きる。Skill は必要なとき載る。Cloud Developer Plugin の文が繰り返す点だ。Skill を一つずつ入れると乱れる。関連する Skill と MCP は束ねて出せ。プラグインはその紐であり、第二の Tool Calling ではない。
mcp.json:Server の見つけ方と JSON Schema の層
MCP の線プロトコルは MCP のままだ。初期化、tools/list、tools/call、無状態 HTTP。Agent Plugins が答えるのはどこへ繋ぐかだけ。設定は根の mcp.json。plugin.json に埋め込んではならず、別のコアパスも使ってはならない。トップは $schema と mcpServers だけ。1.0.0 の $schema は https://agent-plugins.org/schemas/1.0.0/mcp.schema.json で、Manifest が宣言した版と一致しなければならない。食い違えばそのプラグインの MCP だけ止め、Skill は載せる。
各 server に明示の type が要る。オブジェクトの形から伝送を推測してはならない。stdio は command(一つの実行ファイル token、shell 文字列ではない)と任意の args / env / cwd。同梱バイナリは ./ で始まる相対パス。streamable-http と任意の旧 sse は絶対 URL。ループバック以外は HTTPS。仕様ははっきりしている。headers に秘密を入れるな。OAuth と資格情報はクライアントの仕事であり、可搬フィールドではない。不正な項目、未対応の伝送、握手失敗は、その server だけ飛ばす。
JSON Schema は三度出る。一つのファイルに揉むな。第一は包装契約。plugin.schema.json と mcp.schema.json。箱を発見できるか。第二はツール入参。MCP inputSchema。モデルの arguments が形に合うか。第三は業務 API の OpenAPI や構造化出力。第一が壊れるとクライアントは箱に入れない。第二が壊れると tools/call が実行時に拒む。検証の鎖は上の MCP Schema 文。下はローカル stdio と遠隔 Streamable HTTP を持つ mcp.json。
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
"mcpServers": {
"invoice-tools": {
"type": "stdio",
"command": "./bin/invoice-mcp",
"args": ["--data", "${PLUGIN_DATA}/invoices"],
"cwd": "${PLUGIN_ROOT}"
},
"docs": {
"type": "streamable-http",
"url": "https://docs.example.com/mcp"
}
}
}
{
"name": "searchInvoices",
"description": "Query invoices by date range and status",
"inputSchema": {
"type": "object",
"properties": {
"startDate": { "type": "string", "format": "date" },
"endDate": { "type": "string", "format": "date" },
"status": { "type": "string", "enum": ["draft", "sent", "paid"] }
},
"required": ["startDate", "endDate"]
}
}
Google が 2026 年に出したもの:Developer Plugin、Agents CLI、Data Agent Kit
二つの告知を重ねる。8 月:TSC に入る(Amazon、Cursor、Microsoft、OpenAI、Vercel はすでに Core Maintainer)。自社製品でこの形式を載せ始める。9 月:google/skills に旗艦 google-cloud-developer を出す。これは「もう一つの gcloud 包み」ではない。基礎層のプラグインだ。認証、プロジェクト、gcloud のガードレール、そして Developer Knowledge MCP。一年前のブログではなく、今の公式文書に接地させる。インストールは各クライアントの marketplace / CLI。鍵は環境変数であり、mcp.json の headers ではない。秘密を可搬契約から外す仕様と一致する。
同じ生態に二本ある。Agents CLI は ADK の足場、評価、配備、可観測、公開を Skill に束ね、Antigravity、Gemini CLI、Claude Code、Cursor を「Google Cloud 上で Agent を作る」専門家にする。Data Agent Kit は BigQuery、Spanner、Cloud SQL などデータ面の Skill と MCP を可搬プラグインにする。どちらも以前から Skill を出せた。今はGoogle 私有ではないディレクトリを使う。あなたの請求プラグインと Google の雲プラグインは、同じ Schema で検証できる。
A2A と混ぜるな。Plugin が答えるのは「この Agent がどう一組の Skill と道具を得るか」。A2A Agent Card が答えるのは「別の Agent をどう見つけ、どう委任するか」。箱の中の MCP は今まで通り下向きの手。横の同僚は Agent Card と Task。層は A2A vs MCP。遠隔 Agent ごと mcp.json の一つの tool に詰めると、多ターンの確認と非同期コールバックが関数呼び出しの形を破る。
| Google が出しているもの | 箱の中身 | 何に使うか |
|---|---|---|
google-cloud-developer | 雲の基礎 Skill + Developer Knowledge MCP | 互換クライアントに GCP 認証と文書を歩かせる |
| Agents CLI プラグイン | ADK ライフサイクル Skill(足場 / 評価 / 配備) | Coding Agent に Cloud 上の Agent 工学をさせる |
| Data Agent Kit | BigQuery、Spanner、Cloud SQL などの Skill と MCP | データパイプラインと照会を一つの IDE に縛らない |
JSONVue で二つの契約を見る
公開前に四つの治具を残す。合法な plugin.json、トップレベルを一つ足した Manifest、合法な mcp.json、command が ../bin/escape の不正項。第一は公式 Schema を通す。第二は報告して無視し、プラグインは載る。CI がそれを致命にするなら、クライアントより厳しい。自分で知れ。第三は type とパス。第四は必ず失敗する。プラグイン根を逃げる相対パスは硬い誤りだ。
もう一つ残す。ツールの inputSchema と、実際の tools/call arguments。包装契約が緑でも、モデルが日付を正しく埋めたことにはならない。二つの Schema を「汎用検証」一つのファイルに入れるな。一つは発見、一つは呼び出し。Developer Knowledge MCP の API Key はクライアント実行時の話。リポジトリで見るのは秘密のない mcp.json。
ブラウザで足りる。JSON 整形で二つの Manifest が parse できるか見、JSON Schema 検証で $schema、name、mcpServers を見、JSON Diffでリポジトリの mcp.json とクライアント原生の書き出しを比べる。データは本機を出ない。続きはMCP と JSON Schema、MCP とは、A2A と MCP の分担。
よくある質問 FAQ
Agent Plugins は Google の独自形式か?
違う。1.0.0 は開かれた TSC が出す。Core Maintainer に Amazon、Cursor、Microsoft、OpenAI、Vercel がおり、Google は 2026 年 8 月に入った。Google Cloud Developer Plugin はその規範に従う一つの包であり、規範そのものではない。google/skills に置かなくても Agent Plugin と呼べる。
Skill が一つだけなら Plugin にするべきか?
たいてい、しない。Google の原文どおり、単体 Skill、単体 MCP、単体クライアントは原生インストールの方が単純だ。一緒に配らねばならないものが二つ以上あるとき——数を引く MCP と週報を書く Skill——に箱へ入れる。早すぎる装箱は保守する Manifest を増やすだけだ。
plugin.json と Gemini CLI の gemini-extension.json は同じか?
違う。Gemini CLI は今も自分の拡張 Manifest を持ち、MCP を gemini-extension.json に書いてよい。Agent Plugins は MCP を根の mcp.json へ追い、Manifest は閉集合でコンポーネントをインラインにできない。クライアントが可搬形式を原生設定へ写す。JSONVue で二ファイルを Diff する方が、欄の別名を当てるより drift しにくい。
plugin.json の検証は inputSchema の検証の代わりになるか?
ならない。Manifest Schema は「この包を発見できるか」だけ答える。ツール Schema は「この hop の arguments が合法か」を答える。前者は通っても startDate は欠けうる。契約は二つ、検証も二度。「とりあえず parse」の関数を共有するな。
まとめと次の一歩
2026 年の Google Agent Plugins は一文に畳める。すでに可搬な Skills と MCP Server を固定ディレクトリに入れる、開かれた包装形式。Google はそれで Cloud Developer Plugin、Agents CLI、Data Agent Kit を出す。第四の道具プロトコルを発明するためではない。
出す順はこうだ。まず plugin.json が parse でき、name が合法で、$schema が 1.0.0 に釘付け。次に skills/ と mcp.json が要るか決める。包装契約は公式 Schema、ツール入参は別 Schema。治具は JSONVue に残す。プロトコルは MCP 文、Agent 横断の委任は A2A 文。