mcpField
P
plugins-management

plugins-management

github.com/codealive-aiエージェントワークフロー16740 回インストール今日更新
リポジトリ

plugins-management について

plugins-managementは、コーディングエージェント向けプラグインの作成、検証、公開、導入、削除を扱うスキルです。Claude CodeとOpenCodeの手順に加え、Devinの設定やディレクトリへの申請も案内します。

主な機能

  1. 01プラグインとマーケットプレイス設定の作成
  2. 02マニフェストと構成要素の検証
  3. 03リリースとディレクトリ申請の準備
  4. 04Claude CodeとOpenCodeのプラグイン管理
  5. 05Devinプラグイン設定の案内

活用シーン

  1. 01スキルやフックを含むプラグインの初期化
  2. 02プラグインのマニフェストとMCP設定の確認
  3. 03Anthropic公式ディレクトリへの申請準備
  4. 04OpenCodeまたはDevinプラグインの管理

MCP 対応

Claude CodeプラグインへのMCPサーバー設定の追加方法と、関連設定の検証手順を説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/codealive-ai/ai-driven-development --skill plugins-management

インストール後、Claude Code で/plugins-managementを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/templates/
marketplace.json.template
plugin.json.template
references/
opencode-plugins.md
plugin-guide.md
scripts/
init_marketplace.py
init_plugin.py
prepare_submission.py
validate_plugin.py

詳細

プラグインマネージャー

コーディングエージェント全体のプラグインを管理します。作成、検証、公開、削除のほか、公式ディレクトリや npm への登録を行います。

対応エージェント:

  • Claude Code:.claude-plugin/plugin.json ベースのプラグイン。マーケットプレイス経由で配布します
  • OpenCode:.opencode/plugins/ 内の TypeScript/JavaScript プラグイン、または opencode.json に記載された npm パッケージ
  • Devin CLI / Desktop:プラグインソース(GitHub リポジトリ、git URL、git-subdir、ローカルフォルダー)内の .devin-plugin/plugin.json マニフェスト。スキル(<plugin>:<skill> スラッシュコマンド)、AGENTS.md/rules/、agents/ サブエージェント、hooks.json、.mcp.json をひとまとまりとしてインストールします。devin plugins コマンドで管理します。プラグインは Devin のクラウドセッションにも適用されますが、サーフェスごとの制限を受けます。このスキルのスクリプトは Claude/OpenCode のマニフェストを対象としています。Devin の場合は Devin のドキュメントに従って .devin-plugin/plugin.json を手動で作成してください。

重要:削除、アンインストール、または除去を行う前に、必ず AskUserQuestion ツールを使用してユーザーに確認してください。明示的な確認なしに、プラグインを削除/アンインストールしたり、マーケットプレイスを削除したりしてはいけません。

クイックリファレンス

タスクコマンド/スクリプト
プラグインを作成python scripts/init_plugin.py <name>
マーケットプレイスを作成python scripts/init_marketplace.py <name>
プラグインを検証python scripts/validate_plugin.py <path>
マーケットプレイスを検証claude plugin validate <path>
登録を準備python scripts/prepare_submission.py <path> --email X --company-url Y
プラグインをインストール/plugin install <name>@<marketplace>
プラグインを削除/plugin uninstall <name>@<marketplace>
プラグインをテスト(開発)claude --plugin-dir ./my-plugin
編集後に再読み込み/reload-plugins
リリースタグを作成claude plugin tag --push
インストール済みを一覧表示claude plugin list [--json] [--available]
プラグインを更新claude plugin update <name>@<marketplace>

ワークフロー

1. 新しいプラグインを作成
# Basic plugin with commands
python scripts/init_plugin.py my-plugin --path ./

# Full plugin with all components
python scripts/init_plugin.py my-plugin --path ./ --all

# Specific components
python scripts/init_plugin.py my-plugin --with-agents --with-skills

フラグ:

  • --with-commands(デフォルト):commands ディレクトリを含めます
  • --with-agents:agents ディレクトリを含めます
  • --with-skills:skills ディレクトリを含めます
  • --with-hooks:hooks 設定を含めます
  • --with-mcp:MCP サーバー設定を含めます
  • --all:すべてのコンポーネントを含めます
  • --author "Name":作成者名を設定します

