Claude Codeプラグイン入門|エコシステムの活用と自作プラグインの作り方

  • 1970年1月1日
  • 最終更新: 2026年4月25日
この記事の結論

Claude Codeのプラグインシステムは、AIエージェントの機能をモジュール単位で拡張できる仕組みです。コミュニティが公開するプラグインをインストールして即座に使うことも、自社の業務に特化したプラグインを自作して社内配布することもできます。Skills・Agents・Hooksを統合した「プラグイン」として開発することで、再利用性と可搬性が格段に向上します。

ブログ目次

記事の内容を、そのまま実務に落とし込みたい方向け

HubSpot導入、AI活用、CRM整備、業務効率化までをまとめて支援しています。記事で気になったテーマを、そのまま相談ベースで整理できます。


Claude Codeのプラグインシステムは、AIエージェントの機能をモジュール単位で拡張できる仕組みです。コミュニティが公開するプラグインをインストールして即座に使うことも、自社の業務に特化したプラグインを自作して社内配布することもできます。Skills・Agents・Hooksを統合した「プラグイン」として開発することで、再利用性と可搬性が格段に向上します。



この記事でわかること

Claude Codeのプラグインシステムを活用して機能を拡張したい開発者に向けた記事です。

  • Claude Codeプラグインシステムの全体像と、Skills・Agents・Hooksとの関係性 — ClaudeCodeのプラグインシステムは、AIエージェントに新しい能力を追加するための公式な拡張メカニズムです。
  • プラグインマーケットプレイスの使い方とインストール手順 — ClaudeCodeには、コミュニティが公開するプラグインをブラウズ・インストールできるマーケットプレイスが用意されています。
  • plugin.json の構造と、各フィールドの設定方法 — 既存のスキルやエージェント定義を、、ディレクトリに配置します。
  • LSP(Language Server Protocol)統合によるエディタ連携の仕組み — LSP(LanguageServerProtocol)は、エディタとプログラミング言語のサービスを接続するための標準プロトコルです。
  • 自作プラグインの開発から配布までのワークフロー — ClaudeCodeプラグインは、以下のディレクトリ構造に従って作成します。

プラグインシステムとは

Claude Codeのプラグインシステムは、AIエージェントに新しい能力を追加するための公式な拡張メカニズムです。VS CodeやJetBrainsの拡張機能と同じ発想で、「Claude Codeの基本機能にサードパーティ製の機能を追加する」ことを可能にします。

プラグインは、これまで個別に管理していたSkills(再利用可能な自動化ツール)、Agents(カスタムエージェント定義)、Hooks(ライフサイクルフック)を1つのパッケージにまとめたものです。たとえば「HubSpot連携プラグイン」であれば、HubSpot APIの操作スキル、CRM設定専門エージェント、API呼び出し前のレート制限チェックフックを1つのプラグインとして配布できます。


プラグインの基本構造

ディレクトリ構成

Claude Codeプラグインは、以下のディレクトリ構造に従って作成します。

my-plugin/
├── plugin.json          ← プラグインのメタデータと設定
├── README.md            ← 使い方ドキュメント
├── skills/              ← スキル定義(オプション)
│   └── my-skill.md
├── agents/              ← エージェント定義(オプション)
│   └── my-agent.md
├── hooks/               ← フック定義(オプション)
│   └── pre-commit-check.sh
├── commands/            ← カスタムコマンド(オプション)
│   └── my-command.md
└── assets/              ← 静的ファイル(テンプレート等)
    └── template.html

plugin.jsonの構造

plugin.json はプラグインの中核となる設定ファイルです。

