Claude Media
Claude CodeのArcjetプラグインでルート保護とAI防御を入れる

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. 1

    前提を揃える

    Claude Codeと、Node.js 18以上、Arcjetのアカウントが必要です。アカウントは無料で作れます。

  2. 2

    プラグインを追加する

    Arcjetのドキュメントが示す導入コマンドは1つです。Claude CodeとCursorで同じコマンドが使えます。

  3. 3

    Arcjetに認証する

    プラグインはCLIを通して認証とキーの準備を進めます。ブラウザでサインインします。

  4. 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は秘密情報の置き場所を受け持ちます。

この記事を共有:XはてブLinkedIn