cloudflare-tools について
コーディングエージェント向けに、ゾーン、DNS、分析、Workers、Pages、ストレージ、トンネルを扱う Cloudflare ツールです。複数のエージェント環境に対応し、ツールセット選択や書き込み操作の制御を備えています。
主な機能
- 01ゾーン設定とキャッシュの管理
- 02DNS レコードの読み取りと変更
- 03トラフィックとセキュリティ分析の確認
- 04ルールとアカウント情報の操作
- 05複数のエージェントプラグイン環境に対応
- 06ツールセット選択と書き込み制御
活用シーン
- 01Cloudflare のゾーンと DNS 設定を確認
- 02サイトのトラフィックやセキュリティイベントを分析
- 03エージェント経由でゾーン設定やルールを変更
MCP 対応
MCP サーバーを通じてコーディングエージェントに Cloudflare ツールを提供します。Claude Code や Codex などのプラグイン環境のほか、他の MCP ホストにも設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
18掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | audit:返す監査ログエントリの最大数(1~100、デフォルト:25)。 |
| since | string | いいえ | audit:時間範囲の開始時刻。ISO 8601 の日付または日時で指定します(デフォルト:終了時刻の 24 時間前)。 |
| until | string | いいえ | audit:時間枠の終了日時。ISO 8601 の日付または日時を指定します(デフォルト:now)。 |
| cursor | string | いいえ | audit:次のページの項目を取得するための不透明なページネーションカーソル。 |
| method | enum | はい | 実行する操作:"list" はローカルで設定済みの認証情報を検出します。"view" はトークンの有効性を確認し、アカウントの詳細を読み取ります。"audit" はアカウントの監査ログを照会します。list | view | audit |
| account | string | いいえ | 使用する認証情報ペアのラベル。ラベルなしのものには "default" を指定します。省略した場合、ラベルなしのペアを使用します。それ以外の場合は唯一のラベルを使用します。 |
| direction | enum | いいえ | audit:タイムスタンプによる並べ替え方向("asc" または "desc"、デフォルトは "desc")。asc | desc |
| zone_name | array | いいえ | audit:ゾーン名で絞り込みます。 |
| actor_type | array | いいえ | audit:アクタータイプで絞り込みます。 |
| action_type | array | いいえ | audit:アクションタイプで絞り込みます。 |
| actor_email | array | いいえ | audit:アクターのメールアドレスで絞り込みます。 |
| action_result | array | いいえ | audit:アクション結果で絞り込みます。 |
| resource_type | array | いいえ | audit:リソースタイプで絞り込みます。 |
詳細
cloudflare-tools
コーディングエージェント向けのCloudflareツール:ゾーン、DNS、分析、Workers、Pages、ストレージ、トンネル。
| ハーネス | 提供方法 | 固定方法 |
|---|---|---|
| OpenCode V2 | ネイティブプラグイン(npm パッケージ、スキル付き) | パッケージ内のバージョン |
| OpenCode V1 | ネイティブプラグイン(npm パッケージ、スキルなし) | パッケージ内のバージョン |
| Claude Code | プラグイン:MCP サーバーとスキル | ref としてリリースタグ |
| Codex | プラグイン:MCP サーバーとスキル | ref としてリリースタグ |
| Grok Build | プラグイン:MCP サーバーとスキル | @ref としてリリースタグ |
| Antigravity | プラグイン:MCP サーバーとスキル | リリースタグのツリー URL |
| Hermes Agent | ネイティブプラグイン(Python、コマンドラインを呼び出す) | SHA としてリリースコミット |
| その他の MCP ホスト | npm の MCP サーバー | パッケージ内のバージョン |
ツールにはNode.js 24 以降が必要です。
docs/conventions.mdでは、ツールの命名方法と動作について説明しています。
インストール
デフォルトブランチではなく、必ずリリースからインストールしてください。リリースとは、ビルド済みの dist/ を含むコミットを指すタグであり、デフォルトブランチには含まれていません。以下のコマンドで、<version> はリリースのバージョン(1.2.3)、<sha> はタグが示すコミットです:
gh api repos/craft-agent/cloudflare-tools/commits/v<version> --jq .sha
OpenCode
OpenCode V2 では、パッケージとそのオプションを opencode.json に指定します:
{
"plugins": [{ "package": "@craftsamo/cloudflare-tools@<version>", "options": { "read_only": false } }],
"permissions": [{ "action": "cloudflare_*", "resource": "*", "effect": "ask" }]
}
OpenCode V1 では、パッケージを文字列として指定するか、オプションと組み合わせて指定します:
{
"plugin": [["@craftsamo/cloudflare-tools@<version>", { "read_only": false }]],
"permission": { "cloudflare_*": "ask" }
}
OpenCode では、ルール名のないアクションはすべて許可されるため、ask を指定するルールがない限り、プラグインからのリクエストは通知なしで許可されます。読み取りツールは確認を求めないため、cloudflare_* グロブは安全です。
オプションは設定です。デフォルトでオフになっているツールセットは、維持するツールセットとともに toolsets に列挙すると有効になります。例:"options": { "toolsets": ["account", "zones", "dns", "workers", "pages", "email"] }。
V1 はスキルを登録しません。パッケージを展開し、その skills/* フォルダーを ~/.config/opencode/skills/ にコピーしてください:
npm pack @craftsamo/cloudflare-tools@<version>
tar -xzf craftsamo-cloudflare-tools-<version>.tgz
mkdir -p ~/.config/opencode/skills
cp -r package/skills/* ~/.config/opencode/skills/
rm -rf package craftsamo-cloudflare-tools-<version>.tgz
Claude Code
claude plugin marketplace add craft-agent/cloudflare-tools#v<version>
claude plugin install cloudflare-tools@craft-agent
Codex
codex plugin marketplace add craft-agent/cloudflare-tools --ref v<version>
codex plugin add cloudflare-tools@craft-agent
Codex はサーバー名の - を _ に変換するため、ツールは mcp__cloudflare_tools__cloudflare_* として表示されます。Codex はプラグインのインストールディレクトリで MCP サーバーを起動し、ルートを渡しません。そのため、サーバーは各呼び出しのディレクトリとして、Codex が呼び出しとともに送るサンドボックスの状態を使います。それが送られない場合は、Codex が指定する唯一のワークスペースを使います。
このプラグインは default_tools_approval_mode = "writes" を宣言します。Codex は読み取り専用と指定されていないすべてのツールの実行前に確認を求めます。ユーザーの [plugins."<plugin>".mcp_servers.<server>] 設定で、これをさらに厳しくすることはできます。そこに auto を設定すると prompt になります(読み取りも確認対象になります)。Codex は auto と writes を比較できない設定として扱うためです。
Grok Build
grok plugin install craft-agent/cloudflare-tools@v<version> --trust
Grok はセッションの作業ディレクトリで MCP サーバーを起動します。
Antigravity
デフォルトブランチにはビルド済みの dist/ がないため、デフォルトブランチではなく、リリースタグのツリーからインストールしてください。Antigravity はタグを ~/.gemini/config/plugins/cloudflare-tools にクローンします。
agy plugin install https://github.com/craft-agent/cloudflare-tools/tree/v<version>
Hermes Agent
Hermes はタグではなくコミットをインストールし、プラグインは無効の状態でインストールされます:
hermes plugins install craft-agent/cloudflare-tools --ref <sha>
hermes plugins enable cloudflare-tools
Hermes はプラグインのインストール時にスキャンします。v0.7.0 以降の判定は
caution です。トンネルツールでは、トークンの権限名が Account → Cloudflare One
Connector: cloudflared となっており、Hermes はこの語をトンネリングサービスとして評価します。
そのため、hermes plugins install はインストール前に確認を求めます。確認できない場合(ターミナルがない場合)は、
--force を追加してください。これは caution の判定のみを上書きします。
Hermes ゲートウェイがすでに実行中の場合は、プラグインを読み込むために再起動してください(hermes gateway restart)。
このプラグインは、Hermes の起動時に検出された Node を実行します。Hermes の実行中にバージョンマネージャーがそのバージョンを削除すると、呼び出し時に Node を再度探します。見つからない場合は、node が実行できるシェルから Hermes を再起動してください。
パッケージによる書き込みが、書き込みをブロックするガードなど、承認する人がいない別の Hermes プラグインに依存する場合は、そのプラグインを require_plugins に指定してください。Hermes は、そのプラグインのインポートまたは登録に失敗しても、このプラグインの読み込みを続けます。また、マニフェストの requires_plugins は参考情報として扱います。この設定を使うと、指定したプラグインが読み込まれていない間は、--yolo、approvals.mode: off、または記憶済みの回答を使っていても、すべての書き込みが承認前に拒否され、不足しているプラグイン名が示されます。読み取りは引き続き実行されます。
plugins:
entries:
cloudflare-tools:
settings:
require_plugins: [write-guard]
その他の MCP ホスト
ホストの MCP 設定にサーバーを追加してください。フラグは args に指定します:
{
"mcpServers": {
"cloudflare-tools": {
"command": "npx",
"args": ["-y", "@craftsamo/cloudflare-tools@<version>", "--read-only"]
}
}
}
ツールとスキル
以下で説明する確認は、ユーザーが操作する実行に適用されます。unattended が有効な場合、書き込みは、それを対象とする許可がある場合に限り、確認なしで実行されます。それ以外の場合は拒否されます。承認する人がいない場合の書き込みを参照してください。
各ツールセットには、エージェントにツールの使い方を伝えるスキルが付属します。スキルはフロントマターの metadata 内でツールセットを指定します
(metadata: { toolset: dns } のようにブロックとして記述します)。OpenCode V2 と Hermes は、そのツールセットのツールが少なくとも1つ設定で登録されている場合にのみスキルを登録するため、ツールセットが無効になっているプロファイルや、ツールがすべて削除されたプロファイルでは、そのスキルは表示されません。ツールセットを指定しないスキルは常に登録されます。Claude Code、
Codex、Grok Build、Antigravity はスキルフォルダー全体をインストールし、設定は MCP サーバーにのみ渡すため、設定の選択内容にかかわらず、すべてのスキルが一覧表示されます。OpenCode V1 はスキルを登録せず、コピーされたスキルもすべて一覧表示されます。
アカウント(account)
アカウントの認証情報、トークンの検証、監査ログ。
| ツール | 機能 | 分類 |
|---|---|---|
cloudflare_account_read | アカウントの詳細とトークンの状態の view、設定済みアカウントの list、または監査ログの audit の照会 | 読み取り |
スキルは cloudflare-account で、Claude Code では
cloudflare-tools:cloudflare-account、Hermes では
cloudflare-tools:account として表示されます。
ゾーン(zones)
ゾーンの検索、設定の読み取りと変更、Universal SSL、証明書、DNSSEC。
| ツール | 機能 | 分類 |
|---|---|---|
cloudflare_zone_read | ゾーンのlist、詳細のview、settingsの読み取り、Universal sslのステータス、またはdnssec | 読み取り |
cloudflare_zone_setting_edit | ゾーン設定を1~20件、順番に変更します。保護レベルを下げる変更は拒否します | 上書き |
cloudflare_zone_setting_weaken | 訪問者の保護レベルを下げる方法でゾーン設定を変更します。必ず最初に確認します | 管理 |
cloudflare_zone_cache_purge | ゾーン内の最大100件のURL、ホスト、プレフィックス、またはタグのキャッシュ済みコピーをパージします | 冪等 |
cloudflare_zone_cache_purge_all | ゾーンのキャッシュ全体をパージします。必ず最初に確認します | 管理 |
cloudflare_zone_dnssec_enable | ゾーンのDNSSECを有効にします。レジストラがDSレコードを公開するまでは影響ありません | 冪等 |
cloudflare_zone_dnssec_disable | ゾーンのDNSSECを無効にします。最初にレジストラでDSを削除する必要があります | 管理 |
スキルはcloudflare-zonesです。Claude Codeでは
cloudflare-tools:cloudflare-zones、Hermesでは
cloudflare-tools:zonesとして表示されます。
DNS(dns)
DNSレコードの一覧表示、1件の全情報の読み取り、ゾーンファイルのエクスポート、レコードの追加、変更、削除を行います。
| ツール | 機能 | 分類 |
|---|---|---|
cloudflare_dns_read | レコードのlist、1件の全情報のview、またはゾーンファイルのBIND形式でのexport | 読み取り |
cloudflare_dns_record_add | 8種類のタイプのレコードを1~20件、一括で追加します。すべて成功するか、すべて失敗します | 追加 |
cloudflare_dns_record_edit | IDを指定してレコードを1~20件、一括で変更します。レコードのタイプは変更できません | 上書き |
cloudflare_dns_record_delete | IDを指定してレコードを1~20件削除します。同じ一括処理内で置き換えも指定できます。必ず最初に確認します | 管理 |
スキルはcloudflare-dnsです。Claude Codeでは
cloudflare-tools:cloudflare-dns、Hermesでは
cloudflare-tools:dnsとして表示されます。
ルール(rules)
ルール:ゾーンのどのルールフェーズにルールがあるか、また、1つのフェーズにあるルールを順番に、ID、位置、バージョンとともに読み取ります。Single Redirect、Cache Rule、Configuration Rule、URL Rewrite Rule、Request or Response Header Transform Rule、Origin Rule、Compression Ruleを追加、変更、移動、削除できます。WAF custom rules、rate limiting rules、custom error rulesは読み取れますが、変更はできません。式、説明、パラメーターはユーザーのデータとして扱われ、データとして返されるものであり、指示として扱われることはありません。このツールセットはデフォルトでオフです。有効にするには、toolsets設定を使用してください(設定を参照)。
| ツール | 機能 | クラス |
|---|---|---|
cloudflare_rules_read | ルールがあるゾーンのphases、1つのフェーズのrulesを順番に読み取る | 読み取り |
cloudflare_rules_add | フェーズにルールを追加します。最後、または指定した位置の前、後、位置に追加できます。フェーズにすでにあるルールとの重複は拒否されます | 追加 |
cloudflare_rules_edit | 読み取ったバージョンを指定して、ルールの式、アクション、パラメーター、説明、有効/無効、位置を変更します。読み取り後に変更されたルールは拒否されます | 上書き |
cloudflare_rules_delete | フェーズのルールを削除します。必ず最初に確認を求めます | 管理 |
トークンには、読み取るフェーズについて、Zone → Dynamic URL Redirects、Cache Settings、Config Settings、Zone Transform Rules、Origin、またはResponse Compression → Readが必要です。また、そのフェーズのルールを追加、変更、削除するにはEditが必要です。読み取り専用のフェーズには、Zone → Zone WAF and Custom Errors → Readが必要です。
スキルはcloudflare-rulesです。Claude Codeでは
cloudflare-tools:cloudflare-rules、
Hermesでは
cloudflare-tools:rulesとして表示されます。
アナリティクス(analytics)
アナリティクス:直近の期間について、ゾーンの1日ごとのトラフィック(リクエスト数、帯域幅、キャッシュヒット数、脅威数、ページビュー数、ユニーク訪問者数)、リクエスト数の多いパス、クライアントの国とレスポンスステータス、セキュリティ機能の動作内容(Freeプランでは利用不可)、最新のセキュリティイベント、およびアカウントのWorkersの呼び出し回数、エラー数、CPU時間を読み取ります。このツールセットはデフォルトでオフです。有効にするには、toolsets設定を使用してください(設定を参照)。
| ツール | 機能 | クラス |
|---|---|---|
cloudflare_analytics_read | UTC日ごとのtraffic、上位のpaths、countries、statuses、security、security_events、workers | 読み取り |
トークンにはZone → Analytics → Readと、ゾーンを検索するためのZone Readが必要です。workersには代わりにAccount → Account Analytics → Readが必要です。
スキルはcloudflare-analyticsです。Claude Codeでは
cloudflare-tools:cloudflare-analytics、
Hermesでは
cloudflare-tools:analyticsとして表示されます。
Workers(workers)
Workers:一覧表示、設定とバインディングの確認、デプロイとバージョンの確認、ゾーンの Worker ルート、カスタムドメイン、cron トリガー、シークレットの名前と種類の確認、および以前に稼働していたバージョンへの Worker のロールバックができます。新しいコードのビルド、アップロード、デプロイは引き続き Wrangler で行います。ルート、カスタムドメイン、cron トリガーはここで読み取り、wrangler.toml で変更します。
| ツール | 機能 | クラス |
|---|---|---|
cloudflare_workers_read | list、view、deployments、versions、routes、domains、schedules、secrets(名前のみ) | 読み取り |
cloudflare_workers_rollback | 以前に稼働していたバージョンに Worker をロールバックします。必ず最初に確認します | 管理 |
トークンには Workers Scripts Read が必要です。routes には Workers Routes Read も必要です。また、ゾーンを検索するため、routes と zone を指定した domains には Zone Read が必要です。ロールバックには Workers Scripts Write が必要です。
スキルは cloudflare-workers です。Claude Code では
cloudflare-tools:cloudflare-workers、Hermes では
cloudflare-tools:workers として表示されます。
Pages(pages)
Pages:プロジェクトの一覧表示、ビルド設定、環境変数名とバインディング、本番およびプレビューのデプロイ(どれが現在有効かを含む)、ビルドログ、カスタムドメインの確認ができます。また、プロジェクトの本番環境を、ビルドに成功したデプロイに切り替えたり戻したりし、カスタムドメインを追加または削除できます。新しいコードのビルドとデプロイは引き続き Git と Wrangler で行います。カスタムドメインの DNS レコードは引き続き DNS ツールで扱います。
| ツール | 機能 | クラス |
|---|---|---|
cloudflare_pages_read | プロジェクトの list、1 件の view、その deployments、ビルドの logs、カスタム domains | 読み取り |
cloudflare_pages_rollback | ビルドに成功したデプロイに本番環境を切り替えます。必ず最初に確認します | 管理 |
cloudflare_pages_domain_add | DNS レコードを作成せずにプロジェクトにカスタムドメインを追加します。必ず最初に確認します | 管理 |
cloudflare_pages_domain_remove | DNS レコードを削除せずにプロジェクトからカスタムドメインを削除します。必ず最初に確認します | 管理 |
トークンには Pages Read 権限が必要です。書き込みには Pages Write が必要です。また、ドメインツールで DNS を検索するには Zone Read と DNS Read が必要です。
スキルは cloudflare-pages です。Claude Code では
cloudflare-tools:cloudflare-pages、Hermes では
cloudflare-tools:pages として表示されます。
ストレージ(storage)
ストレージ:アカウントのR2バケットと、バケット内のオブジェクトやフォルダーを名前、サイズ、日付で一覧表示し、バケットが公開されているか(r2.devドメインとカスタムドメイン)、CORSルール、オブジェクトを削除するライフサイクルルールを確認します。Workers KVの名前空間とキー名を一覧表示し、D1データベースを一覧表示して、サイズとスキーマを確認します。空のバケット、名前空間、データベースを作成し、空であることが証明されたものを削除します。オブジェクトの本文、KVの値、テーブルの行は読み取られません。D1スキーマの取得には固定のステートメントが1つ使われ、一覧表示されるのはデフォルトの管轄区域のみです。CloudflareはKVの名前空間やD1データベースを内容ごと削除するため、削除ツールは先にストアが空であることを証明します。ストアを空にする作業はユーザーが行います。このツールセットはデフォルトで無効です。有効にするには、toolsets設定を使用してください(設定を参照)。
| ツール | 機能 | 分類 |
|---|---|---|
cloudflare_storage_read | R2のbuckets、bucketの詳細とobjects、KVのnamespacesとそのkeys、D1のdatabasesとdatabaseのスキーマを読み取ります | 読み取り |
cloudflare_storage_create | 名前を指定して、空のR2バケット、KV名前空間、またはD1データベースを作成します | 追加 |
cloudflare_storage_delete | 空であることが証明された場合に限り、バケット、名前空間、またはデータベースを削除します。必ず事前に確認します | 管理 |
トークンには、読み取るストアに応じて、Account → Workers R2 Storage → Read、Workers KV Storage → Read、またはD1 → Readが必要です。作成と削除には、同じ権限のEditが必要です。
スキルはcloudflare-storageです。Claude Codeでは
cloudflare-tools:cloudflare-storage、
Hermesでは
cloudflare-tools:storageとして表示されます。
トンネル(tunnels)
トンネル:アカウントの Cloudflare トンネルを名前、ステータス、接続時刻で一覧表示し、1 つのトンネルのアクティブなコネクター、エッジ接続、コロケーション、パブリックホスト名のイングレスルーティングルールを読み取ります。トンネルの実行トークンが公開されることはなく、コネクターの内部 ID やオリジン IP アドレスが読み取られることもなく、削除済みのトンネルは表示されません。ローカル管理のトンネルでは、イングレスルールはホスト上に保存されているため、ここから読み取ることはできません。ダッシュボード管理のトンネルを経由してホスト名をローカルサービスに公開できます。このツールは必要なルールとプロキシされた CNAME を追加し、ほかの DNS レコードがあるホスト名は拒否し、必ず最初に確認します。別のツールでは、公開済みのホスト名の転送先サービスを変更でき、もう 1 つのツールではホスト名を取り下げます。ほかのルールで使用されていない場合はトンネルへの CNAME を削除し、それ以外のレコードには決して触れません。どちらも必ず最初に確認します。このツールセットはデフォルトで無効です。有効にするには、toolsets 設定を使用してください(設定を参照)。
| ツール | 機能 | クラス |
|---|---|---|
cloudflare_tunnel_read | アカウントの tunnels、および 1 つの tunnel のステータスとイングレスを読み取ります | 読み取り |
cloudflare_tunnel_route_add | トンネル経由でホスト名(および任意のパス)をローカルサービスに公開します。必ず最初に確認します | 管理 |
cloudflare_tunnel_route_edit | 現在のサービスを指定して、公開済みホスト名の転送先サービスを変更します。必ず最初に確認します | 管理 |
cloudflare_tunnel_route_remove | トンネルからホスト名を取り下げ、トンネルへの CNAME を削除します。必ず最初に確認します | 管理 |
トークンには Account → Cloudflare One Connector: cloudflared → Read が必要です。ホスト名の公開または取り下げには
Account → Cloudflare One Connector: cloudflared → Edit と Zone → DNS → Edit が必要です。ホスト名の転送先変更には
Account → Cloudflare One Connector: cloudflared → Edit と、報告するレコードを読み取るための Zone → DNS → Read が必要です。各パブリックホスト名には、
Zero Trust Access アプリケーションがそのホスト名に一致するかどうかも示されます。これには Account → Access:
Apps and Policies → Read が必要です。この権限がない場合、カバレッジは unknown になります。一致していても、
すべての訪問者がサインインするとは限りません。Bypass ポリシーによって引き続きアクセスできる場合があります。
スキルは cloudflare-tunnels です。Claude Code では
cloudflare-tools:cloudflare-tunnels、Hermes では
cloudflare-tools:tunnels として表示されます。
メールルーティング(email)
メールルーティング:ゾーンでメールルーティングが有効かどうか、そのルーティングルールとキャッチオール(各ルールは1つのアドレスに一致し、1つの検証済みアドレスへの転送、破棄、または Worker への引き渡しを行います)、およびアカウントの宛先アドレスと各アドレスの検証状況を読み取ります。1つのアドレスに対するルーティングルールの追加、変更、削除、キャッチオールの変更、宛先アドレスの追加、削除も行えます。Worker の Wrangler 設定で管理されているルールにはその旨が示され、メールルーティングが無効なゾーンではメールは一切ルーティングされません。アドレス、名前、Worker 名はユーザーのデータであり、データとして返されるものであって、指示として扱われることはありません。このツールセットはデフォルトで無効です。有効にするには、toolsets 設定を使用してください(設定を参照)。
| ツール | 内容 | 分類 |
|---|---|---|
cloudflare_email_read | ゾーンのrouting設定とキャッチオール、そのrules、アカウントのaddresses | 読み取り |
cloudflare_email_rule_add | 1つのアドレスを検証済みの宛先に転送、破棄、または Worker に引き渡すルールを追加します(存在しない宛先は Cloudflare が拒否します)。すでにルールがあるアドレスは拒否します | 追加 |
cloudflare_email_rule_edit | 現在のアクションを示したうえで、ルールのアドレス、アクション、名前、または有効かどうかを変更します。キャッチオールと Wrangler が管理するルールは拒否します | 上書き |
cloudflare_email_rule_delete | メールの転送先を示したうえでルールを削除します。キャッチオールと Wrangler が管理するルールは拒否します。必ず事前に確認を求めます | 管理 |
cloudflare_email_catchall_edit | キャッチオール(どのルールにも一致しないメール)のアクションを変更するか、有効・無効を切り替えます。現在の状態を示します。Wrangler が管理するキャッチオールは拒否します。必ず事前に確認を求めます | 管理 |
cloudflare_email_address_add | 宛先アドレスを追加します。Cloudflare は所有者に確認リンクをメールで送信し、所有者がリンクを開くまで、そのアドレスへの転送ルールは作成できません。必ず事前に確認を求めます | 管理 |
cloudflare_email_address_delete | 宛先アドレスを削除します。アカウント内のいずれかのゾーンで、そのアドレスに転送するルールまたはキャッチオールがある場合は拒否します。必ず事前に確認を求めます | 管理 |
トークンには、アドレスの参照に Zone → Email Routing Rules → Read と Account → Email Routing Addresses → Read が必要です。ルールの追加、変更、削除、およびキャッチオールの変更には Zone → Email Routing Rules → Edit が必要です。また、転送先を追加または変更するには、転送先を確認するために Account → Email Routing Addresses → Read が必要です。宛先アドレスの追加または削除には Account → Email Routing Addresses → Edit が必要です。さらに、宛先アドレスの削除には、アカウント内のすべてのゾーンで Zone → Email Routing Rules → Read が必要です。
スキルは cloudflare-email です。Claude Code では
cloudflare-tools:cloudflare-email、
Hermes では
cloudflare-tools:email として表示されます。
キュー(queues)
アカウントの Cloudflare キューを一覧表示し、1 つのキューの配信設定、バッチ設定と再試行設定を含むコンシューマー、およびプロデューサーを読み取ります。メッセージは読み取りません。キュー名と Worker 名はユーザーのデータであり、データとして返されるものであって、指示ではありません。このツールセットはデフォルトで無効です。有効にするには、toolsets 設定を使用してください(設定を参照)。
| ツール | 機能 | 分類 |
|---|---|---|
cloudflare_queues_read | アカウントのキューをlistし、1 つのキューの設定、コンシューマー、プロデューサーをviewします | read |
トークンには Account → Queues → Read が必要です。
スキルは cloudflare-queues で、Claude Code では
cloudflare-tools:cloudflare-queues、Hermes では
cloudflare-tools:queues として表示されます。
Hyperdrive(hyperdrive)
アカウントの Hyperdrive 構成を一覧表示し、1 つの構成のオリジンデータベース、キャッシュ、mTLS、接続上限を読み取ります。パスワードと Access クライアントシークレットは返されません。名前、ホスト、データベース名、その他のオリジンの詳細はユーザーのデータであり、データとして返されるものであって、指示ではありません。このツールセットはデフォルトで無効です。有効にするには、toolsets 設定を使用してください(設定を参照)。
| ツール | 機能 | 分類 |
|---|---|---|
cloudflare_hyperdrive_read | アカウントの構成をlistし、1 つの構成のオリジン、キャッシュ、mTLS、接続上限をviewします | read |
トークンには Account → Hyperdrive → Read が必要です。
スキルは cloudflare-hyperdrive で、Claude Code では
cloudflare-tools:cloudflare-hyperdrive、Hermes では
cloudflare-tools:hyperdrive として表示されます。
Vectorize(vectorize)
アカウントの Vectorize インデックスを一覧表示し、1 つのインデックスの次元数、距離メトリクス、ベクトル数、処理の進行状況、メタデータインデックスを読み取ります。ベクトルとそのメタデータ値は読み取りません。インデックス名と説明はユーザーのデータであり、データとして返されるものであって、指示ではありません。このツールセットはデフォルトで無効です。有効にするには、toolsets 設定を使用してください(設定を参照)。
| ツール | 機能 | 分類 |
|---|---|---|
cloudflare_vectorize_read | アカウントのインデックスをlistし、1 つのインデックスの構成、処理の進行状況、メタデータインデックスをviewします | read |
トークンには Account → Vectorize → Read が必要です。
スキルは cloudflare-vectorize で、Claude Code では
cloudflare-tools:cloudflare-vectorize、Hermes では
cloudflare-tools:vectorize として表示されます。
Turnstile(turnstile)
アカウントの Turnstile ウィジェットを一覧表示し、1 つのウィジェットのホスト名、モード、事前クリアランス Cookie レベル、リージョン、設定を読み取ります。ウィジェットのシークレットキーは返されません。ウィジェット名とホスト名はユーザーのデータとして返され、指示として扱われることはありません。このツールセットはデフォルトで無効です。有効にするには、toolsets 設定を使用してください(設定を参照)。
| ツール | 機能 | クラス |
|---|---|---|
cloudflare_turnstile_read | アカウントのウィジェットをlistで一覧表示し、1 つのウィジェットのホスト名、モード、クリアランスレベル、リージョン、設定をviewで表示します | 読み取り |
トークンには Account → Turnstile Sites → Read が必要です。
スキルはcloudflare-turnstileで、Claude Code では
cloudflare-tools:cloudflare-turnstile、Hermes では
cloudflare-tools:turnstileとして表示されます。
Access(access)
アカウント(またはゾーン)の Zero Trust Access アプリケーションを一覧表示し、1 つのアプリケーションとそのポリシーを読み取り、アカウントの再利用可能なポリシーを一覧表示します。ポリシーは、設定されている include、exclude、require ルールとともに返され、メールアドレスも含まれます。シークレットは返されません。アプリケーション名、ポリシー名、ドメイン、ルールはユーザーのデータとして返され、指示として扱われることはありません。このツールセットはデフォルトで無効です。有効にするには、toolsets 設定を使用してください(設定を参照)。
| ツール | 機能 | クラス |
|---|---|---|
cloudflare_access_read | アカウント(またはゾーン)のアプリケーションをappsで一覧表示し、1 つのアプリケーションとそのポリシーをappで読み取り、再利用可能なポリシーをpoliciesで一覧表示します | 読み取り |
トークンには Account → Access: Apps and Policies → Read が必要です。ゾーンのアプリケーションには Zone → Access: Apps and Policies → Read も必要です。
スキルはcloudflare-accessで、Claude Code では
cloudflare-tools:cloudflare-access、Hermes では
cloudflare-tools:accessとして表示されます。
Registrar(registrar)
アカウントの登録済みドメインを一覧表示し、1 つのドメインのステータス、有効期限、自動更新、移管ロック、WHOIS プライバシーモードを読み取ります。登録者の連絡先情報は返されません。ドメイン名はユーザーのデータとして返され、指示として扱われることはありません。このツールセットはデフォルトで無効です。有効にするには、toolsets 設定を使用してください(設定を参照)。
| ツール | 機能 | クラス |
|---|---|---|
cloudflare_registrar_read | 登録済みドメインをカーソルページネーションと並べ替えでlistし、1 つのドメインの登録メタデータをviewします | 読み取り |
トークンには Account → Registrar Domains → Read が必要です。
スキルはcloudflare-registrarで、Claude Code では
cloudflare-tools:cloudflare-registrar、Hermes では
cloudflare-tools:registrarとして表示されます。
Grant(grants)
デフォルトでは無効です。誰も対応できないジョブに対し、範囲を限定した書き込み権限を委任します。
| ツール | 機能 | クラス |
|---|---|---|
cloudflare_grant_create | 1 つのツールの書き込みを制限内で委任するよう人に依頼します | 管理 |
cloudflare_grant_read | Grant とその使用状況を一覧表示するか、使用ログを読み取ります | 読み取り |
cloudflare_grant_revoke | Grant を削除し、それ以降その Grant による呼び出しが実行されないようにします | 上書き |
各書き込みツールでは、対象、1 時間あたりの呼び出し回数、有効期限を Grant の対象にできます。
ツールの仕様で bounds を宣言し、measure(args, context) を指定すると、Grant で追加の制限を設けられます。詳しくは
規約を参照してください。このパッケージには、まだ bounds を宣言しているツールはありません。
ツールの追加
defineToolを使用して、src/core/<domain>/<verb>.tsに仕様を記述します。ID<prefix>_<domain>_<verb>、タイトルと説明、Zod の引数および出力スキーマ、ツールセットと書き込みクラス、execute(args, context)を指定します。 書き込みツールでは、targets(args, context)も指定します。これは呼び出しによる書き込み先であり、権限ルールで指定する対象です。設定によって、人がどのように回答しても一部の呼び出しが実行不能になるツールでは、gate(args, context)を指定します。この関数はそのような呼び出しに対してエラーをスローします。該当する呼び出しは、誰かに確認を求める前、およびexecuteの実行前に拒否されます。- 仕様の隣にテスト(
<verb>.test.ts)を作成し、エントリーポイントと同じようにinvoke経由で呼び出してテストします。プログラムを実行するツールは、PATH上にあるそのプログラムの偽物を使ってテストします。実際のサービスに接続するテストはありません。 src/tools.tsにツールを登録します。新しいツールセットはsrc/project.tsのtoolsetsに追加します(デフォルトで有効にする場合はdefaultToolsetsにも追加します)。パッケージ独自の設定はoptionsに追加し(project.pyのOPTIONSとplugin.yamlのconfig_schemaにも追加します)、設定以外にツールが読み取る変数はtoolVariablesに追加します。- ツールセットのスキル
skills/<prefix>-<toolset>/SKILL.mdを追加または更新します。フロントマターのmetadataにツールセットを指定します。 pnpm run build && pnpm run manifestsを実行して、ツールをplugin.yamlに、変数を Codex のマニフェストに登録します。その後、「ツールとスキル」の項にツールの説明を追加します。
docs/conventions.md に、各手順で従う規則が記載されています。
パッケージの各オプションは、text、boolean、number、list、path、paths のいずれか、または type と任意の境界値を持つオブジェクトとして宣言します。たとえば、src/project.ts では次のようになります。
options: {
notes_dir: "path",
note_limit: { type: "number", integer: true, min: 1, max: 50 },
}
integer: true は整数を必須とします。min と max は数値の範囲を指定するか、list または paths の値の項目数を制限します。type のみを指定したオブジェクトは、型だけを指定した場合と同じです。Hermes の OPTIONS では、宣言を 1 行にまとめ、二重引用符を使い、integer には Python の True を使用します。
OPTIONS: dict[str, str | dict[str, object]] = {"notes_dir": "path", "note_limit": {"type": "number", "integer": True, "min": 1, "max": 50}}
読み取りと書き込み
すべての読み取りツールの名前は <prefix>_<domain>_read です。読み取りは確認なしで実行できます。ユーザーが立ち会う実行では、書き込みはハーネスによって確認されます。unattended が有効な場合、書き込みには、以下で説明する対象をカバーする許可が必要です。
| ハーネス | 確認なしでの読み取り |
|---|---|
| OpenCode | 常に可能です。プラグインが確認を求めるのは書き込みの前だけです |
| Claude Code | ~/.claude/settings.json の permissions.allow にあるルール mcp__plugin_cloudflare-tools_cloudflare-tools__*_read |
| Codex | 常に可能です。Codex は、読み取りツールと同様に readOnlyHint を宣言するツールを確認なしで実行します |
| Grok Build | grok --allow 'MCPTool(cloudflare-tools__*_read)' --allow 'MCPTool(cloudflare_*_read)'(両方のルール。以下を参照) |
| Antigravity | permissions.allow にあるルール mcp(cloudflare-tools_cloudflare-tools/<tool id>)。読み取りツールごとに1つ |
| Hermes | 常に可能です。プラグインが確認を求めるのは書き込みの前だけです |
書き込みについて確認が求められる場合と、求められない場合は次のとおりです。
- OpenCode はルール名を指定しなくてもあらゆるアクションを許可するため、書き込みはルールで求めない限り確認なしで実行されます。OpenCode に示す
cloudflare_*ルールを追加してください。 - Codex はプラグインの承認モードにより、すべての書き込みの前に確認を求めます。
codex execでは、「MCP tool call requires approval, but approval policy is never」というメッセージで拒否します。上限を定めたジョブについては、 誰も承認できない書き込み を参照してください。 grok -pで実行する Grok Build は、事前に許可されていない場合、確認を求められない書き込みを拒否します。- Grok Build はプラグインのツールを
use_toolツール経由で呼び出します。また、エージェントはサーバー名を付けずにツール名を指定することがよくあります。Grok は指定された名前に対してルールを照合するため、サーバー名付きのルールだけでは最初の呼び出しに一致しません。2つ目のルールは短い名前に一致しますが、書き込みにはどちらのルールも一致しません。 - Antigravity は、ルールで許可されていないすべての MCP ツール(読み取りを含む)の実行前に確認を求め、プラグインのサーバー名を
cloudflare-tools_cloudflare-tools(プラグイン名、次にサーバー名)として指定します。agy -pは、確認を求められないツールを拒否します。 - Hermes の
hermes chat -qは、確認を求められない書き込みを拒否します。hermes -zと--yoloは承認を省略するため、その場合は書き込みが確認なしで実行されます。上限を定めたジョブについては、 誰も承認できない書き込み を参照してください。
ツールの gate に拒否された呼び出しは、どのような回答であっても実行されません。OpenCode と Hermes は確認を求める前に拒否するため、プロンプトには表示されません。Hermes はツールのエラーとしてブロックします。Claude Code、Codex、Grok Build、Antigravity は MCP サーバーが呼び出しを受け取る前に独自のプロンプトを表示するため、確認を求める場合があります。その後、サーバーが呼び出しを拒否します。
承認する人がいない場合の書き込み
権限付与により、ジョブの書き込みは1つのツールに限定され、期間は最大90日です。それ以外はユーザーが決定します。対象(名前を指定するか、任意の対象なら *)、ツールが宣言する制限(省略したものには制限がありません)、1時間あたりの呼び出し回数(省略した場合は無制限)を指定します。権限付与のもとで行われたすべての呼び出しは記録されます。権限付与がホストの権限設定を上書きすることはありません。
規約に契約が記載されています。
- ユーザーが応答するセッションで、設定に記載されたキーを指定し、ジョブのツールセットとともに
grantsツールセットを有効にして、エージェントに委任を依頼します。エージェントはcloudflare_grant_createを呼び出します。プロンプトにはツール、対象、呼び出しレート、日数、ツールが宣言するすべての制限(省略したものはno limit)、理由が表示されます。 1回承認します。 - ジョブに限り、同じキーと
unattendedを設定します。たとえばCLOUDFLARE_TOOLS_UNATTENDED=trueとします。そうしないと、権限付与はチェックされません。 - 以下のように、その実行でホストが書き込みツールを許可するようにします。権限付与は各呼び出しを引き続き制限します。
cloudflare_grant_revokeで取り消すか、cloudflare_grant_readで権限付与とその使用状況を一覧表示します。
たとえば cloudflare_dns_record_add のように、ユーザーが応答できない状況で書き込みをパッケージに到達させる方法は次のとおりです。
- OpenCode
opencode runは、許可ルールでツールを指定する("permission": { "cloudflare_dns_record_add": "allow" })か、--autoを付けて実行を開始しない限り、すべての質問を拒否します。 - Claude Code
claude -pでは、ツールを--allowedToolsにmcp__plugin_cloudflare-tools_cloudflare-tools__cloudflare_dns_record_addとして指定する必要があります。 - Codex
codex execでは、プラグインのMCPサーバーにあるconfig.tomlの該当ツールにapproval_mode = "approve"を指定する必要があります([mcp_servers.<server>.tools.<tool>])。これは、プラグインのデフォルトでは書き込みのたびに確認を求めるためです。 - Grok Build
grok -pでは、読み取りと書き込みに記載された修飾名と短縮名の両方に対して、許可ルールが必要です。--allow 'MCPTool(cloudflare-tools__cloudflare_dns_record_add)'と--allow 'MCPTool(cloudflare_dns_record_add)'を指定します。 - Antigravity
agy -pでは、permissions.allowにmcp(cloudflare-tools_cloudflare-tools/cloudflare_dns_record_add)を指定する必要があります。 - Hermes
hermes chat -qは、許可されていない場合、approvals.single_query_modeによって拒否します。-zと--yoloは承認をスキップして書き込みを実行します。この場合、唯一の制限となるのは権限付与です。
制限事項
- すべての承認をスキップする実行(Hermes の
-zまたは--yolo、常時承認モード、cloudflare_grant_createへの明示的なallow、グローバルな OpenCode V1 のallow)では、プロンプトは表示されません。そこで作成された権限付与はユーザーの承認ではなく、90日間、対象は任意、制限もレート上限もなしという広範なものになり得ます。権限付与は、ハーネスが確認を求める場所でのみ作成してください。 - grants ディレクトリの古いコピーを丸ごと戻しても検出されません。有効期限は最大90日で、復元できる範囲を制限します。
- キーを読み取れる人なら誰でも権限付与に署名できます。エージェントのツールから読み取れない場所に保管してください。
- OpenCode V2 プラグインはフックを通じて
cloudflare_grant_createの確認を必須にします。このフックを提供するホストでのみ実行されます。
OpenCode V2 サービスと Hermes ゲートウェイは、起動時の環境を保持します。ジョブの変数を変更する前に、設定を参照してください。
設定
すべてのエントリポイントで同じ設定を使用します。フラグは環境変数より優先され、オプションまたは設定も変数より優先されます。
| 設定 | フラグ | 変数 | 意味 |
|---|---|---|---|
toolsets | --toolsets | CLOUDFLARE_TOOLS_TOOLSETS | 有効にするツールセット、または all。デフォルトは src/project.ts の名前です |
read_only | --read-only | CLOUDFLARE_TOOLS_READ_ONLY | 書き込みを行うツールを登録しません。他のすべての設定より優先されます |
unattended | --unattended | CLOUDFLARE_TOOLS_UNATTENDED | 人が応答できない場合に、書き込みはその操作を対象とする許可がある場合のみ実行されます。デフォルトではオフです |
grants_dir | --grants-dir | CLOUDFLARE_TOOLS_GRANTS_DIR | 許可とその使用記録の保存場所。デフォルトは $XDG_STATE_HOME/cloudflare-tools/grants、それ以外の場合は ~/.local/state/cloudflare-tools/grants |
tools | --tools | CLOUDFLARE_TOOLS_TOOLS | ツールセットに関係なく、IDを指定して追加する個別のツール |
exclude_tools | --exclude-tools | CLOUDFLARE_TOOLS_EXCLUDE_TOOLS | IDを指定して削除する個別のツール。tools と toolsets より優先されます |
confirm | --confirm | CLOUDFLARE_TOOLS_CONFIRM | MCP サーバーのみ:慣例に従い、harness(デフォルト)または elicitation を指定します |
language | --language | CLOUDFLARE_TOOLS_LANGUAGE | ネイティブプラグインのみ:承認プロンプトの言語(例:ja) |
emoji | — | — | Hermes のみ:ツールセット名ごとに、各ツールセットの横に表示する絵文字(なしの場合は "") |
require_plugins | — | — | Hermes のみ:読み込み必須のプラグイン。未読み込みのプラグインがある間は、承認前にすべての書き込みが拒否されます |
CLOUDFLARE_TOOLS_GRANT_KEY は変数のみで、フラグやプラグイン
オプションではありません。openssl rand -hex 32 などで32文字以上の値を生成し、
ホストがシークレットを保存する場所に保管してください。これがない場合、
非対話モードでは書き込みが実行されず、許可も作成できません。Codex は
以下で説明するように、設定用の変数とともにこの値を引き継ぎます。
フラグまたは変数では、リストをカンマ区切りで指定します。パッケージ独自の設定は、
src/project.ts の options に記載されており、ここではそれぞれ1行を割り当て、
同じ方法で読み取られます。path は前後の空白が除去されます。~ と ~/…
(プラットフォームの区切り文字を使う場合も同様)はホームディレクトリを表します
(HOME が絶対パスの場合はその値、それ以外の場合はアカウントのホームディレクトリ)。
その後、絶対パスである必要があり、ファイルシステムの確認は行わずに正規化されて
ツールに渡されます。paths はこのようなパスのリストで、フラグまたは変数では
カンマ区切り、プラグインオプションでは文字列の配列です。空のパスや、空白を除去して
空項目を取り除いた後に項目が残らないリストは、未設定として扱われます。
範囲チェックは、値が指定されている場合にのみ行われ、未設定のオプションには適用されません。
拒否された値は invalid_argument となり、フラグ、変数、またはオプションの名前と
必要な条件が示されます。Hermes はパスとリストをコマンドラインに渡し、そこでパスと
範囲がチェックされます。各ハーネスでの読み取り方法は次のとおりです。
-
OpenCode は、上記のプラグイン
optionsを受け取り、リストは配列、read_onlyはブール値として扱い、設定がない場合は変数にフォールバックします。 -
Hermes は
config.yamlのplugins.entries.cloudflare-tools.settingsを受け取ります:plugins: entries: cloudflare-tools: settings: read_only: false exclude_tools: []language設定がない場合、承認カードには Hermes 自体のdisplay.language(またはHERMES_LANGUAGE)が適用され、承認 ボタンの言語もそれに従います。それ以外の場合は英語のままです。 -
Claude Code、Grok Build、Antigravity はフラグを指定せずにプラグインのサーバーを起動し、 クライアントの環境を渡します。そのため、ハーネスを実行する環境に変数を設定してください。
-
Codex はプラグインの MCP サーバーに、
PATHやHOMEなどの基本的な変数と、 プラグインのマニフェストに記載された変数(上記の変数)のみを渡します。そのため、Codex を 実行する環境に変数を設定してください。設定以外にツールが読み取る変数はsrc/project.tsのtoolVariablesに追加します。pnpm run manifestsを実行すると、 設定の変数の後にその変数がマニフェストへ追加されます。フラグを渡す場合や、パッケージの マニフェストに記載されていない変数をサーバーに渡す場合は、プラグインを使わず、 Codex のconfig.tomlの[mcp_servers]にサーバーを追加してください。フラグはargsに、渡す変数はenv_varsに指定します。詳しくは 認証情報 をご覧ください。
各ハーネスが変数をどこから取得するか、変更を反映するために再起動が必要な場合については、 認証情報 をご覧ください。
認証情報
ツールは環境変数から読み取った API トークンを使って Cloudflare を呼び出します。 設定や引数からトークンを取得することはありません。各トークンには、そのトークンが操作する アカウントの ID が対応しています。
| 変数 | 使用される条件 |
|---|---|
CLOUDFLARE_API_TOKEN、CLOUDFLARE_ACCOUNT_ID | account の指定がない場合、または account: "default" |
CLOUDFLARE_API_TOKEN_<LABEL>、CLOUDFLARE_ACCOUNT_ID_<LABEL> | account: "<label>" の場合。ラベルは小文字 |
- ラベルなしのペアは、Wrangler が読み取る名前です。ラベルには小文字、数字、
_を 1~24 文字 使用し、変数名では大文字で記述します(my_site→CLOUDFLARE_API_TOKEN_MY_SITE)。 accountの指定がない場合、呼び出しではラベルなしのペアが使われます。ラベルなしのペアが ない場合は、唯一のラベルが使われます。ラベルが複数あり、ラベルなしのペアがない場合は、 失敗してラベルの一覧が表示されます。- Wrangler 用にエクスポートした場合など、
CLOUDFLARE_API_TOKENが設定されていてCLOUDFLARE_ACCOUNT_IDが設定されていない場合でも、ラベルなしのペアとして扱われます。 そのため、ラベル付きのペアが完全に設定されていても、accountを指定しない呼び出しは失敗します。accountを渡すか、余分なトークンを解除してください。 - ツールが実行すべき操作に必要な範囲に限定した API トークンを使用してください。 Global API Key は拒否されます。
各ハーネスがツールを起動する環境に変数を設定してください。
-
OpenCode V2 はプラグインをバックグラウンドサービスで実行し、そのサービスは起動時の 環境を保持します。サービスの起動元の環境に変数を設定し、設定または変更した後は 再起動してください(
opencode service restart)。OpenCode V1 はプラグインを 独自のプロセスで実行するため、そのプロセスの実行環境に設定すれば十分です。 -
Claude Code、Antigravity、Grok Build は、ハーネスの実行環境をプラグインのサーバーに渡します。
-
Hermes は実行環境を渡しますが、すでに起動しているゲートウェイは起動時の環境を保持します。 変数を設定または変更した後は再起動してください(
hermes gateway restart)。 -
Codex はプラグインのサーバーに、
PATHやHOMEなどの基本的な変数と、マニフェストに 記載された設定の変数のみを渡し、認証情報は渡しません。プラグインのサーバーと同じ名前の サーバーを~/.codex/config.tomlに追加してください。これによりプラグインのサーバーが 置き換えられます(プラグインのスキルはそのまま使えます)。転送する変数はenv_varsに 指定します。startup_timeout_secを設定すると、初回起動時にnpxがパッケージを取得する 時間を確保できます。[mcp_servers.cloudflare-tools] command = "npx" args = ["-y", "@craftsamo/cloudflare-tools@<version>"] env_vars = ["CLOUDFLARE_API_TOKEN_<LABEL>", "CLOUDFLARE_ACCOUNT_ID_<LABEL>"] startup_timeout_sec = 120 -
その他の MCP ホストでは、サーバーエントリーの
envに変数を設定します。
レイアウト
src/project.ts— パッケージ名、ツール ID のプレフィックス、設定のプレフィックス、ツールセット、ツールのオプション、およびツールが読み取るその他の変数です。src/core/— ハーネスやプロジェクト名に依存しない、ツールの契約とツールです。src/tools.ts— 各エントリーポイントが登録する、すべてのツールの一覧です。src/words.ts— ツールの単語を言語ごとに翻訳したもので、ネイティブプラグインが承認プロンプトで使用します。src/mcp/— MCP サーバーです。dist/mcp.jsにビルドされ、cloudflare-toolsで実行されます。src/opencode/— OpenCode プラグインです。dist/opencode.jsにビルドされます。src/cli/— Hermes プラグインが呼び出すコマンドラインです。dist/cli.jsにビルドされ、cloudflare-tools-cliで実行されます。src/hermes/、plugin.yaml、__init__.py— Hermes プラグインです。skills/— ツールセットごとに 1 つのスキルがあります。skills/<name>/SKILL.mdは、スキルを利用する各ハーネスがパッケージまたはプラグインのルートから読み込みます。ネイティブプラグインは、有効になっているツールセットのスキルのみを読み込みます。.claude-plugin/、.codex-plugin/、.agents/plugins/、.mcp.json、.antigravity-plugin/、mcp_config.json— その他のハーネスのプラグインマニフェストです。Codex は.codex-plugin/plugin.jsonを読み取ります。ルートにplugin.jsonがあると、プラグインが Agent Plugin として読み込まれ、ツールの予算によって固定サイズを超えるツールが非表示になります。ルートの.mcp.jsonは Grok Build が読み取る設定です(Grok Build と Claude Code の両方が展開する${CLAUDE_PLUGIN_ROOT}を使用)。Claude Code でこのリポジトリを作業する際は、このファイルから提案されるプロジェクトの MCP サーバーを拒否してください。
リリースの作成方法については、RELEASING.md を参照してください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。