Claude CodeのArcjetプラグインでルート保護とAI防御を入れる
ArcjetプラグインはSDKの書き方、保護ルール、MCP、CLIをまとめてClaude Codeに入れます。導入コマンド、/arcjetスキル、自動で効くルール、アカウントが要る範囲までを説明します。
Arcjetのプラグインを入れると、Claude Codeが「Arcjetの使い方を知っているエージェント」になります。レート制限やボット対策、プロンプトインジェクション検知、個人情報の伏せ字化といった保護を、ルートハンドラやAIの呼び出しに足す作業を任せられます。
ここではClaude Codeでの導入コマンド、同梱される4つの部品、自動で効くルール、使う前に必要なものを順に説明します。
Arcjetプラグインが入れるもの
Arcjetは、アプリの中でコードから呼び出す形のランタイムセキュリティです。リクエストの判定や、エージェントのツール呼び出しの認可を、処理が走る前に挟みます。プラグインの役割は、そのSDKの書き方や設計の勘所をエージェントに先に持たせることです。
プラグインの構成は次の4つです。
| 部品 | 中身 |
|---|---|
| MCP連携 | 中身ArcjetのMCPサーバーに接続し、トラフィック分析、リクエストの調査、IPの調査、リモートルールの管理を行う |
| CLI連携 | 中身認証、サイトとキーの準備、リクエストのライブ表示、リモートルール管理でArcjetのCLIを呼ぶ |
| コーディングルール | 中身ルートハンドラ、APIエンドポイント、AI・LLMのコードを触るとき、フレームワーク別の指針が自動で効く |
| スキルとエージェント | 中身/arcjetスキルと、脅威調査やルール管理を担うセキュリティアナリスト用エージェント |
Claudeのマーケットプレイスの掲載ページでは「Anthropic verified」の表示が付いています。提供元はArcjet自身で、ソースはGitHubのリポジトリarcjet/arcjet-pluginで公開されています。ライセンスはApache-2.0です。
導入手順
Arcjetプラグインを使い始めるまで
- 1
前提を揃える
Claude Codeと、Node.js 18以上、Arcjetのアカウントが必要です。アカウントは無料で作れます。
- 2
プラグインを追加する
Arcjetのドキュメントが示す導入コマンドは1つです。Claude CodeとCursorで同じコマンドが使えます。
- 3
Arcjetに認証する
プラグインはCLIを通して認証とキーの準備を進めます。ブラウザでサインインします。
- 4
保護したいコードで依頼する
ルートやAI呼び出しのあるファイルを開き、
/arcjetを呼ぶか、自然文で保護を頼みます。
導入コマンドは次のとおりです。
npx plugins add arcjet/arcjet-plugin導入後に追加の設定コマンドはなく、プラグインは自動で有効になるとされています。入ったかどうかは、Claude Code上の/pluginでプラグインの一覧を見て確かめられます。プラグインの導入経路の全体はプラグインとマーケットプレイスの全体像にまとまっています。
リポジトリのREADMEが別に載せているagent plugin marketplace addはCursor向け、codex plugin marketplace addはCodex向けです。Claude Codeの手順としては、上のnpx plugins addが基本になります。
公式が先に勧めているのはスキル単体の導入
ここで一つ、導入の前に知っておきたい点があります。Arcjetのドキュメントは、多くのエージェント作業で推奨する道を、プラグインではなくnpx skills add arcjet/skillsでスキルを入れ、CLIかMCPサーバーでArcjetのAPIにつなぐ方法としています。プラグインは、バンドルされた体験を好む人向けの代替という位置づけです。
使い分けは次のように考えられます。
| 状況 | 向く入れ方 |
|---|---|
| ルール、MCP、CLIの案内をまとめて1コマンドで入れたい | 向く入れ方プラグイン |
| スキルだけ欲しく、接続は自分で決めたい | 向く入れ方npx skills add arcjet/skills |
| 複数のエージェント(Cursorなど)で同じ環境を揃えたい | 向く入れ方プラグイン(同じコマンドが使える) |
プラグインのスキルはarcjet/skillsと同じ内容を追従する作りなので、どちらを選んでもスキルの中身は同じです。
/arcjetスキルが引き受ける作業
スキルは/arcjetの1つに統一されています。保護を足す先として、HTTPのルートハンドラ、APIエンドポイント、AIエージェントのツール呼び出し、MCPサーバー、バックグラウンドジョブ、キューのワーカーが挙げられています。呼び出されたときに、コードの文脈から種類を見分けて手順を選びます。
以前のスキル名は、廃止予定のエイリアスとして残っています。呼ぶと新しい名前を案内したうえで/arcjetの流れに進むので、既存のプロンプトは動きます。
| 以前の名前 | 置き換え先 |
|---|---|
/arcjet:add-request-protection | 置き換え先/arcjet |
/arcjet:add-guard-protection | 置き換え先/arcjet |
/arcjet:protect-route | 置き換え先/arcjet |
/arcjet:add-ai-protection | 置き換え先/arcjet |
チームの手順書やCLAUDE.mdに旧名を書いている場合は、/arcjetに書き換えておくと、毎回の案内メッセージを避けられます。
依頼は次のような短い文で足ります。以下は例示で、実際の出力はコードと設定によって変わります。
/arcjet app/api/chat/route.ts のチャットAPIを保護して。
トークン予算、個人情報の検知、プロンプトインジェクション対策を入れるここで頼んでいる3点(トークン予算、PII、プロンプトインジェクション)は、次節のAIアプリ向けルールが扱う指針と同じ範囲です。
コードを触るだけで効くルール
ルールは、パターンに合うファイルを扱ったときに自動で効く指針です。呼び出す必要はありません。
| ルール | 効くファイル | 指針の内容 |
|---|---|---|
| SDKの書き方 | 効くファイル**/lib/arcjet*、**/arcjet* | 指針の内容インスタンスは1つ、ハンドラ内でprotect()、withRule()、判定結果の扱い |
| Next.js | 効くファイルapp/**/route.ts、app/**/page.tsx、pages/api/** | 指針の内容正しいimport、ルートハンドラとページとサーバーコンポーネントの違い、ミドルウェアは使わない |
| Express・Node | 効くファイル**/server.ts、**/routes/** | 指針の内容正しいアダプタパッケージ、app.use()のミドルウェアは使わない、プロキシ設定 |
| Python | 効くファイル**/*.py、pyproject.toml | 指針の内容snake_caseのAPI、enumの値、非同期と同期のクライアント |
| AIアプリ | 効くファイル**/chat/**、**/api/chat*、**/api/completion* | 指針の内容多層の保護、トークン予算、PIIのブロック、プロンプトインジェクション |
| CLI | 効くファイル**/lib/arcjet*、**/arcjet*、**/.env* | 指針の内容CLIとMCPの使い分け、npx -y @arcjet/cli@latestでの呼び出し、エージェント向けフラグ |
Next.jsとExpressのルールには、どちらも「ミドルウェアにしない」という指針があります。Arcjetではルートの中でprotect()を呼ぶ書き方が基本で、ミドルウェアで一括して挟む構成は避けるよう案内されています。Claudeが慣習でmiddleware.tsに保護を寄せてしまう場面を、ルールが先回りして止める役目です。
MCPとCLIで本番の状況を見る
コードを書く段階が終わったあとも、プラグインは運用の調査に使えます。MCPサーバーは、プラグインを入れると自動でOAuth接続されます。手動で接続する場合の宛先はhttps://api.arcjet.com/mcpです。
接続したエージェントができることは次の5つです。
- リクエストの許可・拒否の判定を調べ、理由を説明する
- トラフィックの傾向を分析し、異常を見つける
- 不審なIPを、位置情報や脅威インテリジェンスで調べる
- コードを変えずに、リモートルールを作成、テスト、昇格する
- セキュリティのブリーフィングを作る
CLIはMCPより端末寄りの作業を受け持ちます。
| 作業 | コマンド |
|---|---|
| 認証 | コマンドarcjet auth login |
| チーム・サイトの確認と作成 | コマンドarcjet teams list、arcjet sites list、arcjet sites create |
新しいプロジェクトのARCJET_KEY取得 | コマンドarcjet sites get-key |
| ライブのリクエスト表示 | コマンドarcjet watch --site-id <id> |
| リモートルールの管理 | コマンドarcjet rules create、list、promote、update、delete |
インストール不要で、npx -y @arcjet/cli@latest <コマンド>の形で動きます。PATH上にarcjetのバイナリがあれば、プラグインはそちらを直接使います。Homebrewならbrew install arcjet、インストールスクリプトならcurl -sSfL https://arcjet.com/cli/install.sh | bashでも入ります。社内再配布やエアギャップ環境向けには、GitHub Releasesのアーカイブが用意されています。
CLIの認証は、gh auth loginやvercel loginと同じ、ブラウザを開いてサインインする方式です。端末にブラウザを開ける環境があれば、手順は見慣れたものになります。リクエストの調査やルールの確認のような読み取り側の分析は、CLIを入れなくてもMCPサーバー経由で使えます。
arcjet watchは、アナリスト用エージェントが障害対応の最中に呼ぶ想定です。MCPでリクエスト一覧を繰り返し引くと間隔が粗すぎる場面で、ストリームを使います。
リモートルールはDRY_RUNから始める
アナリスト用エージェントには、リモートルールをDRY_RUNで入れて検証し、問題がなければLIVEに上げるという流れが組み込まれています。ルールの作成をClaudeに頼むときも、この順序を依頼文に書いておけます。
直近のブロックが多いIPを調べて、リモートルールの案を作って。
まずDRY_RUNで入れて、判定を見てからLIVEにするか相談したいLIVEへの昇格は本番のトラフィックに効くので、DRY_RUNの判定結果を読んでから承認する形にできます。
アナリスト用エージェントが返すもの
アナリスト用エージェントの担当は、トラフィックの分析と脅威の検知、リモートルールの管理、IPの調査とブロックの提案です。成果物は、優先順位を付けた対応項目つきの構造化レポートです。「不審なアクセスがある」という所感ではなく、どのIPをどのルールで扱うかまで落とした形で受け取れます。
リポジトリの構成とホスト別の入口
arcjet/arcjet-pluginは、Claude Code専用ではなく複数のエージェントに向けた作りです。ルートに.claude-plugin、.cursor-plugin、.agents/pluginsのディレクトリが並び、スキル、ルール、エージェント、MCP設定は共通のものをルートに置いています。Cursor用とCodex用のマーケットプレイスの目録はCHANGELOGの未リリース欄で追加された変更で、plugins/arcjet/が各目録の指す先です。plugins/arcjet/とルートは同じファイルを共有しており、npx plugins addとClaude Codeの導入は従来のルートのパスを使い続けます。
Claude Code側のプラグイン定義(.claude-plugin/plugin.json)では、名前がarcjet、バージョンが1.0.0と宣言されています。MCP設定は、種別httpでhttps://api.arcjet.com/mcpを指す1行だけの単純なものです。
対応する言語とフレームワーク
SDKの対応範囲が、そのままプラグインの対応範囲です。
| 言語 | 対応 |
|---|---|
| JavaScript・TypeScript | 対応Next.js、Express、Node.js、Fastify、NestJS、SvelteKit、Remix、React Router、Astro、Nuxt、Hono、Bun、Deno |
| Python | 対応FastAPI、Flask |
| Go | 対応net/httpと、*http.Requestを公開するルーターやフレームワーク |
Goの記載はREADMEにあり、Arcjetのドキュメントのプラグインのページには載っていません。2つの記述が一致していない点は、Goで使う前にSDK側のドキュメントで確かめておくと確実です。
使う前に知っておきたい限界
- Arcjetのアカウントが必要です。MCPのOAuth接続も、CLIの認証も、アカウントにひもづきます。
- ルールが自動で効くのは、パターンに合うファイルを扱っているときです。パターンから外れた場所(例えば
src/handlers/以下の独自構成)では、/arcjetを明示して呼ぶ必要があります。 - 保護の設計判断は、コードとトラフィックを知る人が持つものです。スキルは書き方を揃えるもので、どのルートにどの強さの制限を掛けるかは、依頼の側で伝える必要があります。
プラグインやスキル自体のセキュリティが気になる場合は、Enterprise向けのスキル・プラグインのセキュリティスキャンが関連します。同じセキュリティ系のプラグインとして、静的解析とシークレット検出を回すAikidoプラグインや、.envから秘密情報を外す1Passwordプラグインと役割が分かれています。Arcjetは実行時に効く防御、Aikidoはコードの検査、1Passwordは秘密情報の置き場所を受け持ちます。