作成後:

  1. .claude-plugin/plugin.json を編集してプラグインの詳細を設定します
  2. YAML フロントマター付きで commands/*.md にコマンドを追加します
  3. 必要に応じて agents/*.md にエージェントを追加します
  4. ドキュメントを記載して README.md を更新します
2. マーケットプレイスを作成
# Empty marketplace
python scripts/init_marketplace.py my-marketplace --path ./

# With initial plugin
python scripts/init_marketplace.py my-marketplace --with-plugin my-plugin

作成後:

  1. .claude-plugin/marketplace.json を編集します
  2. plugins/ ディレクトリにプラグインを追加します
  3. GitHub にプッシュします:git push origin main

ユーザーは次のコマンドでインストールします:

/plugin marketplace add username/my-marketplace

マーケットプレイスの参照:

  • 必須ファイル:.claude-plugin/marketplace.json
  • プラグインのエントリでは、各プラグインの plugin.json の name と一致する name を指定する必要があります
  • source には絶対パスではなく相対パス(例:./plugins/my-plugin)を使用します
  • マーケットプレイスのプラグインが参照する hooks および MCP の設定内では ${CLAUDE_PLUGIN_ROOT} を使用します
3. プラグインを検証
python scripts/validate_plugin.py ./my-plugin

検証項目:

  • plugin.json の必須フィールド(name、description、version、author)
  • セマンティックバージョニングの形式
  • コマンド/エージェントのフロントマター
  • Hooks および MCP の設定
  • README.md と LICENSE の存在

次の方法も検討してください:

  • マーケットプレイス JSON の検証には claude plugin validate <path> を使用します
4. プラグインを公開

GitHub の場合:

cd my-marketplace
git init
git add .
git commit -m "Initial release"
git remote add origin https://github.com/user/my-marketplace.git
git push -u origin main

# Tag release
git tag -a v1.0.0 -m "Version 1.0.0"
git push origin v1.0.0

配布方法:

  • GitHub:/plugin marketplace add user/repo
  • GitLab:/plugin marketplace add https://gitlab.com/user/repo.git
  • URL:/plugin marketplace add https://example.com/marketplace.json
5. プラグインの削除/アンインストール

⚠️ 削除/アンインストールする前に、必ずユーザーに確認してください。 AskUserQuestion を使って、「'[plugin-name]' をアンインストールしてもよろしいですか?この操作は元に戻せません。」と尋ねてください。

# Uninstall from Claude Code
/plugin uninstall plugin-name@marketplace-name

# Remove marketplace (confirm with user first!)
/plugin marketplace remove marketplace-name

ソースファイルを削除するには: まず AskUserQuestion を通じてユーザーに確認し、その後、マーケットプレイスの plugins/ フォルダーからプラグインのディレクトリを削除して、marketplace.json を更新します。

6. Anthropic の公式ディレクトリに登録する

登録スクリプトは、gh CLI と git を使って、必要なフォーム項目をすべて自動的に収集します。

前提条件:

  1. プラグインが GitHub にプッシュされていること
  2. gh CLI がインストールされ、認証済みであること
  3. すべての検証チェックに合格していること

登録の準備:

# Basic - gathers repo URL and SHA automatically
python scripts/prepare_submission.py ./my-plugin

# With required contact info
python scripts/prepare_submission.py ./my-plugin \
  --email [email protected] \
  --company-url https://yourcompany.com

# Copy SHA to clipboard
python scripts/prepare_submission.py ./my-plugin --copy-sha

# Save to JSON file
python scripts/prepare_submission.py ./my-plugin --output submission.json

# Open form in browser
python scripts/prepare_submission.py ./my-plugin --open-form

自動的に収集されるフォーム項目:

項目取得元
プラグインへのリンクgh repo view --json url
完全な SHAgit rev-parse HEAD
プラグインのホームページplugin.json の homepage またはリポジトリの URL
プラグイン名plugin.json の name
プラグインの説明plugin.json の description(50~100 語)

入力が必要な項目:

  • --email:主な連絡先メールアドレス
  • --company-url:会社/組織の URL

登録要件:

  • プラグインが GitHub にプッシュされていること
  • 作業ディレクトリがクリーンであること(未コミットの変更がないこと)
  • 説明が 50~100 語であること
  • README.md と LICENSE ファイルが存在すること
  • コードにシークレット/API キーが含まれていないこと

プラグイン構成のリファレンス

my-plugin/
├── .claude-plugin/
│   └── plugin.json       # Optional manifest (auto-discovered if absent)
├── skills/               # Agent skills (preferred over commands/)
│   └── */SKILL.md
├── commands/             # Skills as flat .md files
│   └── *.md
├── agents/               # AI subagents
│   └── *.md
├── output-styles/        # Output style definitions (2026)
├── themes/               # Color themes (2026)
├── monitors/             # Background monitors (2026, v2.1.105+)
│   └── monitors.json
├── hooks/
│   └── hooks.json        # Event handlers
├── bin/                  # Executables added to PATH (2026)
├── settings.json         # Default agent / subagentStatusLine (2026)
├── .mcp.json             # MCP servers
├── .lsp.json             # LSP server config (since v2.0.74)
├── package.json          # Auto-installed dependencies (2026)
├── README.md             # Documentation
├── CHANGELOG.md
└── LICENSE

