MCPサーバーは、エージェントができることを増やします。それがMCPの目的であると同時に、リスクでもあります。ソースコードを読み、コマンドを実行できるセッションに、第三者のプログラムを接続することになるからです。

このチェックリストは、自分で書いたものではないサーバーを評価するためのものです。特別な対策ではありません。自分の権限で動くほかの依存関係と同じ注意を払うだけです。

インストール前

実際に何をするのか読む。 MCPサーバーは通常、小さなプログラムです。ソースが公開されていれば、ツール定義はたいてい1つのファイルにまとまっており、10分ほどで読めます。

要求される権限を確認する。 カレンダーを読むサーバーが、ファイルシステムへのアクセスを求める理由はありません。インストール時の過剰な権限要求は、もっとも分かりやすい警告です。

バージョンを固定できるサーバーを優先する。 固定したバージョンは、知らないうちに変わりません。エージェントのセッション内で動くものが自動更新されるなら、他人の予定に合わせて、黙って信頼を与え直しているのと同じです。

認証情報

有効期間の長い認証情報を、ツール説明やプロンプトに貼り付けない。 プロンプトに含まれる内容は会話履歴に残り、その履歴は記録、要約、転送される可能性があります。

トークンの権限を最小限に絞る。 サーバーが1つのリポジトリを読むだけなら、そのリポジトリだけを許可します。多くのAPIはこれに対応していますが、セットアップ手順では触れられていないことがよくあります。

秘密情報は、コミットされる設定ファイルではなく環境変数に置く。 .env.gitignoreに加えるのは最低限の対策ですが、それでもよくあるミスを防げます。

エージェントに見えるもの

ツールの説明はモデルのコンテキストに入ります。悪意のあるサーバーは、そこに指示を書き込めます。ツールの出力は、エージェントが取得したWebページと同じく、信頼できない入力として扱ってください。返ってきた内容はデータであり、従うべき指示ではありません。

これは、リモートコンテンツを取得するサーバーで特に重要です。URLの内容を返すサーバーは、攻撃者が制御できるテキストを返している可能性があります。

継続的な確認

  • 接続済みサーバーを定期的に見直し、使わなくなったものを削除する
  • 更新後に権限が変わっていないか確認する
  • タスクに必要な最小限のファイルシステム範囲でエージェントを実行する

このチェックリストで防げないこと

信頼できないサーバーを安全にすることはできません。また、周到に作られた悪意のあるサーバーを見抜くものでもありません。このチェックリストが減らすのは偶発的なリスクであり、実際の問題の多くはそこから生じます。