{
  "name": "hubspot-toolkit",
  "version": "1.2.0",
  "description": "HubSpot CRM操作を自動化するClaude Codeプラグイン",
  "author": "StartLink Inc.",
  "license": "MIT",
  "engine": "claude-code >= 1.0.0",
  "main": "skills/hubspot-operations.md",
  "skills": [
    "skills/property-creator.md",
    "skills/blog-publisher.md",
    "skills/lead-scoring.md"
  ],
  "agents": [
    "agents/crm-operator.md"
  ],
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "command": "hooks/rate-limit-check.sh"
      }
    ]
  },
  "commands": [
    "commands/publish-article.md"
  ],
  "dependencies": [],
  "config": {
    "hubspot_portal_id": {
      "type": "string",
      "required": true,
      "description": "HubSpotポータルID"
    },
    "api_rate_limit": {
      "type": "number",
      "default": 100,
      "description": "10秒あたりのAPIリクエスト上限"
    }
  }
}

plugin.jsonフィールド一覧

フィールド 必須 説明
name string はい プラグインの一意な識別名(npm式のkebab-case)
version string はい セマンティックバージョニング(例: 1.2.0)
description string はい プラグインの概要説明
author string はい 作者名または組織名
license string はい ライセンス種別
engine string いいえ 必要なClaude Codeの最低バージョン
main string いいえ エントリポイントとなるスキルファイル
skills array いいえ 含まれるスキルファイルのパスリスト
agents array いいえ 含まれるエージェント定義のパスリスト
hooks object いいえ フック定義(settings.jsonと同じ形式)
commands array いいえ カスタムコマンドのパスリスト
dependencies array いいえ 依存する他プラグインのリスト
config object いいえ ユーザー設定可能なパラメータ定義

プラグインマーケットプレイスの使い方

プラグインの検索とインストール

Claude Codeには、コミュニティが公開するプラグインをブラウズ・インストールできるマーケットプレイスが用意されています。

# マーケットプレイスでプラグインを検索
claude plugin search "hubspot"

# プラグインの詳細情報を表示
claude plugin info hubspot-toolkit

# プラグインをインストール
claude plugin install hubspot-toolkit

# 特定バージョンを指定してインストール
claude plugin install hubspot-toolkit@1.2.0

# インストール済みプラグイン一覧
claude plugin list

# プラグインのアップデート
claude plugin update hubspot-toolkit

# プラグインのアンインストール
claude plugin uninstall hubspot-toolkit

インストール先のディレクトリ

プラグインは2つのスコープでインストールできます。

スコープ インストール先 適用範囲 コマンド
プロジェクト .claude/plugins/ 当該プロジェクトのみ claude plugin install --project
グローバル ~/.claude/plugins/ 全プロジェクト共通 claude plugin install --global

プロジェクト固有の要件に関わるプラグインは --project で、汎用的なユーティリティプラグインは --global でインストールするのが推奨パターンです。


LSP統合によるエディタ連携

LSPとは

LSP(Language Server Protocol)は、エディタとプログラミング言語のサービスを接続するための標準プロトコルです。Claude Codeプラグインは、LSPを通じてVS CodeやNeovimなどのエディタとリアルタイムに連携できます。

LSP統合の仕組み

Claude Codeのプラグインは、LSPサーバーとして動作することで、エディタ上での操作をClaude Codeのスキルやエージェントに橋渡しします。

エディタ(VS Code等)
    ↓ LSPプロトコル
Claude Code LSPサーバー
    ↓ プラグインAPI
プラグイン(Skills / Agents / Hooks)
    ↓ ツール呼び出し
ファイルシステム / API / Bash

具体的な連携例としては、以下のような活用が可能です。

  • コード補完: プラグインが定義するカスタムコマンドをエディタの補完候補として表示
  • 診断(Diagnostics): フックが検出したコード品質の問題をエディタの警告として表示
  • コードアクション: エディタ上で右クリック→「Claude Codeで修正」を選択して、プラグインのスキルを実行

実務での活用パターン

パターン1: BtoBマーケティング自動化プラグインの開発