詳しいリファレンス: references/plugin-guide.md を参照してください。

OpenCode プラグイン

OpenCode(anomalyco/opencode v1.14.x)のプラグインは TypeScript/JavaScript モジュールであり、Claude Code のプラグインとは根本的に異なります。

クイックリファレンス
タスク方法
ローカルプラグインを作成する.opencode/plugins/(プロジェクト)または ~/.config/opencode/plugins/(グローバル)に .ts ファイルを配置します
npm プラグインを作成するnpm init を実行し、keywords: ["opencode-plugin"] を追加して、@opencode-ai/plugin を依存関係に指定します
npm プラグインをインストールするパッケージ名を opencode.json の "plugin": [...] に追加して、再起動します
配布するnpm に公開します(中央マーケットプレイスはありません)
最小限のプラグイン
// .opencode/plugins/env-protection.ts
import type { Plugin } from "@opencode-ai/plugin"

export default (async () => ({
  tool: {
    execute: {
      before: async (input, output) => {
        if (output.args.filePath?.includes(".env")) {
          throw new Error("Reading .env is forbidden")
        }
      },
    },
  },
})) satisfies Plugin
npm プラグインを登録する
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": [
    "opencode-helicone-session",
    "@my-org/custom-plugin"
  ]
}

OpenCode は起動時に bun install を実行します。キャッシュ先は ~/.cache/opencode/node_modules/ です。

プラグインでできること
  • AI が呼び出せるカスタムツールを追加する(Zod による引数の検証)
  • ツール呼び出しをインターセプト/ブロックする(ブロックするには tool.execute.before から例外をスローします)
  • 約 25 種類のライフサイクルイベントを購読する(session.idle、file.edited、permission.asked など)
  • カスタムのスラッシュコマンドや認証プロバイダーを登録する
  • コンテキスト圧縮中にメッセージやシステムプロンプトを変換する(実験的機能)
重要な注意点(v1.14.x)
  • tool.execute.* フックは MCP ツール呼び出しでは実行されません。opencode.json の permission ブロックを使用してください
  • 中央マーケットプレイスはありません。npm や awesome-opencode などのアグリゲーターを通じて配布してください
  • プラグインは SDK に完全にアクセスできる状態で同一プロセス内で実行されます。インストール前にサードパーティーのコードを監査してください

OpenCode プラグインのリファレンス全文は、references/opencode-plugins.md を参照してください。

重要なルール(サイレント障害を防ぐ)

  • skills/、commands/、agents/、hooks/、monitors/、themes/、output-styles/、bin/ はプラグインのルートに配置してください(.claude-plugin/ の中には絶対に配置しないでください)。
  • 標準のコンポーネントパスを plugin.json に追加しないでください。./ で始まる標準外のパスのみを指定してください。
  • フックおよび MCP/LSP/モニターの設定パスには、${CLAUDE_PLUGIN_ROOT}(バージョンごとに変わるキャッシュパス)と ${CLAUDE_PLUGIN_DATA}(アップデート後も保持されるパス)を使用してください。相対パスはインストール後に機能しなくなります。
  • フックスクリプトが実行可能であることを確認してください(chmod +x scripts/*)。
  • マーケットプレイスの plugins[].name は、プラグインの plugin.json の name と一致している必要があります。
  • パストラバーサルの制限(2026):プラグインは自身のディレクトリの外にあるファイルを参照できません。必要な場合は、プラグイン内にシンボリックリンクを使用してください。
  • バージョン管理(2026):git SHA を使用する場合(コミットごとに新しいバージョンになります)は、version を省略してください。安定版リリースでは version を設定し、値を更新してください。リリースタグの作成には claude plugin tag を使用してください。

よくあるパターン

コマンドファイル形式
---
description: What this command does
---

# Command Name

Instructions for Claude when command is invoked.
エージェントファイル形式
---
description: Agent specialty and purpose
---

# Agent Name

Detailed instructions and expertise.
フック設定
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh"
          }
        ]
      }
    ]
  }
}
MCP サーバー設定
{
  "mcpServers": {
    "server-name": {
      "command": "node",
      "args": ["./servers/server.js"]
    }
  }
}
スキルファイル形式
---
name: my-skill
description: What this skill does and when to use it
---

# Skill Title

Instructions for Claude when this skill is invoked.
マーケットプレイスのエントリー例
{
  "name": "my-plugin",
  "source": "./plugins/my-plugin",
  "description": "Short description",
  "version": "1.0.0",
  "author": { "name": "Author Name" },
  "category": "productivity",
  "keywords": ["tag1", "tag2"],
  "strict": true
}

コメント