Skip to main content
OpenClaw は、CodexClaudeCursor という 3 つの外部エコシステムから Plugin をインストールできます。これらは バンドルと呼ばれ、OpenClaw が Skills、フック、MCP ツールなどのネイティブ機能にマッピングするコンテンツとメタデータのパックです。
バンドルはネイティブ OpenClaw Plugin と同じではありません。ネイティブ Plugin はプロセス内で実行され、あらゆる機能を登録できます。バンドルは、機能が選択的にマッピングされ、信頼境界がより狭いコンテンツパックです。

バンドルが存在する理由

多くの便利な Plugin は Codex、Claude、または Cursor 形式で公開されています。作成者にネイティブ OpenClaw Plugin として書き直すことを求める代わりに、OpenClaw はこれらの形式を検出し、対応しているコンテンツをネイティブ機能セットにマッピングします。Claude コマンドパックや Codex スキルバンドルをインストールして、すぐに使用できます。

バンドルをインストールする

1

ディレクトリ、アーカイブ、またはマーケットプレイスからインストールする

<source> はローカルのマーケットプレイスパス/リポジトリ、または git/GitHub ソースです。
2

検出を確認する

バンドルには、Format: bundle に加えて、値が codexclaude、または cursorBundle format: が表示されます。
3

再起動して使用する

マッピングされた機能(Skills、フック、MCP ツール、LSP のデフォルト)は次のセッションで利用できます。

OpenClaw がバンドルからマッピングするもの

現在、すべてのバンドル機能が OpenClaw で動作するわけではありません。ここでは、動作するものと、検出されるもののまだ接続されていないものを示します。

現在対応しているもの

スキルコンテンツ

  • バンドルのスキルルートは通常の OpenClaw スキルルートとして読み込まれます。
  • Claude の commands/ ルートは追加のスキルルートとして扱われます。
  • Cursor の .cursor/commands/ ルートは追加のスキルルートとして扱われます。
Claude の Markdown コマンドファイルと Cursor のコマンド Markdown は、どちらも通常の OpenClaw スキルローダーを通じて動作します。

フックパック

バンドルのフックルートは、通常の OpenClaw フックパックレイアウト(HOOK.mdhandler.ts または handler.js)を使用する場合にのみ動作します。現在、これは主に Codex 互換の場合に該当します。

埋め込み OpenClaw の MCP

  • 有効なバンドルは MCP サーバー設定を提供できます。
  • OpenClaw はバンドルの MCP 設定を mcpServers として、有効な埋め込み OpenClaw 設定にマージします。
  • OpenClaw は、stdio サーバーを起動するか HTTP サーバーに接続することで、埋め込み OpenClaw エージェントのターン中に、対応するバンドル MCP ツールを公開します。
  • coding および messaging ツールプロファイルには、デフォルトでバンドル MCP ツールが含まれます。エージェントまたは Gateway で無効にするには tools.deny: ["bundle-mcp"] を使用します。
  • プロジェクトローカルの埋め込みエージェント設定は、バンドルのデフォルト適用後も有効になるため、必要に応じてワークスペース設定でバンドル MCP エントリを上書きできます。
  • バンドル MCP ツールカタログは登録前に決定論的にソートされるため、上流の listTools() の順序が変わってもプロンプトキャッシュのツールブロックが頻繁に変動することはありません。
トランスポート
MCP サーバーは stdio または HTTP トランスポートを使用できます。 Stdio は子プロセスを起動します。
HTTP は実行中の MCP サーバーに接続します。streamable-http が要求されない限り、デフォルトは sse です。
  • transport"streamable-http" または "sse" を受け付けます。省略時のデフォルトは sse です。
  • type: "http" は CLI ネイティブのダウンストリーム形式です。OpenClaw 設定では transport: "streamable-http" を使用してください。openclaw mcp setopenclaw doctor --fix は一般的なエイリアスを正規化します。
  • 許可される URL スキームは http:https: のみです。
  • headers の値では ${ENV_VAR} 補間を使用できます。
  • commandurl の両方を含むサーバーエントリは拒否されます。
  • URL の認証情報(ユーザー情報およびクエリパラメータ)は、ツールの説明とログから秘匿されます。
  • connectionTimeoutMs は、stdio と HTTP の両方のトランスポートで、デフォルトの 30 秒の接続タイムアウトを上書きします。リクエストタイムアウトのデフォルトは 60 秒で、requestTimeoutMs で上書きできます。
ツールの命名
OpenClaw はバンドル MCP ツールを serverName__toolName 形式のプロバイダーで安全に使用できる名前で登録します。たとえば、キーが "vigil-harbor" のサーバーが memory_search ツールを公開している場合、vigil-harbor__memory_search として登録されます。
  • A-Za-z0-9_- に含まれない文字は - に置き換えられます。
  • 先頭が英字以外になるフラグメントには英字の接頭辞が付けられるため、12306 のような数値のサーバーキーも、プロバイダーで安全に使用できるツール接頭辞になります。
  • サーバー接頭辞は最大 30 文字です。
  • 完全なツール名は最大 64 文字です。
  • 空のサーバー名は mcp にフォールバックします。
  • サニタイズ後の名前が衝突する場合は、数値の接尾辞で区別されます。
  • 最終的に公開されるツールの順序は安全な名前によって決定論的に定まり、埋め込みエージェントのターンを繰り返してもキャッシュが安定します。
  • プロファイルフィルタリングでは、1 つのバンドル MCP サーバーのすべてのツールを bundle-mcp が所有する Plugin として扱うため、プロファイルの許可/拒否リストでは、公開された個別のツール名または bundle-mcp Plugin キーのいずれかを参照できます。

