Aikidoを独自のClaude Codeプラグインにバンドルする
Aikido MCP サーバーと独自のスキルを社内向けの Claude Code プラグインにまとめることで、開発者は何も設定せずに統一されたセットアップを利用できます。
公式の Aikido プラグインには、常に独自のスキルが同梱されています。開発者に提供するスキルを厳密に指定したい場合は、Aikido MCP サーバーと選択したスキルをまとめた社内プラグインを作成し、独自のマーケットプレイスから配布してください。プラグインとは、Claude Code が 1 つの単位として読み込む設定のフォルダーで、スキル、エージェント、フック、MCP サーバーを含みます。
次のような場合に使用します。
- 固定のスキルセットを提供したい場合:独自のスキル、Aikido のスキルの一部、またはその両方
- 開発者に何もインストールさせたくない、またはセットアップ手順を実行させたくない場合
- ロールアウトを自社リポジトリでバージョン管理し、レビューしたい場合
公式の Aikido プラグインを独自のプラグインと併せてインストールしないでください。両方が Aikido MCP サーバーを登録し、スキルが 2 セット存在することになります。
プラグインを作成する
プラグインフォルダーを作成する
aikido-internal/ ├── .claude-plugin/ │ └── plugin.json ├── .mcp.json └── skills/ └── scan/ └── SKILL.md.claude-plugin/の中に置くのはplugin.jsonだけです。それ以外はすべてプラグインのルートに配置します。.claude-plugin/plugin.json:{ "name": "aikido-internal", "displayName": "Aikido (internal)", "description": "Aikido security scanning with our own skills", "version": "1.0.0" }nameはスキルの名前空間になるため、scan/という名前のスキルフォルダーは/aikido-internal:scanになります。Aikido MCP サーバーを追加する
プラグインのルートに置く
.mcp.json:{ "mcpServers": { "aikido": { "command": "npx", "args": ["-y", "@aikidosec/mcp@latest"] } } }プラグインが有効になると、サーバーは自動的に起動します。Aikido のツールを初めて使用する際、サーバーはブラウザーでのサインインを求めます。
ヘッドレス環境の場合、またはブラウザーでのサインインを省略したい場合は、Personal Access Token (PAT) を使用してください。サーバーは継承した環境から
AIKIDO_API_KEYを読み取るため、開発者のシェルプロファイルまたはデバイス管理ツールで設定し、上記の設定は変更しないでください。これにより、トークンをプラグインリポジトリに含めずに済みます。PAT の作成方法については、トークン認証を参照してください。Claude Code に各開発者へ一度だけトークンを入力させ、安全に保存させたい場合は、
plugin.jsonのuserConfigにトークンを宣言し、envブロックで${user_config.aikido_token}として参照します。{ "userConfig": { "aikido_token": { "type": "string", "title": "Aikido token", "description": "Your Aikido Personal Access Token", "sensitive": true } } }次に、
.mcp.jsonでサーバーに渡します。"env": { "AIKIDO_API_KEY": "${user_config.aikido_token}" }必要なスキルを追加する
各スキルは、
skills/配下にあるSKILL.mdファイルを含むフォルダーです。descriptionは、Claude がそのスキルをいつ使用すべきかを示します。skills/scan/SKILL.md:--- description: Scan changed code with Aikido for vulnerabilities and hardcoded secrets. Use after writing or editing code, and before committing. --- Run the Aikido `aikido_scan_paths` tool on the files changed in the working tree. Report every finding with its severity and file location, then fix the ones you introduced. Do not commit while a critical finding is open.必要な数だけ追加できます。たとえば、
aikido_issues_listを使用して現在のリポジトリの未解決の課題を取得するトリアージスキルなどです。サーバーが提供する機能については、利用可能な MCP ツールを参照してください。ローカルでテストする
claude --plugin-dir ./aikido-internal次に、
/aikido-internal:scanを実行してスキルを確認し、/pluginを実行して Aikido MCP サーバーが起動したことを確認します。/reload-pluginsを実行すると、再起動せずに編集内容を反映できます。配布する前に構造を検証します。
claude plugin validate ./aikido-internal
チームに配布する
開発者が読み取れるリポジトリにプラグインを配置し、リポジトリのルートの .claude-plugin/marketplace.json にマーケットプレイスファイルを置きます。
{
"name": "acme-tools",
"owner": {
"name": "Platform Team",
"email": "platform@acme.com"
},
"plugins": [
{
"name": "aikido-internal",
"source": "./aikido-internal",
"description": "Aikido security scanning with our own skills"
}
]
}プライベートリポジトリでも問題ありません。Claude Code は各開発者の既存の Git 認証情報を使用してクローンします。
次に、以下をプロジェクトの .claude/settings.json にコミットします。
{
"extraKnownMarketplaces": {
"acme-tools": {
"source": {
"source": "github",
"repo": "acme/claude-plugins"
}
}
},
"enabledPlugins": {
"aikido-internal@acme-tools": true
}
}開発者がリポジトリフォルダーを信頼すると、Claude Code はそれ以上確認を求めることなく、マーケットプレイスを追加してプラグインを有効にします。
上記のように、プラグインフォルダーはマーケットプレイスリポジトリ内に置き、相対パス ./ で参照してください。別の GitHub リポジトリなど外部ソースを指すプラグインは、設定ファイルだけではインストールされません。各開発者が事前に claude plugin install を実行する必要があります。
ツールで実行できる操作を制御する
独自のプラグインをバンドルすることで、開発者のマシン上に存在するスキルを制御できます。ただし、Aikido のツールに許可される操作は変わりません。これは引き続き Aikido のワークスペースレベルの設定です。MCP の権限を参照してください。