これは何?
AIコーディングエージェントに未知のリポジトリやパッケージを読ませる前に、危険な設定や怪しい指示がないかを確認するCLI「AgentRisk」を作りました。
npmにも公開しています。
npx agentrisk scan .
なぜ必要だと思ったか
AIエージェントは、リポジトリ内の指示ファイルや設定ファイルを読みます。
例えば以下のようなファイルです。
.mcp.jsonAGENTS.mdSKILL.md.cursor/rules/*.github/copilot-instructions.mdpackage.json
これらに危険な命令や設定が入っていた場合、AIがそれに従ってしまう可能性があります。
そこで、実行前に静的にチェックできる道具を作りました。
使い方
現在のディレクトリをスキャンします。
npx agentrisk scan .
GitHubリポジトリを直接スキャンします。
npx agentrisk scan https://github.com/owner/repo
npmパッケージも確認できます。
npx agentrisk scan npm:some-package@1.2.3
検出例
例えば、以下のようなものを検出します。
-
curl | shのようなリモートコード実行 - 危険なMCPサーバー起動設定
- secretをAIに読ませる指示
- 承認を回避させる指示
-
package.jsonのpostinstallによるリモート実行
危険な設定があると、以下のようにBLOCKとして出力します。
Verdict: BLOCK
CRITICAL
mcp-remote-fetch-exec
MCP server appears to download and execute remote code.
特徴
AgentRiskは、対象のコードを実行しません。
- MCPサーバーに接続しない
- package scriptを実行しない
- 対象の依存関係をインストールしない
- LLMに安全判定を任せない
「実行してから気づく」のではなく、「AIに読ませる前に確認する」ためのツールです。
自分の背景
私はIT企業で働いていますが、これまでPMO系の業務が中心で、コードを書く経験はほとんどありませんでした。
ただ、AIツールやAI駆動開発に興味があり、AIを使ってさまざまなアプリやツールを作っています。
AgentRiskも、その延長で作ったOSSです。
コード経験が少なくても、AIを使うことでOSSを形にできるという実感がありました。
まとめ
AIエージェントを使う機会が増えるほど、リポジトリ内の指示やMCP設定もサプライチェーンの一部になっていくと思っています。
AgentRiskは、その入口で一度立ち止まるための「開く前スキャン」です。