SEO記事の制作パイプラインをプラグインとして1つにまとめれば、チーム全体で同じワークフローを共有できます。Claude Codeによる経営データの可視化コンテンツマーケティングの支援でも、こうした手法が活用されています。

プラグイン構成例: btob-content-pipeline

btob-content-pipeline/
├── plugin.json
├── skills/
│   ├── keyword-research.md      ← キーワード調査
│   ├── article-generator.md     ← 記事生成
│   └── seo-optimizer.md         ← SEO最適化
├── agents/
│   └── content-reviewer.md      ← 品質レビューエージェント
├── hooks/
│   └── word-count-check.sh      ← 文字数チェック(3,000文字以上)
└── commands/
    └── publish-article.md       ← 記事公開コマンド

Before(プラグインなし): スキル定義、エージェント定義、フック設定がプロジェクト内にバラバラに散在。新メンバーが参加するたびに設定方法をドキュメントで案内。

After(プラグインあり): claude plugin install btob-content-pipeline の1コマンドで環境構築完了。バージョン管理もプラグイン単位で行える。

パターン2: CRM連携プラグインの社内配布

HubSpot CRMの設定作業を自動化するプラグインを社内で開発・配布する例です。

{
  "name": "hubspot-crm-automation",
  "version": "2.0.0",
  "description": "HubSpot CRMのプロパティ作成、ワークフロー設定、リードスコアリングを自動化",
  "config": {
    "portal_id": {
      "type": "string",
      "required": true,
      "description": "HubSpotポータルID(本番環境)"
    },
    "demo_portal_id": {
      "type": "string",
      "required": false,
      "description": "HubSpotデモポータルID(スクショ撮影用)"
    }
  }
}

社内プライベートレジストリにプラグインを公開すれば、claude plugin install hubspot-crm-automation --registry internal でインストールできます。API認証情報は config フィールドで環境変数として注入するため、機密情報がプラグインのコードに含まれることはありません。

パターン3: テスト・CI統合プラグイン

テスト実行とCI/CDパイプラインとの統合をプラグインで管理する例です。

ci-integration/
├── plugin.json
├── hooks/
│   ├── pre-push-test.sh         ← push前にテスト自動実行
│   └── post-commit-lint.sh      ← commit後にlint自動実行
├── agents/
│   └── test-specialist.md       ← テスト専門エージェント
└── commands/
    └── run-full-suite.md        ← フルテストスイート実行

Before: Hooksの設定を settings.json で管理、テストエージェントを agents/ で管理、と分散。

After: ci-integration プラグインとして統合。テスト関連の全設定がバージョン管理された1つのパッケージに収まる。


自作プラグインの開発手順

ステップ1: プラグインの雛形を作成

# プラグイン雛形を自動生成
claude plugin init my-plugin

# 対話形式で設定を入力
# → name, description, author, licenseなどを指定

ステップ2: スキル・エージェント・フックを追加

既存のスキルやエージェント定義を skills/agents/hooks/ ディレクトリに配置します。

ステップ3: plugin.jsonにエントリを登録

各ファイルのパスを plugin.json の対応するフィールドに追加します。

ステップ4: ローカルテスト

# ローカルのプラグインディレクトリから直接読み込み
claude --plugin ./my-plugin/

# プラグインが正しく読み込まれたか確認
claude plugin validate ./my-plugin/

ステップ5: パッケージング・配布

# プラグインをパッケージング
claude plugin pack ./my-plugin/
# → my-plugin-1.0.0.tar.gz が生成

# マーケットプレイスに公開(アカウント登録が必要)
claude plugin publish ./my-plugin/

# 社内レジストリに公開
claude plugin publish ./my-plugin/ --registry internal

関連コマンドとの組み合わせ

カスタムコマンドとの関係

カスタムコマンドはプラグインの一部として同梱できます。単独で使うカスタムコマンドは .claude/commands/ に配置しますが、複数のスキルやエージェントと連携するコマンドはプラグインにまとめることで、依存関係を明示的に管理できます。

