MCPサーバーは繋ぐだけで漏れる?危険4つと確認7項目
MCPの危険はツール説明の汚染・外部文章からの乗っ取り・強すぎるキー・自動承認の4つ。提供元を確かめ、運ばれてくる文章は信用せず、人が止められる状態を残す。
#なぜ今日これを選んだか
AIエージェントに道具を持たせるMCPは、便利さの裏で「どこから指示が入り込むか」が見えにくい。自分もAIを無人で回す仕組みを使っているので、危険を4つの型に分け、接続前に見るべき点を7つに絞ったこの記事は、そのまま点検表として使える。
#要点
- 危険は4つ。①ツール説明文に指示を仕込む「ツールポイズニング」(調査では5.5%のサーバーで確認)②issue・Web・PDFなど第三者が書ける文章を経由した間接プロンプトインジェクション(公開issueの指示で非公開リポジトリが流出した実例あり)③権限が広く有効期間の長いキー(53%のサーバーが長期固定キーに依存)④人の確認を挟まない自動承認
- 接続前の確認は7つ: 提供元とバージョン / 第三者が書き込める文章を読むか / 追加する範囲(個人・プロジェクト・全体)/ ツールと権限の最小化 / キーの保管場所と取り消し方 / 「常に許可」は無人でよいツールだけ /
claude -p・SDK・クラウド実行で承認なしに動かないか - 結論は「繋いだだけで漏れるわけではない」。作った人を確かめて選び、サーバーが運んでくる文章は信用せず、キーを絞り、人が止められる状態を残す
#自分にとっての示唆
いちばん刺さったのは7つ目。対話画面では確認ダイアログが出ても、非対話の実行では許可リストがそのまま効く。つまり「誰が読んだ文章で、どの道具が、人の確認なしに動くか」は、設定ファイルを見ないと分からない。Rustやハードウェアに進む前に、エンジニアとして自分の道具の権限を説明できることは基礎体力だと思う。明日からの具体的な行動は1つだけ。無人で動かしているAIの許可リストを開き、外部の文章を読む道具と書き込みができる道具が同時に許可されていないかを確認する。重なっていたら、どちらかを外す。