
社内 Claude Code Plugin マーケットプレイスで別リポジトリのプラグインを参照・配布する
Claude Code の Plugin マーケットプレイスを使うと、チーム内でスキルや MCP サーバーをまとめて配布できます。
しかし、1つのマーケットプレイスリポジトリにすべてのプラグインを同居・集約していくと、管理が煩雑になりがちです。 ドメインやカテゴリが異なるプラグインが混在し、メンテナーの責任範囲も曖昧になります。
調べたところ、 marketplace.json の source フィールドで外部リポジトリを参照できるとのこと。 これだとリポジトリを分離したまま、単一マーケットプレイス経由でプラグインを配布できます。
本記事では、この仕組みを使って別リポジトリのスキルを 社内マーケットプレイスから配布する方法を紹介します。
Claude Code プラグインとマーケットプレイス
Claude Code の プラグイン は、スキル・MCP サーバー・フック・エージェント・コマンドなどを パッケージとしてまとめて配布する仕組みです。
プラグインの基本構成は以下のとおりです。
my-plugin/
├── .claude-plugin/
│ └── plugin.json # プラグイン定義(名前・説明・バージョン)
├── skills/ # スキル
├── agents/ # エージェント
├── commands/ # コマンド
├── hooks/ # フック
└── .mcp.json # MCP サーバー設定
マーケットプレイス は、複数のプラグインをカタログ(目録)として一覧管理・配布するための仕組みです。 マーケットプレイス自体はプラグインの中身を持たず、「どのプラグインがどこにあるか」を指し示すだけです。 .claude-plugin/marketplace.json にプラグイン一覧を定義します。 利用者は /plugin marketplace add からマーケットプレイスを登録して、 /plugin install で個別プラグインをインストールできます。
別リポジトリのプラグインを参照する
marketplace.json の plugins 配列では、各プラグインの source フィールドでソースの場所を指定します。 同一リポジトリ内の相対パス( "./" )だけでなく、外部リポジトリを指す複数のソースタイプがサポートされています。
サポートされているソースタイプは以下のとおりです(公式ドキュメント)。
| ソース | 型 | 説明 |
|---|---|---|
| 相対パス | string |
マーケットプレイスリポジトリ内のディレクトリ("./") |
github |
object |
GitHub リポジトリ(owner/repo 形式) |
url |
object |
Git リポジトリ URL(.git 終端) |
git-subdir |
object |
Git リポジトリ内のサブディレクトリ |
npm |
object |
npm パッケージ |
pip |
object |
pip パッケージ |
例えば url ソースを使うと、HTTPS 経由で外部リポジトリを参照できます。 以下 GitHub の例です。
{
"name": "my-external-plugin",
"description": "External plugin from another repository",
"source": {
"source": "url",
"url": "https://github.com/{owner}/{repo}.git"
}
}
ref や sha フィールドで特定のブランチ・タグ・コミットに固定することもできます。 (デフォルトはリポジトリのデフォルトブランチ)
実際にやってみた
以下の2つのリポジトリを使って、 別リポジトリのスキルをマーケットプレイス経由で配布してみます。
| リポジトリ | 役割 |
|---|---|
sample-cc-marketplace |
マーケットプレイス本体。ユーザーが登録するのはこれだけ |
sample-cc-plugin |
外部プラグイン(サンプルスキル1つ入り) |
プラグインリポジトリの設定
まず、外部プラグイン側の sample-cc-plugin リポジトリにプラグイン構造を追加します。
sample-cc-plugin/
├── .claude-plugin/
│ └── plugin.json
└── skills/
└── joke/
└── SKILL.md
plugin.json でプラグインの名前と説明を定義します。
{
"name": "sample-tools-from-other-repo",
"description": "Sample Claude Code skill plugin",
"version": "1.0.0"
}
SKILL.md でスキルの内容を記述します。今回はシンプルにジョークを言うスキルを作りました。
---
description: Tell the user a funny joke
---
Tell the user a light-hearted, funny joke to brighten their day.
マーケットプレイス側の設定
次に、マーケットプレイス側の sample-cc-marketplace リポジトリにて、 marketplace.json へ外部リポジトリの参照を追加します。
plugins 配列に source: url エントリを追加し、HTTPS の Git URL を指定します。
{
"name": "sample-marketplace",
"owner": { "name": "{owner-name}" },
"plugins": [
{
"name": "sample-tools-from-other-repo",
"description": "Sample plugin from external repository (sample-cc-plugin)",
"source": {
"source": "url",
"url": "https://github.com/{owner}/sample-cc-plugin.git"
}
}
]
}
インストールして使ってみる
Claude Code を起動して /plugin を実行後、 [Marketplaces > + Add Marketplace] を選択します。

Marketplacesタブから「+ Add Marketplace」を選択
マーケットプレイスのURL( https://github.com/{owner}/{repo} )を記載してEnterを押下します。

マーケットプレイスリポジトリのURLを入力
これでマーケットプレイスの登録ができました。 ブラウズ ( Browse plugins )してみます。 プラグインリポジトリのツール ( sample-tools-from-other-repo )を確認できました。

Discoverタブで外部リポジトリのプラグインが表示された
導入後、スキル実行も確認できました。

外部プラグインのjokeスキルを実行した結果
おわりに
複数リポジトリでマーケットプレイスとプラグインを構成してみました。 今回は url ソースを使いましたが、 github や git-subdir ソースでも外部リポジトリを参照できます。
少人数であれば単一リポジトリ運用でも問題ないと思いますが、 ある程度の規模になってきたときはリポジトリを分け、 ドメインやカテゴリごとにプラグインを管理するのが良い気がしました。 それぞれのリポジトリにメンテナーを割り当てることで、責任範囲が明確になります。
| リポジトリ例 | 役割 | メンテナー |
|---|---|---|
| マーケットプレイス本体 | marketplace.json にてカタログ管理 |
マケプレ管理チーム |
| プリセ・提案支援プラグイン | プリセ・提案で役立つスキルやコマンドを開発 | プリセが強いチーム |
| Terraform 支援プラグイン | Terraform コーディングで役立つスキルやコマンドを開発 | Terraformが強いチーム |
| 執筆支援プラグイン | 執筆で役立つスキルやコマンドを開発 | たくさん執筆しているチーム |
| ... | ... | ... |
以上、参考になれば幸いです。