MCPサーバーとの連携

Claude CodeのMCP(Model Context Protocol)サーバーをプラグインから呼び出すことで、外部サービスとの連携をプラグインに組み込めます。たとえば、HubSpot MCPサーバー、freee MCPサーバー、Notion MCPサーバーへのアクセスをプラグインの dependencies として宣言できます。

Hooksとの統合

Claude Code Hooksの設定は plugin.jsonhooks フィールドに直接記述できます。プラグインをインストールすると、定義されたフックが自動的に settings.json にマージされるため、ユーザーが手動でフック設定を追加する手間が省けます。


あわせて読みたい


まとめ

Claude Codeのプラグインシステムは、Skills・Agents・Hooks・Commandsを1つのパッケージにまとめて配布・管理できる拡張メカニズムです。plugin.json でメタデータとエントリポイントを定義し、マーケットプレイスまたは社内レジストリを通じて共有できます

実践にあたっては、以下のポイントを押さえておくことが大切です。

  • BtoBマーケティングの記事制作パイプライン、HubSpot CRM自動化、テスト・CI統合など、業務に特化したプラグインを開発することで、チーム全体の生産性を底上げできます
  • *Claude Codeの全コマンド一覧はClaude Codeチートシートをご覧ください
  • AI活用の全体像はAI活用完全ガイドで解説しています

よくある質問(FAQ)

Q1. プラグインとMCPサーバーの違いは何ですか?

MCPサーバーは「外部データソースとの接続」を提供する仕組みで、HubSpot・freee・Notionなどの外部サービスからデータを取得するためのインターフェースです。プラグインは「Claude Codeの機能拡張」を行う仕組みで、MCPサーバー経由で取得したデータをどう処理するかのロジック(スキル・エージェント・フック)を定義します。多くの場合、プラグインがMCPサーバーを dependencies として利用する構成になります。

Q2. プラグインのセキュリティはどう担保されていますか?

マーケットプレイスに公開されるプラグインは、Anthropicによるセキュリティレビューを通過したもののみです。また、プラグインのインストール時にはrequired permissionsが表示され、ユーザーが明示的に承認するフローになっています。自社開発プラグインの場合は、isolation フィールドと tools ホワイトリストで権限を最小化することを推奨します。

Q3. 既存のSkillsやCommandsをプラグインに移行するにはどうすればよいですか?

claude plugin init で雛形を作成し、既存の .claude/commands/.claude/agents/ のファイルをプラグインの対応ディレクトリにコピーするだけです。plugin.json のエントリにファイルパスを追加すれば移行完了です。スキルのMarkdownファイルは書式変更なしでそのまま使用できます。

Q4. プラグインの依存関係はどう管理されますか?

plugin.jsondependencies フィールドに依存プラグインの名前とバージョン範囲を指定します。claude plugin install 実行時に依存プラグインも自動的にインストールされます。npm/yarnの依存関係管理と同じ発想で、セマンティックバージョニングによる互換性管理が行われます。


株式会社StartLinkは、事業推進に関わる「販売促進」「DXによる業務効率化(ERP/CRM/SFA/MAの導入)」などのご相談を受け付けております。 サービスのプランについてのご相談/お見積もり依頼や、ノウハウのお問い合わせについては、無料のお問い合わせページより、お気軽にご連絡くださいませ。

関連キーワード:

サービス資料を無料DL

著者情報

7-1

今枝 拓海 / Takumi Imaeda

株式会社StartLink 代表取締役。累計150社以上のHubSpotプロジェクト支援実績を持ち、Claude CodeやHubSpotを軸にしたAI活用支援・経営基盤AXのコンサルティング事業を展開。
HubSpotのトップパートナー企業や大手人材グループにて、エンタープライズCRM戦略策定・AI戦略ディレクションを経験した後、StartLinkを創業。現在はCRM×AIエージェントによる経営管理支援を専門とする。