Claude Codeプラグインの作り方と公開のしかた

この記事はプラグイン解説シリーズの2本目、「作る側」の話です。プラグインが何かをまだ押さえていない方は、先に「Claude Codeプラグインとは?」を読むとスムーズです。

標準で用意されたツールだけでは、自分たちの業務をカバーしきれないことがよくあります。そんなときは、自分の環境に合わせてプラグインを自作するのが結局いちばん確実です。とはいえ手順はシンプルなので、順番に見ていきましょう。

まずは「スキル」として作って固める

いきなりプラグインの形を目指す必要はありません。まずは普通の「スキル」として作業をやらせ、「この手順でやって → ここが違う → これでOK、完成」というやり取りを繰り返して、動きを固めます。

動きが固まったら、Claude に「プラグイン化して」と頼みます。すると、フォルダ構成や MCP の設定の階層など、パッケージとして必要なレイアウトに整え直してくれます。プラグインは単一のファイルではなく、複数のファイルの集まりになる点がスキルとの違いです。

プラグインは比較的新しい機能なので、公式ドキュメントを参照しながら進めるのが安全です。Claude Code には「プラグイン作成を支援するスキル」も用意されているので、それを呼び出すと雛形づくりがかなり楽になります。

プラグインの最小構成(各ファイルの意味)

プラグインの正体は、plugin.json というマニフェスト1枚と、決められた場所に置いた部品だけです。ディレクトリ構成は次のようになります。

my-plugin/
  .claude-plugin/plugin.json   ← マニフェスト(name が必須)
  skills/                      ← スキル
  commands/                    ← スラッシュコマンド
  agents/                      ← サブエージェント
  hooks/hooks.json             ← フック
  .mcp.json                    ← MCP サーバー

注意したいのは、skills/hooks/ などは .claude-plugin/ の「中」ではなく、プラグインのルート直下に置く点です。.claude-plugin/ の中に入れるのは plugin.json だけです。

各ファイルの役割は次のとおりです。

ファイル / フォルダ意味
.claude-plugin/plugin.jsonプラグインのマニフェスト。name が必須で、descriptionversion は付けておくのがおすすめ(管理画面に表示される)
skills/, commands/, agents/, hooks/スキル・コマンド・サブエージェント・フックなどの部品
.mcp.json同梱する MCP サーバーの起動方法を書く設定
.claude-plugin/marketplace.json配布用のカタログ(公開する場合に用意。後述)

手元で確認する

作ったら、公開する前に手元で動作を確認できます。

# プラグインの構成(plugin.json など)が正しいかチェック
claude plugin validate ./my-plugin

# インストールせずに、その場で読み込んで試す
claude --plugin-dir ./my-plugin

公開する(チームに配る)

配布したい場合は、プラグイン本体とは別に マーケットプレイス(配布カタログ) を用意します。これは .claude-plugin/marketplace.json というファイルで、どんなプラグインがあるかの一覧を書いたものです。プラグイン本体の plugin.json とは役割が別なので混同しないようにしましょう。

{
  "name": "team-marketplace",
  "owner": { "name": "Your Team" },
  "plugins": [
    { "name": "my-plugin", "source": "./my-plugin" }
  ]
}

必須は name / owner / plugins で、各プラグインは namesource(プラグインの置き場所)を持ちます。これを git リポジトリに push すれば配布できます。インターネット全体に公開する必要はありません。組織内のリポジトリに置いておけば、そこにアクセスできる人だけがインストールできるので、社内ツールの配布にちょうど良い形です。

公開したプラグインを、使う側がどうインストールして使うのかは、3本目の記事でくわしく解説します。

設計のヒント:プラグインの「粒度」

作るときに地味に悩むのが、1つのプラグインにどこまで詰め込むか、という「粒度」です。

1つのプラグインに何でも詰め込むと、たとえば「見積もりを作って」と頼んだのに、関係のない別の処理まで動いてしまう、といった想定外の動作を誘発しやすくなります。

そこでおすすめなのは、1つ1つのスキル(プラグイン)のスコープは小さく保ち、一連の流れは「まずAを呼ぶ → 次にBを呼ぶ」と組み立てる“ワークフロー役”のスキルでまとめるやり方です。小さく作っておけば使い回しが効き、誤動作のリスクも下げられます。

まとめ

  • まずは普通のスキルとして動きを固め、最後に「プラグイン化して」と頼むのが作りやすい
  • プラグインの正体は plugin.json(必須は name)+ 決められた場所に置いた部品
  • claude plugin validate ./my-plugin--plugin-dir で公開前に確認できる
  • 配布は、プラグイン本体とは別の marketplace.json(配布カタログ)+ git(社内リポジトリでも可)
  • プラグインの粒度は小さく保ち、ワークフロー役のスキルで束ねると安全

プラグインの基本については1本目の記事を、作ったプラグインをインストールして使う手順は3本目の記事をどうぞ。

参考・出典

本記事の技術的な内容は、Anthropic の公式ドキュメントに基づいています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です