1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自分専用のClaude Code marketplaceを育てる

1
Last updated at Posted at 2026-01-11

目的

Claude Codeの拡張機能にSkillsやMCPがあります。それ以外にもHooksやSlash commandなどが今後のAI開発ツールのスタンダードとして勢いをさらに増していく雰囲気があります。特にSkillsは再利用可能な拡張機能として個人的にも期待しています。

さらにSkillsなどのほとんどの拡張機能はmarketplaceと呼ばれるパッケージ化・配布メカニズムを利用することで拡張機能の開発、再利用と配布の点で重要だと思われます。

まだ利用は始めたばかりなのですが、marketplaceを中心としたエコシステムについて現段階で可能なことを整理することで、今後の戦略に役立てようと思いました。

Claudeの拡張エコシステム

Claude Code の marketplaceとpluginとSkills(など)のパッケージングとデリバリーのメカニズムについて整理します。

まずはざっくりと全体像を確認しましょう。

下図で、3つのグループとして Claude Code のmarketplaceを中心とした拡張機能をながめてみましょう。

image.png

グループA はご自身のコンピュータにインストールしているClaude Codeの設定などが保存してある.claude フォルダーです。通常ユーザのホームディレクトリのすぐ下に配置してあります。

グループB はコンピュータ上に展開したプロジェクトで、大抵はgit clone project-x などとしてクローンしたGitのローカルレポジトリのことです。ここにも.claudeという名前のディレクトリを作成できます。marketplaceを利用するときにはこのディレクトリが設定の保存に使われます。

最後に グループC はネット上にある拡張ライブラリ群のことで、Claude Codeではライブラリ単体をmarketplaceと呼びます。marketplaceは一種のパッケージと考えていいでしょう。内部に一つもしくは複数のpluginを含めることができます(そしてpluginもパッケージとしてSkillsやMCPを含めることができます)。今回は自分が作成するmy-marketplaceというパッケージをローカルにインストールして使うシナリオを考えます。

marketplace をインストールする