埋め込み OpenClaw 設定

バンドルが有効な場合、Claude の settings.json は埋め込み OpenClaw のデフォルト設定としてインポートされます。OpenClaw は適用前にシェル上書きキーをサニタイズします。
  • shellPath
  • shellCommandPrefix

埋め込み OpenClaw LSP

  • 有効な Claude バンドルは LSP サーバー設定を提供できます。
  • OpenClaw は .lsp.json と、マニフェストで宣言されたすべての lspServers パスを読み込みます。
  • バンドルの LSP 設定は、有効な埋め込み OpenClaw LSP のデフォルトにマージされます。
  • 現在実行できるのは、対応する stdio ベースの LSP サーバーのみです。未対応のトランスポートも openclaw plugins inspect <id> には表示されます。

検出されるが実行されないもの

以下は認識され、診断に表示されますが、OpenClaw は実行しません。
  • Claude の agentshooks/hooks.json 自動化、outputStyles
  • Cursor の .cursor/agents.cursor/hooks.json.cursor/rules
  • 機能レポート以外の Codex .app.json メタデータ

バンドル形式

マーカー:.codex-plugin/plugin.jsonオプションのコンテンツ:skills/hooks/.mcp.json.app.jsonCodex バンドルは、スキルルートと OpenClaw 形式のフックパックディレクトリ(HOOK.md + handler.ts)を使用すると、OpenClaw に最も適合します。
2 つの検出モード:
  • マニフェストベース: .claude-plugin/plugin.json
  • マニフェストなし: デフォルトの Claude レイアウト(skills/commands/agents/hooks/.mcp.json.lsp.jsonsettings.json
Claude 固有の動作:
  • commands/ はスキルコンテンツとして扱われます
  • settings.json は埋め込み OpenClaw 設定にインポートされます(シェル上書きキーはサニタイズされます)
  • .mcp.json は対応する stdio ツールを埋め込み OpenClaw に公開します
  • .lsp.json とマニフェストで宣言された lspServers パスは、埋め込み OpenClaw LSP のデフォルトに読み込まれます
  • hooks/hooks.json は検出されますが実行されません
  • マニフェスト内のカスタムコンポーネントパスは追加的です。デフォルトを置き換えるのではなく拡張します
マーカー:.cursor-plugin/plugin.jsonオプションのコンテンツ:skills/.cursor/commands/.cursor/agents/.cursor/rules/.cursor/hooks.json.mcp.json
  • .cursor/commands/ はスキルコンテンツとして扱われます
  • .cursor/rules/.cursor/agents/.cursor/hooks.json は検出のみ行われます

検出の優先順位

OpenClaw は最初にネイティブ Plugin 形式を確認します。
  1. openclaw.plugin.json、または openclaw.extensions を含む有効な package.jsonネイティブ Pluginとして扱われます
  2. バンドルマーカー(.codex-plugin/.claude-plugin/、またはデフォルトの Claude/Cursor レイアウト)— バンドルとして扱われます
ディレクトリに両方が含まれている場合、OpenClaw はネイティブパスを使用します。これにより、デュアルフォーマットパッケージがバンドルとして部分的にインストールされることを防ぎます。

ランタイム依存関係とクリーンアップ

  • サードパーティ製の互換バンドルでは、起動時の npm install 修復は行われません。openclaw plugins install を通じてインストールし、必要なものをすべてインストール済み Plugin ディレクトリに同梱する必要があります。
  • OpenClaw が所有するバンドル済み Plugin は、コアに軽量な形で同梱されるか、Plugin インストーラーからダウンロードできます。Gateway の起動時に、これらのためにパッケージマネージャーが実行されることはありません。
  • openclaw doctor --fix は古いローカルのバンドル済み Plugin インストールレコードを削除し、設定から引き続き参照されているものの、ローカル Plugin インデックスに存在しないダウンロード可能な Plugin を復旧できます。

セキュリティ

バンドルの信頼境界は、ネイティブ Plugin よりも狭くなっています。
  • OpenClaw は任意のバンドルランタイムモジュールをプロセス内に読み込みません
  • Skills とフックパックのパスは Plugin ルート内に収まる必要があります(境界チェック済み)。
  • 設定ファイルは同じ境界チェックを使用して読み込まれます。
  • 対応する stdio MCP サーバーはサブプロセスとして起動される場合があります。
このため、バンドルはデフォルトでより安全ですが、サードパーティ製バンドルが公開する機能については、信頼できるコンテンツとして扱う必要があります。

トラブルシューティング

openclaw plugins inspect <id> を実行します。機能が一覧に表示されていても、 未接続と記載されている場合、それはインストールの不具合ではなく、製品上の制限です。
バンドルが有効になっており、Markdown ファイルが検出済みの commands/ または skills/ ルート内にあることを確認します。
settings.json の埋め込み OpenClaw 設定のみがサポートされています。OpenClaw は バンドル設定を未加工の設定パッチとして扱いません。
hooks/hooks.json は検出専用です。実行可能なフックが必要な場合は、 OpenClaw のフックパックレイアウトを使用するか、ネイティブ Plugin を配布してください。

関連項目