marketplace.json はプラグインマーケットプレイスを定義するファイルです。マーケットプレイスの名前、所有者、およびプラグインごとに 1 つのエントリが含まれます。各エントリのプラグインソースは、Claude Code がそのプラグインをどこから取得するかを指定します。
マーケットプレイスソースは、Claude Code が marketplace.json ファイル自体をどこから取得するかを指定する別のオブジェクトです。設定で記述するか、claude plugin marketplace add を実行するときに Claude Code が構築します。
このリファレンスは、正確なフィールド名または値が必要なマーケットプレイス管理者、および extraKnownMarketplaces、strictKnownMarketplaces、および blockedMarketplaces で有効な source 値を知る必要がある管理者向けです。
これらのケースは他のページで説明されています:
- マーケットプレイスの構築またはホスト: マーケットプレイスの作成 および マーケットプレイスのホストと保守 を参照してください
- 許可リストと拒否リストのレシピ: 組織のプラグインを管理する を参照してください
- マーケットプレイスファイル: トップレベルフィールド および プラグインエントリ
- エントリの
source: プラグインソース - 設定の
sourceオブジェクト: マーケットプレイスソース claude plugin validate <path>からの出力: 検証メッセージ。各メッセージをそれが名前を付けるフィールドにマップします
マーケットプレイスファイル
マーケットプレイスファイルをマーケットプレイスのディレクトリの.claude-plugin/marketplace.json に保存します。ファイルをリポジトリ内の別の場所に保持する場合、ユーザーは extraKnownMarketplaces でマーケットプレイスを宣言する必要があり、その source に path を設定する必要があります。claude plugin marketplace add にはそのオプションがないためです。
.claude-plugin/ を含むディレクトリはマーケットプレイスルートと呼ばれ、すべての相対プラグインソースは .claude-plugin/ からではなく、そこから解決されます。
各ユーザーは name ごとに 1 つのマーケットプレイスを登録するため、ユーザーは同じ名前の 2 つのマーケットプレイスを同時に登録することはできません。
Claude Code は不明なトップレベルキーまたはプラグインエントリキーを無視し、拒否しないため、タイプミスは静かに読み込まれます。claude plugin validate は各不明なキーを警告として報告します。
予約名
マーケットプレイスに次の名前を付けることはできません:- 公式マーケットプレイス名:
claude-code-marketplace、claude-code-plugins、claude-plugins-official、anthropic-marketplace、anthropic-plugins、agent-skills、anthropic-agent-skills、life-sciences、knowledge-work-plugins、claude-for-legal、claude-for-financial-services、financial-services-plugins、first-party-plugins、およびclaude-tag-plugins。マーケットプレイスがgithub.com/anthropics/の下のgithubまたはgitマーケットプレイスソース から来ない限り予約されています。 - コミュニティマーケットプレイス名:
claude-community、claude-plugins-community、およびhealthcare。公式名と同じルールの下で予約されています。 - プラグインディレクトリ名:
anthropic-plugin-directoryおよびclaude-plugin-directory。公式名と同じルールの下で予約されています。 - 公式マーケットプレイスになりすまし名:
official-claude-pluginsまたはclaude-plugins-v2などの名前、および非 ASCII 文字を含む任意の名前。エラーはMarketplace name impersonates an official Anthropic/Claude marketplaceです。名前内の制御文字または双方向フォーマット文字もMarketplace name cannot contain control or bidirectional-formatting charactersを報告します。マーケットプレイスが既にそのような名前の下で登録されている場合、そのマーケットプレイスとそのプラグインは読み込みを停止します。 - 予約名の別のスペル: 予約名と末尾のドット、またはハイフンの代わりにアンダースコア以外の記号によってのみ異なる名前。
claude.code.pluginsはclaude-code-pluginsとしてカウントされます。マーケットプレイスの追加はis another spelling of "<reserved>", a reserved marketplace nameで失敗し、そのような名前で既に登録されているマーケットプレイスは読み込みを停止します。このチェックには Claude Code v2.1.280 以降が必要です。 - Claude Code がマーケットプレイスから来ないプラグインに使用する名前:
--plugin-dirで読み込まれたプラグインのinline、組み込みプラグインのbuiltin、.claude/skills/から自動読み込みされたプラグインのskills-dir、および claude.ai アカウントから同期されたプラグインのsynced。claude-plugin-testも予約されています。skills-dirはstrictKnownMarketplacesおよびblockedMarketplacesで{"source": "skills-dir"}としても表示されます。ポリシーリストでのみ有効なソース値 で説明されています。 npm、pip、uv、cargo、github、およびgh: 任意の大文字小文字で予約されています。このチェックには Claude Code v2.1.275 以降が必要です。- すべての JavaScript オブジェクトが持つメンバー名:
constructor、hasOwnProperty、isPrototypeOf、propertyIsEnumerable、toLocaleString、toString、およびvalueOf。claude plugin marketplace addは、これらのいずれかを使用するマーケットプレイスをClaude Code reserves this name and cannot register a marketplace under itで拒否します。このチェックには Claude Code v2.1.296 以降が必要です。 claudeai-で始まる名前: claude.ai でホストされているマーケットプレイス用に予約されています。claude plugin marketplace addはCannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.aiで他のマーケットプレイスを拒否します。- 登録済みの GitHub マーケットプレイスのダウンロードフォルダ
<owner>-<repo>: Claude Code は、acme/x-toolsなどのgithubソースから追加されたマーケットプレイスを、そのマーケットプレイス自体のnameに関係なく、acme-x-toolsという名前のフォルダを通じてダウンロードします。そのマーケットプレイスがacme-x-tools以外の名前で登録されている間、claude plugin marketplace addはacme-x-toolsという名前の別のマーケットプレイスをダウンロードした後にそれを拒否し、Can't use the marketplace name "acme-x-tools"を報告します。このチェックには Claude Code v2.1.290 以降が必要です。
claude plugin list および /plugin は Claude Code refuses the marketplace name "<name>" を報告します。メッセージはマーケットプレイスを削除するよう指示します。マーケットプレイスを削除すると、そのプラグインもアンインストールされ、プラグインのデータ、オプション、シークレットも削除されます。この名前付き拒否メッセージには Claude Code v2.1.282 以降が必要です。
設定ファイルでマーケットプレイスがインラインで宣言されている場合、メッセージは古い名前を削除する前にそのエントリの名前を変更するよう指示します。手順については、Claude Code refuses the marketplace name を参照してください。メッセージに手順が表示されるのは Claude Code v2.1.292 以降です。
トップレベルフィールド
テーブルは Claude Code がmarketplace.json から読み取るすべてのキーをリストします。name、owner、および plugins は必須です。
プラグインエントリ
marketplace.json のトップレベル plugins 配列内の各オブジェクトはプラグインに名前を付け、そこからフェッチする場所を指定します。name および source は必須です。
ディレクトリリスティングフィールド のほかに、エントリは description、version、author、commands、および hooks などのすべての plugin.json フィールド も受け入れます。これらのフィールドが適用される場合については、エントリが plugin.json とどのように組み合わされるか を参照してください。
テーブルはエントリ自身のフィールドと、エントリ内での意味が変わるマニフェストフィールドをリストします。
エントリが plugin.json とどのように組み合わされるか
エントリのフィールドは、フェッチされたプラグインが独自の.claude-plugin/plugin.json を持つ場合と持たない場合で異なる方法で適用されます:
plugin.jsonなし: エントリはstrictに関係なくマニフェストです。mcpServers、lspServers、userConfig、およびchannelsを含む、エントリが受け入れるすべてのマニフェストフィールドが適用されます。plugin.json存在:plugin.jsonはマニフェストです。厳密モード は、エントリの 6 つのコンポーネントフィールドcommands、agents、skills、hooks、outputStyles、およびthemesが組み合わされるか、競合として拒否されるかを決定します。エントリmcpServers、lspServers、userConfig、およびchannelsは適用されません。plugin.jsonで宣言してください。
エントリ内のフック
エントリhooks は、フックイベント名を matcher 配列にマップするインラインオブジェクトとして記述します。代わりにファイルパスまたは配列を記述した場合、claude plugin validate はそれを通過させます。しかし、これらのフックは実行されず、Claude Code はプラグインの not yet supported in a marketplace entry エラーを報告します。ファイルベースのフックはプラグイン自身の hooks/hooks.json または plugin.json に入れてください。
表示フィールド
エントリとプラグイン自身のplugin.json の両方が、表示フィールド displayName、description、author、homepage、repository、license、および keywords を設定できます。ユーザーはインストール前後のプラグインリストと詳細でこれらの値を見ます:
- エントリで設定したフィールドの場合、ユーザーはエントリの値を見ます。
plugin.jsonが異なる値を設定している場合でも。 - エントリが設定しないフィールドの場合、ユーザーは
plugin.json値を見ます。
plugin.json のみを読み取ることができます。そのプラグインファイルはマーケットプレイス内にあります。他のソースタイプを持つエントリの場合、ユーザーはプラグインをインストールするまでエントリ自身のフィールドのみを見ます。
厳密モード
strict は、フェッチされたプラグインが独自の plugin.json を持ち、エントリが コンポーネントフィールド のいずれかも宣言する場合に何が起こるかを決定します:commands、agents、skills、hooks、outputStyles、または themes。デフォルトの strict: true では、Claude Code はエントリのコンポーネントフィールドを plugin.json に追加します。ただし hooks は例外で、その matcher はマニフェストのイベントごとの matcher を置き換えます。strict: false では、コンポーネントフィールドを宣言するエントリは競合であり、プラグインは読み込みに失敗します。テーブルは strict、plugin.json、およびエントリのコンポーネントフィールドの各組み合わせを示します。
プラグインソース
プラグインエントリのsource は、Claude Code がそのプラグインをどこから取得するかを指定します。相対パス文字列か、独自の source キーでタイプを指定するオブジェクトのいずれかです。エントリは "source": { "source": "github", "repo": "your-org/formatter" } のようになります。
以下の表は、各プラグインソースタイプとそのフィールドを示しています。
url と github という名前はマーケットプレイスソースタイプでもあります。ここで url は git リポジトリではなく marketplace.json ファイルへの直接リンクを意味します。git はマーケットプレイスソースとしてのみ存在し、npm は両方として存在します。git-subdir、archive、command はプラグインソースとしてのみ存在します。
マーケットプレイスリポジトリ自体のサブディレクトリにあるプラグインには相対パスを使用します。他のリポジトリのサブディレクトリには git-subdir を使用します。
github、url、git-subdir ソースは ref と sha フィールドを共有します。
ref: ブランチまたはタグ。リポジトリのデフォルトブランチにデフォルト設定されます。sha: 40 文字の小文字のコミット SHA。refとshaの両方を設定すると、Claude Code はshaをチェックアウトします。GitHub、GitLab、Bitbucket を含むほとんどの git ホストでは、refで指定されたブランチまたはタグが上流で削除されていても、コミットがリポジトリから到達可能である限り、インストールは成功します。AWS CodeCommit などの一部のサーバーは SHA によるコミット取得をサポートしていません。これらのサーバーでは、refが存在し、ピン留めされたコミットがそこから到達可能である必要があります。
相対パスプラグインソース
パスはマーケットプレイスルートから解決されます。./plugins/formatter は <root>/plugins/formatter です。マーケットプレイスファイルが <root>/.claude-plugin/ にあっても同じです。
.. を含むパスは検証に失敗します。macOS と Linux では、Claude Code は先頭の ./ の後に任意の場所にバックスラッシュを含むエントリパスを拒否するため、パスはフォワードスラッシュで記述してください。
github、git、file、directory: Claude Code はマーケットプレイスのファイルを持っています。url: Claude Code はmarketplace.jsonのみを取得するため、相対パスは解決できません。各プラグインにgithubやgit-subdirなどのオブジェクトソースを指定してください。settings: 相対パスは完全に拒否されます。
マーケットプレイスリポジトリ内の Git サブモジュール
Claude Code はマーケットプレイスリポジトリをクローンするとき、プラグインファイルを保持する git サブモジュールのみを取得します。Claude Code v2.1.295 以降が必要です。 それより前のバージョンでは、ネストされたものを含むすべてのサブモジュールを取得します。リポジトリに大きなサブモジュールがある場合、Claude Code はその取得中にクローンタイムアウトを超過することがあります。./plugins/formatter のようなサブディレクトリ内のプラグインの場合、Claude Code は次の場合にサブモジュールを取得します。
- プラグインがサブモジュール内にある: サブモジュールがプラグインのディレクトリ、またはその上位のディレクトリである
- サブモジュールがプラグイン内にある: サブモジュールがプラグインのディレクトリ配下のいずれかの場所にある
- シンボリックリンクがサブモジュール内を指している: リポジトリにコミットされたリンクのターゲットがサブモジュール内にある
"source": "./" でマーケットプレイスルートにあるプラグインは、リポジトリ内のすべてのサブモジュールを取得するか、まったく取得しないかのどちらかです。以下のいずれかがいずれかのサブモジュール内を指している場合、Claude Code はすべてのサブモジュールを取得します。
- コンポーネントディレクトリ: ルートにあるプラグインコンポーネントを保持するディレクトリ(
skills/、hooks/、bin/など) - プラグインの設定内のパス: プラグインのマーケットプレイスエントリ、その
plugin.json、または.mcp.jsonやhooks/hooks.jsonなどの設定ファイル内のパス - シンボリックリンク: リポジトリにコミットされたリンク
- プラグインのファイル内のテキスト: 設定ファイルまたはコンポーネントディレクトリ配下のファイルに記述された、
vendor/toolのようなサブモジュールのパス
- ルートにある
SKILL.md: この場合、リポジトリ全体が 1 つのスキルのディレクトリになります - Claude Code が読み取れないファイル: マーケットプレイスファイル、プラグインの設定ファイルのいずれか、または
.gitmodules
--sparse を指定してマーケットプレイスを追加した場合、またはそのソースで sparsePaths が設定されている場合、Claude Code はそこで指定されたディレクトリのみをチェックアウトし、サブモジュールは取得しません。それより前のバージョンでも同様です。
プラグインが使用しないサブモジュールをクローンから除外するには、未使用のサブモジュールをクローンから除外するを参照してください。
pluginRoot の下の裸の名前
裸の名前は/ を含まない単一のディレクトリ名です。例えば "formatter" です。./ パスの代わりに裸の名前を記述するには、metadata.pluginRootをそれらが解決するディレクトリに設定します。"pluginRoot": "./plugins" の場合、"source": "formatter" は ./plugins/formatter に解決されます。Claude Code v2.1.239 以降が必要です。
metadata.pluginRoot には以下の制限があります。
- それ自体がマーケットプレイス内の相対パスである必要があります。
- 既に
./で始まるソースには影響を与えません。 team-a/formatterのように/を含むソースは裸の名前ではなく、metadata.pluginRootが設定されていても./プレフィックスが必要です。
github プラグインソース
repo は owner/repo を取ります。ref と sha はオプションです。
url プラグインソース
url は完全な git URL です。https://、http://、file://、または git@ です。.git サフィックスは必須ではないため、Azure DevOps と AWS CodeCommit の URL はそのまま機能します。このタイプは owner/repo ショートハンドを取りません。
git-subdir プラグインソース
url は完全な git URL または GitHub owner/repo ショートハンドを受け入れます。path はプラグインを保持するサブディレクトリで、Claude Code はそのサブディレクトリのみをチェックアウトします。https または SSH の URL では、Claude Code はサーバーに部分クローンを要求します。そのため、部分クローンをサポートするホストからであれば、大規模なモノレポ内のプラグインはリポジトリの残りの部分をダウンロードせずにインストールされます。
npm プラグインソース
npm ソースは以下のフィールドを取ります。
package:@your-org/formatterのようなレジストリパッケージ名、@your-org/formatter@2.0.0のようにバージョンを付加した名前、またはパッケージの tarball ファイルへのhttpsリンクversion: バージョン、semver 範囲、または dist-tag。packageがバージョンを付加していないパッケージ名の場合に使用されます。省略するとlatestを取得しますregistry: デフォルトレジストリにないパッケージのレジストリ URL
preinstall や postinstall など)は実行されず、その依存関係は取得中にインストールされません。パッケージが package.json の隣にサポートされているロックファイルを持っている場合、Claude Code はそれらのNode.js パッケージ依存関係を別のステップでインストールします。この場合もスクリプトは無効です。
Claude Code は何かを取得する前に package の値を確認します。拒否された値ではインストールが失敗し、その値と理由を示すメッセージが表示されます。拒否される値には以下が含まれます。
- git アドレス、フォルダまたは
file:パス、あるいはnpm:エイリアス: git リポジトリにはgithub、url、またはgit-subdirソースを、マーケットプレイス内のフォルダには相対パスを、エイリアスにはパッケージ自体の名前を使用してください - github.com、gist.github.com、gitlab.com、bitbucket.org、または git.sr.ht 上の tarball リンク: リンクが GitHub リリースのダウンロードであっても拒否されます。ただし、
gitlab.com/api/v4/配下の GitLab npm レジストリリンクは除きます http経由の tarball リンク: インストールするユーザー自身のデフォルト npm レジストリを指していない限り拒否されます
registry URL は、インストールするユーザー自身のデフォルト npm レジストリでない限り、https を使用する必要があります。それ以外の http レジストリでは、npm がそれに接続する前にインストールが失敗します。
archive プラグインソース
url は https:// を使用する必要があり、ループバック、リンクローカル、またはクラウドメタデータホストを指すことはできません。ダウンロードのサイズ、タイムアウト、リダイレクト、抽出制限については、ホストされたファイルのダウンロード制限内に留まるを参照してください。
プラグインルートは zip の最上部または 1 つ下のディレクトリにある場合があります。
sha256 はアーカイブのダイジェストで、64 文字の 16 進数です。大文字でも小文字でも構いません。これを設定すると、Claude Code は一致しないダウンロードを拒否します。
command プラグインソース
ユーザーのマシンにインストールされたツールがプラグインディレクトリを生成する場合(例えば、ユーザーが選択したツールチェーンのプラグインをレンダリングする IDE など)にcommand ソースを使用します。Claude Code はユーザーがプラグインをインストールまたは更新するときにコマンドを実行し、セッションごとに 1 回再度実行するため、ユーザーは再インストールなしでツールの変更された出力を取得します。
command ソースは以下のフィールドを取ります。
command: プラグインディレクトリの絶対パスを 1 行として出力し、終了コード 0 で終了するシェルコマンド。Claude Code はユーザーに実行前にレビュー用の文字列全体を表示します。印字可能な ASCII で記述し、最大 500 文字で、4 文字以上の連続スペースはありません。timeout: 1 から 600 までの秒数。デフォルトは 60 です。mode:copy(デフォルト)またはlink。コピーモードとリンクモードを参照してください。
disableCommandPluginSources でコマンドソースをオフにします。
コマンドが実行する必要があること
以下の要件を満たすようにコマンドを記述してください。- シェルと作業ディレクトリ: Claude Code はコマンドを
shを通じて実行するか、Windows ではcmd.exeを通じて実行し、ユーザーのホームディレクトリから実行します。絶対パスまたはPATH上のコマンドを指定してください。 - 出力: stdout に正確に 1 行、プラグインディレクトリの絶対パスを出力し、
timeout秒以内に終了コード 0 で終了します。 - ディレクトリの内容: コマンドが終了するまでに、ディレクトリはプラグイン全体を保持します。パスは実行ごとに異なる場合があります。
インストールまたは更新に失敗する出力
コマンドが 0 以外で終了する、timeout より長く実行される、または 1 つの絶対パス以外を出力する場合、インストールまたは更新は失敗します。また、出力されたディレクトリが以下のいずれかの場合も失敗します。
- プラグインコンテンツなし: 出力されたディレクトリの最上部にプラグインコンテンツがありません。例えば
.claude-plugin/ディレクトリやskills/、commands/、agents/、hooks/ディレクトリなどです。 - セッション自体のディレクトリ: 出力されたディレクトリは Claude Code が開始されたディレクトリ、またはその親の 1 つです。
- ネットワークパス: Windows では、出力されたパスは UNC パスです。
- コピーするには大きすぎます: コピーモードでは、ディレクトリが 256 MiB より大きいか、20,000 を超えるエントリを持っています。
コピーモードとリンクモード
mode は Claude Code が出力されたディレクトリをコピーするか、それを所定の位置で使用するかを決定します。
copy: Claude Code はディレクトリをプラグインキャッシュにコピーし、コピーされたファイルのハッシュからプラグインバージョンを導出します。ツールはコマンド終了後にディレクトリを削除または上書きできます。同じファイルを生成する再実行は最新と見なされます。link: Claude Code はプラグインのキャッシュエントリを出力されたディレクトリの各最上位エントリへのリンクで満たし、ファイルを所定の位置で読み込みます。何もコピーされず、ファイルの内容はハッシュされず、サイズ制限は適用されません。コピーするには大きすぎるディレクトリ(レンダリングされた SDK エクスポートなど)に使用します。
- ディレクトリを所定の位置に保つ: Claude Code はすべての起動時にリンクを通じてプラグインを読み込むため、出力されたディレクトリはプラグインがインストールされている限り、その場所に留まる必要があります。
- 新しいコンテンツを通知するために異なるパスを出力: バージョンはファイル内の内容ではなく、出力されたディレクトリの実際のパスとその最上位エントリから取得されます。
- ディレクトリ内に最上位シンボリックリンクを保つ: 最上位エントリが出力されたディレクトリの外を指すシンボリックリンクの場合、インストールは失敗します。
node_modulesを含める: Claude Code はリンクモードプラグインのNode.js パッケージ依存関係インストールをスキップするため、プラグインが必要とするパッケージを既に含むディレクトリを出力してください。- ディレクトリ内で開始されたセッション: 出力されたディレクトリまたはその下の任意の場所で開始されたセッションはプラグインを読み込みません。
- Windows ではない: Claude Code は Windows でリンクモードプラグインのインストールを拒否します。そこで
"mode": "copy"を宣言してください。
マーケットプレイスソース
マーケットプレイスソースは Claude Code がmarketplace.json をどこからフェッチするかを指定します。CLI はマーケットプレイスを追加するときにあなたのために 1 つを構築し、設定で自分で 1 つを記述します:
claude plugin marketplace add: Claude Code は渡した文字列からソースを構築します。extraKnownMarketplaces:sourceオブジェクトとして自分でソースを記述します。strictKnownMarketplacesおよびblockedMarketplaces: 管理者はこれら 2 つのポリシーリストでソースを記述します。strictKnownMarketplacesは許可リストで、blockedMarketplacesは拒否リストです。
url、git、および github は、プラグインソース とは異なるマーケットプレイスソースで異なる意味を持ちます:
テーブルはすべてのマーケットプレイスソースタイプをそのフィールド、それを生成する
claude plugin marketplace add 入力、および 3 つの設定キーのそれぞれでの動作とともにリストします。
タイプ別フィールド
テーブルはデフォルト、制約、またはそのタイプに固有の意味を持つ各マーケットプレイスソースフィールドをリストします。ポリシーリストでのみ有効なソース値
hostPattern、pathPattern、skills-dir、および repo の owner/* フォームは、2 つのポリシーリスト strictKnownMarketplaces および blockedMarketplaces でのみ有効です:
hostPatternおよびpathPattern: Claude Code がソースをフェッチする前にテストする正規表現。skills-dir: ソースではありません。{"source": "skills-dir"}エントリなしでstrictKnownMarketplacesを設定すると、スキルディレクトリプラグイン は読み込まれなくなります。strictPluginOnlyCustomizationでいずれかのカスタマイズタイプをロックした場合は、エントリの有無にかかわらず読み込まれなくなります。owner/*:githubrepo値として、正確にその GitHub 所有者の下のすべてのリポジトリに一致します。Claude Code v2.1.223 以降が必要です。
ref セマンティクス、およびレシピについては、組織のプラグインを管理する を参照してください。
設定のソースオブジェクト
extraKnownMarketplaces 値はマーケットプレイス名から source を持つオブジェクトへのマップです。このエントリは main ブランチの git リポジトリからマーケットプレイスを登録します:
strictKnownMarketplaces および blockedMarketplaces はソースオブジェクトの配列です。この許可リストは 1 つの GitHub 所有者と 1 つの内部ホストを許可します:
検証メッセージ
claude plugin validate <path> はマーケットプレイスのルートまたはマーケットプレイスファイル自体を受け取ります。そのファイルをプラグインマニフェストではなく マーケットプレイスとして検証 させるには、ファイル名を marketplace.json にしてください。終了コードと --strict については、plugin validate を参照してください。
メッセージはプラグインエントリをそのインデックスで名前付けします。plugins.1.source または plugins[1].source として記述されます。
plugins[2] plugin.json → などのエントリインデックスと plugin.json → で始まるメッセージは、そのプラグイン自体のファイルに関するものです。claude plugin validate がエラーを報告する にはそれらのメッセージと修正方法が記載されています。
Claude Desktop フラグ名に言及する警告は、Claude Desktop が拒否するものです。
表はマーケットプレイスレベルのメッセージを、各メッセージが関連するフィールドにマッピングしています。
source の無効な入力
source の Invalid input は、オブジェクトがどのソースタイプにも一致しなかったことを意味します。以下の原因をチェックしてください。
..を含むnpmpackage- プラグインソース の 1 つではない
sourceタイプ githubにrepoがないなど、必須フィールドが欠落しているか、型が間違っている既知のタイプ
./ で始まらない相対パスは、"." または metadata.pluginRoot の下のベア名 を除き、Invalid string: must start with "./" で失敗します。v2.1.285 より前は、上記の原因と同様に Invalid input が出力されていました。
検証が検出しない失敗
claude plugin validate はすべての失敗を報告するわけではありません。ファイルパスまたは配列として記述されたエントリ hooks は検証に合格し、エラーはプラグインが読み込まれるときにのみ表示されます。エントリ内の Hooks で説明されているとおりです。source をフェッチするエラーも、検証時ではなく、インストール後にのみ表示されます。
claude plugin list は読み込みに失敗したプラグインをそのエラーとともに表示し、プラグインのトラブルシューティング は読み込み時の文字列をカバーしています。
次のステップ
- マーケットプレイスの作成: これらのフィールドからマーケットプレイスを構築し、ローカルからインストール
- マーケットプレイスのホストと保守: ファイルを配置する場所とユーザーが変更を受け取る方法
- プラグインマニフェストリファレンス: エントリがオーバーライドできる
plugin.jsonフィールド - 組織のプラグインを管理する: これらのソース値を使用する許可リストと拒否リストのレシピ