まず、自分が開発・メンテナンスしているMCPやSkillsなどを含めたmarketplaceがあったとして、それを現在取り組んでいる別のプロジェクト(例:テトリスのゲーム)で利用したいとします。marketplaceはgithub などのレポジトリなのでURLで表します(例:https://github.com/someone/my-marketplace.git)

通常、このmarketplaceをインストールするには以下のコマンドをClaude Code内で実行します。

/plugin marketplace add https://github.com/someone/my-marketplace.git

この操作では2つのタスクが実行します。まずはgit clone でリポジトリがまるまるダウンロードされ、.claude/plugins/marketplaces ディレクトリに保存されます。次にknown_marketplaces.json ファイルに新たにダウンロードされたmarketplaceの情報が追加で書き込まれます。

image.png

known_marketplaces.jsonの例を以下に示します。ここでは2つのmarketplaceがインストールされているのが確認できます。

{
  "claude-plugins-official": {
    "source": {
      "source": "github",
      "repo": "anthropics/claude-plugins-official"
    },
    "installLocation": "/home/twatana/.claude/plugins/marketplaces/claude-plugins-official",
    "lastUpdated": "2026-01-11T03:23:41.632Z"
  },
  "my-marketplace": {
    "source": {
      "source": "github",
      "repo": "yoshiwatanabe/my-marketplace"
    },
    "installLocation": "/home/ywatanabe/.claude/plugins/marketplaces/tw-claude-marketplace-demo",
    "lastUpdated": "2026-01-10T23:45:00.000Z"
  }
}

これで、ダウンロードしたmarketplaceに含まれるpluginからいくつか選んで任意のプロジェクトに対してインストールできるようになりました。

重要!: marketplaceそのものは「入れ物」なのでプロジェクトにインストールできる実体はありません。あくまでもその内容であるpluginがインストールの対象です。またmarketplaces/という名前のディレクトリはユーザのホームディレクトリ下にある.claude/pluagins/marketplacesにのみにしか保存されません。

この段階でClaudeの/plugin コマンドを実行してmarketplaceをマネージすることができます(更新、削除、など)

plugin をプロジェクトにインストールする

Claude CodeのUIを使って任意のpluginを選んでインストールします
(下図はdemo-skillsという名前のpluginをインストールしています)

image.png

下図でインストール先選択肢としてInstall for you, in this repo only (local scope)を選んでいます。これは「このプロジェクトのみ」にインストールするという意味で、他の全てのプロジェクトにこのpluginが無条件でインストールされるのを防ぎます。

image.png

インストール後に、どのような変更が加えられたかを概念図で表します。

image.png

まず、当該プロジェクトに.claude ディレクトリが加えられます(まだ存在していなければですが)。そしてそのディレクトリ内にsettings.local.jsonという設定ファイルが作成されます。

{
  "enabledPlugins": {
    "demo-skills@my-marketplace": true
  }
}

これは図中の「矢印」で表している「参照」にあたります。

重要! pluginのインストール時にInstall for you, in this repo only (local scope) を選んだので「参照のみ」で実際のファイルなどは一切プロジェクトにコピーされていません。

また、これ以外にもさらに2つの変更が起こります。

まずはcacheディレクトリ内にmarketplaceのレポジトリのコピーが作成されます。これはnode_modudules のようなもので複数のバージョンがここで保存されます。こうすることで、仮に当該marketplaceがアンインストールされたとしてもプロジェクトに影響が及ばずに済みます。

最後に、installed_plugins.jsonにインストール先のプロジェクトのパスとpluginが記録されます。

{
  "version": 2,
  "plugins": {
    "demo-skills@my-marketplace": [
      {
        "scope": "local",
        "installPath": "/home/twatana/.claude/plugins/cache/my-marketplace/demo-skills/1.0.1",
        "version": "1.0.1",
        "installedAt": "2026-01-11T05:25:48.706Z",
        "lastUpdated": "2026-01-11T05:25:48.706Z",
        "projectPath": "/home/twatana/repos/project-x"
      }
    ]
  }
}

この辺りの詳細は理解する必要はありませんが、Claudeはファイルとディレクトリで設定が管理されるので、深堀すればすぐにその実体が見えるので理解しやすいです。

この構成で実現できるシナリオ

plugin (Skills, MCP 等)の開発サイクル

marketplaceのレポジトリでSkillsなどを開発しバージョン管理します。SkillsなどはローカルなSkillsとして開発とテストもできますが、その場合「配布」の段階でmarketplaceの構造に直してあげる手間がかかりますし、何よりもその手順でなんらかの失敗を引き起こす可能性もあります。もしmarketplaceとして配布する予定なら、初めからその構造でやると失敗が起こりにくくkなります(ただし、サイクル全体は遅くなります)

pluginにバージョンを指定することを忘れずに。

{
  "name": "demo-skills",
  "version": "1.0.1",
  "description": "[DEMO] Skill patterns: minimal, references, scripts, assets"
}

新しいバージョンへの更新はClaude Code内の/pluginコマンドで行えます。

image.png

個人用の1軍plugin (Skills, MCP 等)の一元管理

今後Skillsなどを自分用に開発していくとして、それをプロジェクトごとにコピペする作業は骨が折れます。また更新しても簡単に伝播していく道筋がありません。そこでmarketplaceとしてパッケージ単位で開発保守し、複数のプロジェクトだけでなく複数のマシンで同じSkillsなどを利用することができます。

チームでpluginライブライを共有する

前述したようにmarketplace は複数のplugin を格納できます。また利用側も複数のpluginのうち特定のものだけを選んでインストールすることができます。ライブラリのプラットフォームとしてとても良くできた仕組みだといえます。

この仕組みを使って、チームメンバーが重複して作成していたSkillsなども統合して管理できるようになります。

marketplaceの現段階での制約😢

ここまではいいことずくめのmarketplaceですが、ひとつだけ残念な点あります。それは認証が必要なレポジトリの利用が難しい、という点です。

これはClaude Code の/plugin marketplace add <git repo url> が裏でgit clone <git repo url> を実行する際にユーザとのインターアクションが出来ないことが原因で、Gitレポジトリ側からアクセス拒否が発生するからです。

私の調査した範囲では GCM(Git Credential Manager - OAuth2やMFAのフローを実行してアクセストークンをキャッシュしてくれるサービス)をインストールして、普通にgit が使える環境でも失敗します。

試しにSSHを試してみました。これは現時点では私の所属する会社のエンタープライズ版のGithubで試してみましたがうまくいきませんでした(ただ、パブリックのGithubのプライベートレポジトリではうまくいくかもしれません)。いずれにしてもSSHの設定というひと手間はない方が楽です。

現状、anonymousアクセスできるGithubレポジトリなどがスムーズにmarketplaceを利用できます。今後、この辺りは改善されることが期待されます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?