Claude Codeのプラグインシステムは、AIエージェントの機能をモジュール単位で拡張できる仕組みです。コミュニティが公開するプラグインをインストールして即座に使うことも、自社の業務に特化したプラグインを自作して社内配布することもできます。Skills・Agents・Hooksを統合した「プラグイン」として開発することで、再利用性と可搬性が格段に向上します。
Claude Codeのプラグインシステムは、AIエージェントの機能をモジュール単位で拡張できる仕組みです。コミュニティが公開するプラグインをインストールして即座に使うことも、自社の業務に特化したプラグインを自作して社内配布することもできます。Skills・Agents・Hooksを統合した「プラグイン」として開発することで、再利用性と可搬性が格段に向上します。
ブログ目次
HubSpot導入、AI活用、CRM整備、業務効率化までをまとめて支援しています。記事で気になったテーマを、そのまま相談ベースで整理できます。
Claude Codeのプラグインシステムは、AIエージェントの機能をモジュール単位で拡張できる仕組みです。コミュニティが公開するプラグインをインストールして即座に使うことも、自社の業務に特化したプラグインを自作して社内配布することもできます。Skills・Agents・Hooksを統合した「プラグイン」として開発することで、再利用性と可搬性が格段に向上します。
Claude Codeのプラグインシステムを活用して機能を拡張したい開発者に向けた記事です。
plugin.json の構造と、各フィールドの設定方法 — 既存のスキルやエージェント定義を、、ディレクトリに配置します。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 はプラグインの中核となる設定ファイルです。
{
"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リクエスト上限"
}
}
}
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
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(Language Server Protocol)は、エディタとプログラミング言語のサービスを接続するための標準プロトコルです。Claude Codeプラグインは、LSPを通じてVS CodeやNeovimなどのエディタとリアルタイムに連携できます。
Claude Codeのプラグインは、LSPサーバーとして動作することで、エディタ上での操作をClaude Codeのスキルやエージェントに橋渡しします。
エディタ(VS Code等)
↓ LSPプロトコル
Claude Code LSPサーバー
↓ プラグインAPI
プラグイン(Skills / Agents / Hooks)
↓ ツール呼び出し
ファイルシステム / API / Bash
具体的な連携例としては、以下のような活用が可能です。
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コマンドで環境構築完了。バージョン管理もプラグイン単位で行える。
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 フィールドで環境変数として注入するため、機密情報がプラグインのコードに含まれることはありません。
テスト実行と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つのパッケージに収まる。
# プラグイン雛形を自動生成
claude plugin init my-plugin
# 対話形式で設定を入力
# → name, description, author, licenseなどを指定
既存のスキルやエージェント定義を skills/、agents/、hooks/ ディレクトリに配置します。
各ファイルのパスを plugin.json の対応するフィールドに追加します。
# ローカルのプラグインディレクトリから直接読み込み
claude --plugin ./my-plugin/
# プラグインが正しく読み込まれたか確認
claude plugin validate ./my-plugin/
# プラグインをパッケージング
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/ に配置しますが、複数のスキルやエージェントと連携するコマンドはプラグインにまとめることで、依存関係を明示的に管理できます。
Claude CodeのMCP(Model Context Protocol)サーバーをプラグインから呼び出すことで、外部サービスとの連携をプラグインに組み込めます。たとえば、HubSpot MCPサーバー、freee MCPサーバー、Notion MCPサーバーへのアクセスをプラグインの dependencies として宣言できます。
Claude Code Hooksの設定は plugin.json の hooks フィールドに直接記述できます。プラグインをインストールすると、定義されたフックが自動的に settings.json にマージされるため、ユーザーが手動でフック設定を追加する手間が省けます。
Claude Codeのプラグインシステムは、Skills・Agents・Hooks・Commandsを1つのパッケージにまとめて配布・管理できる拡張メカニズムです。plugin.json でメタデータとエントリポイントを定義し、マーケットプレイスまたは社内レジストリを通じて共有できます
実践にあたっては、以下のポイントを押さえておくことが大切です。
MCPサーバーは「外部データソースとの接続」を提供する仕組みで、HubSpot・freee・Notionなどの外部サービスからデータを取得するためのインターフェースです。プラグインは「Claude Codeの機能拡張」を行う仕組みで、MCPサーバー経由で取得したデータをどう処理するかのロジック(スキル・エージェント・フック)を定義します。多くの場合、プラグインがMCPサーバーを dependencies として利用する構成になります。
マーケットプレイスに公開されるプラグインは、Anthropicによるセキュリティレビューを通過したもののみです。また、プラグインのインストール時にはrequired permissionsが表示され、ユーザーが明示的に承認するフローになっています。自社開発プラグインの場合は、isolation フィールドと tools ホワイトリストで権限を最小化することを推奨します。
claude plugin init で雛形を作成し、既存の .claude/commands/ や .claude/agents/ のファイルをプラグインの対応ディレクトリにコピーするだけです。plugin.json のエントリにファイルパスを追加すれば移行完了です。スキルのMarkdownファイルは書式変更なしでそのまま使用できます。
plugin.json の dependencies フィールドに依存プラグインの名前とバージョン範囲を指定します。claude plugin install 実行時に依存プラグインも自動的にインストールされます。npm/yarnの依存関係管理と同じ発想で、セマンティックバージョニングによる互換性管理が行われます。
株式会社StartLinkは、事業推進に関わる「販売促進」「DXによる業務効率化(ERP/CRM/SFA/MAの導入)」などのご相談を受け付けております。 サービスのプランについてのご相談/お見積もり依頼や、ノウハウのお問い合わせについては、無料のお問い合わせページより、お気軽にご連絡くださいませ。
株式会社StartLink 代表取締役。累計150社以上のHubSpotプロジェクト支援実績を持ち、Claude CodeやHubSpotを軸にしたAI活用支援・経営基盤AXのコンサルティング事業を展開。
HubSpotのトップパートナー企業や大手人材グループにて、エンタープライズCRM戦略策定・AI戦略ディレクションを経験した後、StartLinkを創業。現在はCRM×AIエージェントによる経営管理支援を専門とする。