MCPのセキュリティ:サーバーやスキルをインストールする前に確認すること
Kitbay編集部 ·
MCPサーバーやエージェントスキルをインストールする前に、次の6つの点を確認してください。何を読み取り、何を変更できるのか。どこで動くのか。どんな認証情報が必要なのか。インストール時と起動時にどんなコードが実行されるのか。信頼できないコンテンツを読み込むのか。誰が公開し、メンテナンスしているのか。その答えから、どこまでアクセスを許すか、そもそもインストールすべきかを判断できます。
サーバーもスキルも、AIエージェントがユーザーの代わりに操作できるようにするものです。MCPの仕様は、ツールは任意のコード実行に等しく、慎重に扱う必要があるとしています。Anthropicも、スキルのインストールはソフトウェアのインストールと同じように扱うよう呼びかけています。このガイドでは、こうしたアドバイスをチェックリストの形にまとめました。
1. 何を読み取り、何を変更できるか
まずツールの一覧を確認します。ドキュメントを検索するだけのサーバーと、ファイルの削除、メールの送信、送金ができるサーバーとでは、まったく別物です。
- READMEとツールの一覧を読みます。create、update、delete、send、run、executeといった言葉を探してください。
- サーバーが読み取り専用のツールと書き込み用のツールを分けているかを確認します。たとえばChatGPTは、サーバーが読み取り専用と示していない限り、すべてのツールを確認が必要な書き込み操作として扱います。
- 説明文だけを頼りにしないでください。MCPの仕様では、ツールの説明やアノテーションは、信頼できるサーバーから来たものでない限り、信頼できないものとみなすべきだとしています。
Kitbayのサーバーの掲載では、サーバーがデータを変更できるかどうかを、その根拠とあわせて記録しています。
2. 自分のコンピューターで動くのか、オンラインで動くのか
ローカルサーバーは、自分のマシン上で、自分のユーザーアカウントの権限で動きます。MCPのドキュメントはこの点をはっきり書いています。ファイルシステムサーバーは、自分ができるファイル操作なら何でもできます。セキュリティガイダンスでは、設定スニペットに悪意のある起動コマンドが紛れ込んでいて、クライアントがサーバーを起動した時点でそのコマンドが実行されるという、ローカルサーバー特有のリスクも取り上げています。
リモートサーバーは、他者のインフラ上で動きます。データはそのサーバーに送られ、サーバーはサインインしたアカウントを通じて操作します。誰がサーバーを運営しているのか、プライバシーに関する規約に何が書かれているのかを確認してください。
ローカルサーバーでは、stdioを選ぶのが無難です。ローカルサーバーがHTTPポートを開く場合、仕様では127.0.0.1だけで待ち受け、Originヘッダーをチェックするべきだとしています。そうしないと、WebサイトからDNSリバインディングでアクセスされるおそれがあります。
3. どんな認証情報が必要か
- キーの権限はできるだけ絞る。 サービスが対応していれば、読み取り専用や限定されたスコープのトークンを作ります。MCPのセキュリティガイダンスは、スコープが広いとトークンが漏れたときの被害が大きくなると警告しています。
- リモートサーバーではOAuthを選ぶ。 要求されたスコープを確認でき、後からアクセスを取り消せます。Claude Codeではサーバーを削除すると保存済みのトークンがローカルから消えますが、プロバイダー側でトークンを無効にしたい場合は、先にログアウトするようドキュメントで案内されています。
- シークレットを共有ファイルに書かない。 環境変数や、クライアントのシークレット入力機能を使います。VS Codeの
inputs機能やCursorの${env:NAME}変数は、このためにあります。 - ホスト型サーバーのトークンの扱いに注意する。 仕様では、サーバーが自分宛てに発行されていないトークンを受け入れることを禁じています。
4. どんなコードが、いつ実行されるか
サーバーの場合は、インストールコマンドを正確に読みます。npx -y some-packageのような行は、実行するたびに公開されている最新バージョンをダウンロードして実行します。パッケージ名がプロジェクトのリポジトリと一致しているかを確認し、バージョンの固定も検討してください。
スキルの場合は、SKILL.mdだけでなく、すべてのファイルの中身を確認します。Anthropicのスキルのドキュメントでは、確認すべき点として、予期しないネットワーク通信、目的に合わないファイルアクセス、外部URLからコンテンツを取り込む指示(そのコンテンツは後から変わる可能性があるため)を挙げています。特にClaude Codeでは、次の点に注意してください。
- スキル内に
!`command`と書かれた行は、Claudeがスキルを見るより前に自分のマシンで実行されます。 - プロジェクトのスキルの
allowed-tools設定は、一度も信頼済みにしていないフォルダでも有効になります。そのため、新しいリポジトリでClaude Codeを実行する前に確認するよう、ドキュメントで勧められています。 - スキルは、自分のコンピューター上のほかのプログラムと同じようにネットワークにアクセスできます。
5. 第三者が書いた外部コンテンツを読み込むか
プロンプトインジェクションとは、エージェントが読むテキストに、エージェントに向けた指示が含まれているリスクのことです。Webページ、メール、Issue、サポートチケットを取得するサーバーは、そうしたテキストを会話に持ち込みます。Claude Codeのドキュメントは外部のコンテンツを取得するサーバーについて特に警告しており、OpenAIもChatGPTのカスタムMCPサーバーをリスクの高いものと位置づけ、信頼できないサーバーがモデルをだましてツールを悪用させるおそれがあると指摘しています。
ツールを組み合わせると、リスクはさらに高まります。公開されたコンテンツを読むサーバーと、データを外部に送れるサーバーがそろうと、注入された指示に入口と出口の両方を与えることになります。こうした組み合わせは、各ステップを自分で見守れるタスクだけにとどめてください。
6. 誰が公開し、メンテナンスされているか
- ツールのベンダー自身が公開しているのか、独立した開発者が公開しているのか。Kitbayは、根拠がある場合に限り、ベンダーが公開している掲載を公式の掲載ページで示しています。
- ソースコードは公開されているか。リポジトリはインストールするパッケージと一致しているか。
- 最後に更新されたのはいつか。ライセンスはあるか。
- 報告されたセキュリティの問題に対応しているか。
メンテナンスされていないコードが必ずしも危険というわけではありませんが、修正は受けられません。
クライアントの安全機能を使う
ほとんどのクライアントには安全のための機能があります。オフにせず、活用してください。
| クライアント | ベンダーがドキュメントで説明している機能 |
|---|---|
| Claude Code | 共有の.mcp.jsonにあるサーバーを使う前に確認する。/mcpで状態とサインインを確認できる |
| Claude Desktop | ツールの操作前に承認を求める。コネクタのツールごとにオン・オフを切り替えられる |
| ChatGPT | デフォルトで書き込み操作の前に確認する。サーバーの追加時にリスクの警告を表示する |
| Cursor | デフォルトでMCPツールの実行前に確認し、引数を表示する |
| VS Code | サーバーを信頼するかの確認。macOSとLinuxではstdioサーバー用のサンドボックスを選べる |
| Gemini CLI | 確認のプロンプト。trustオプションを使うとすべて省略されるため、完全に自分で管理しているサーバーだけに使う |
承認のプロンプトは、内容を読んで初めて役に立ちます。承認する前にツール名と引数を確認してください。送信、削除、支払いを伴う操作では特に注意が必要です。
かんたんチェックリスト
| 質問 | 安全寄りの答え |
|---|---|
| データを変更できるか | 読み取り専用か、書き込み用のツールが明示されている |
| どこで動くか | リモートなら運営者が明らか。ローカルならstdio |
| どんなアクセスが必要か | 狭いスコープ。可能ならOAuth |
| インストール時に何が実行されるか | プロジェクト自身のリポジトリの、バージョンを固定したパッケージ |
| 外部のコンテンツを読み込むか | 必要な場合だけ。リスクのあるツールの組み合わせは避ける |
| 誰がメンテナンスしているか | 公開元が明らかで、最近の更新があり、ライセンスがある |
Kitbayの役割
Kitbayは、掲載がデータを変更できるか、ローカルかリモートか、スキルにスクリプトが含まれるかなど、各プロジェクト自身の情報源から得た事実を記録しています。掲載をテストしたり監査したりはしていないため、これらの項目は出発点として使い、ソースは自分で確認してください。基本については、MCPサーバーとは、Claude Skillsとは、MCPサーバーをAIクライアントに接続する方法を参照してください。エージェントスキルも同じ項目で探せます。
よくある質問
- MCPサーバーは安全ですか?
- MCPサーバーは、ファイルやアカウントを使って操作できるソフトウェアです。そのため安全かどうかは、誰が作ったか、何にアクセスできるか、何を許可するかによって決まります。MCPの仕様はツールを任意のコード実行として扱い、クライアントが使う前に確認を求めることを想定しています。
- MCPにおけるプロンプトインジェクションとは何ですか?
- エージェントが読むWebページ、メール、Issueなどのテキストに、エージェントにツールを悪用させるための指示が含まれていることです。Claude CodeとOpenAIはどちらも、外部のコンテンツを取得するサーバーではこのリスクが高まると警告しています。
- リモートのMCPサーバーはローカルのものより安全ですか?
- 必ずしもそうではありません。ローカルサーバーは自分のマシン上で、自分の権限でコードを実行します。リモートサーバーは別の場所で動きますが、許可したアカウントとスコープで操作します。それぞれ確認すべき点が異なります。
- MCPサーバーを使わないスキルでも危険なことはありますか?
- はい。スキルにはスクリプトを含められますし、エージェントがすでに持っているツールを使うよう指示することもできます。Anthropicは、完全には信頼できない提供元のスキルは、すべてのファイルを確認するよう勧めています。
出典
- MCP specification overview: Security and Trust & Safety2026年11月14日 確認
- Security considerations (MCP docs)2026年11月14日 確認
- Streamable HTTP (MCP specification)2026年11月14日 確認
- Connect to local MCP servers (MCP docs)2026年11月14日 確認
- Connect Claude Code to tools via MCP (Claude Code docs)2026年11月14日 確認
- Extend Claude with skills (Claude Code docs)2026年11月14日 確認
- Agent Skills (Claude Platform docs)2026年11月14日 確認
- Developer mode and custom MCP servers in ChatGPT (OpenAI docs)2026年11月14日 確認
- Model Context Protocol (Cursor docs)2026年11月14日 確認
- MCP configuration reference (VS Code docs)2026年11月14日 確認
- MCP servers with Gemini CLI2026年11月14日 確認