MCPパッケージを導入する前に確認したい5つのこと|AIツールのサプライチェーンリスク
MCPを試してみようと思ったとき、インストール先を確認しましたか?
Claude Codeを使い続けていると、MCPサーバーを追加したくなる場面が来ます。GitHubの検索ツール、Notionとの接続、Slackへの通知……便利そうなパッケージを見かけると、READMEにある数行のコマンドをそのまま貼り付けたくなる気持ちはわかります。
正直、私も最初はそうでした。
でも、MCPサーバーはnpmパッケージやPythonライブラリと少し違う位置づけにいます。AIエージェントのツール呼び出しの延長線上で動く。つまり、Claudeが判断して呼び出す関数を提供する側になる。その設計上の特性が、サプライチェーン攻撃の観点で見たとき、見過ごせない面を持っています。
MCPサーバーはなぜ「普通のパッケージ」と扱いが違うのか
MCPサーバーをインストールするということは、AIエージェントに「このツールを呼び出す権限」を渡すことです。
npm install で終わる操作が、MCP文脈では少し意味が変わります。インストールした時点で、そのMCPサーバーが定義するツール関数がClaudeから呼び出し可能になる。ファイル操作、ネットワーク通信、外部APIアクセスなど、実際に何をするかはそのパッケージ次第です。
サプライチェーン攻撃は、依存関係に悪意あるコードを混入させる手法です。npmエコシステムでは event-stream 事件が有名で、正規パッケージのメンテナンス権限を取得した攻撃者がバックドアを仕込みました。MCPも同じことが起きうる。普及が進んでいる今が、むしろリスクが高まるタイミングです。
確認したい5つのポイント
MCPサーバーを導入する前に、私が実際に確認するようにした観点をまとめます。攻撃手順の解説ではなく、「自分の環境を守る」ための視点です。

1. リポジトリの信頼性を見る
まずリポジトリを開きます。確認するのはこの3点。
作成者・管理主体: 個人 vs 組織アカウント。公式や著名な企業が管理しているか
コントリビューター: 1人だけでコミット歴が極端に短い場合は立ち止まる
更新頻度: 直近3ヶ月更新がなく、IssueやPRへの反応もない場合は廃止リスクあり
「スターが多い = 安全」ではありません。でもスターが極端に少なく、コミット歴が数日のリポジトリを本番環境に入れる前に、少し立ち止まる価値はあります。
2. 依存パッケージのリストを確認する
package.json または pyproject.toml を直接見ます。
依存関係が少ないほど攻撃面は狭い。依存が100個あるMCPは、100個の信頼を前提にしています。特に確認したいのは次の2点。
postinstall スクリプトの有無(インストール時にコードが実行される仕掛けがないか)
見覚えのない小さなパッケージへの依存
npm audit や pip-audit をインストール前に使う習慣があると、既知の脆弱性をある程度発見できます。
3. ツール定義のスコープを読む
MCPサーバーが実際にどんなツール関数を定義しているか確認します。コードを直接読むか、npx @modelcontextprotocol/inspector を使うと、提供されるツール一覧を確認できます。
見るべき軸。
ファイルシステムアクセスが目的の範囲に限定されているか
ネットワーク通信先が明示されているか
環境変数やシークレットを読み込む処理がないか
「便利な検索ツール」が、実は /home ディレクトリ以下を参照できるツール定義を持っているケースを想定する必要があります。
4. settings.json で権限スコープを絞る
MCPサーバーを追加するとき、Claude Codeの .claude/settings.json も一緒に見直します。
{
"mcpServers": {
"my-mcp-tool": {
"command": "npx",
"args": ["-y", "@example/mcp-server"]
}
}
}allowedTools を使って、そのMCPが使えるツールを明示的に絞れます。全ツールを許可するより、必要なものだけを指定する設計が、最小権限の原則に近くなります。
5. 定期的に棚卸しをする
インストールしたMCPが増えると、使っていないものが残り続けます。
私は月1回、.claude/settings.json を見て「このMCPサーバーまだ使っているか」を確認するようにしています。使っていないものは削除。開発中に試しただけのMCPが本番設定に残っているのは、攻撃面を無意味に広げていることになります。
迷ったら公式実装を起点にする
Anthropicは modelcontextprotocol/servers で参照実装を公開しています(確認日: 2026年5月8日)。filesystem操作やGit操作、Web fetchなどの基本インテグレーションが含まれています。
サードパーティMCPを使う場合でも、この公式コードと構造を比較することで「これは自然な実装か、不自然なコードが混入していないか」を判断する参照点になります。コストゼロで使える比較基準です。
今日やること
MCPを1つでも使っている人は、今日5分だけ確認してみてください。
.claude/settings.json を開く
mcpServers セクションに登録されているパッケージを確認する
そのうち1つのGitHubリポジトリを開いて、作成者とコントリビューターを見る
使っていないMCPが1つでもあれば、設定から削除する
完璧なチェックよりも、「継続的に確認する習慣」のほうが長期的には効きます。今日1つ確認するだけで十分です。
いいなと思ったら応援しよう!
よろしければ応援お願いします!
今月のClaude に大切に使わせていただきます!
