MCPサーバーの選び方
MCP サーバーのおすすめを探す前に、見ておきたい基準がある。出どころ、接続方式、スコープ、出力の大きさ、権限の絞り方を確かめた。
MCP サーバーは、探せばいくらでも見つかります。便利そうなものを片端から足したくなりますが、MCP サーバーを足すことは、エージェントに新しい道具と、新しい入口を渡すことでもあります。この記事では、既存の MCP サーバーを選ぶときに編集部が見ている基準と、入れたあとの権限の絞り方をまとめます。特定のサーバーのおすすめ一覧ではありません。
MCP の仕組みそのものは「MCPサーバー入門と設計の5原則」に書きました。Claude Code をまだ入れていない人は「Claude Codeの始め方」から始めてください。確認には、手元の Claude Code 2.1.301 を、空の一時ディレクトリを HOME にして使いました。ログインはしていません(2026-10-16)。
出どころを見る
最初に見るのは、誰が作って誰が保守しているかです。公式ドキュメントは、つなぐ前にそのサーバーを信頼できるか確かめるよう警告しています。外部のコンテンツを取ってくるサーバーは、プロンプトインジェクションの危険にさらす可能性がある、とも書いています(出典:https://code.claude.com/docs/en/mcp 、2026-10-16確認)。同じページは、審査済みのコネクタを探す場所として Anthropic Directory を挙げています。
編集部では、次の順で見ています。
- サービスの提供元が自分で出しているものか、第三者が作ったものか
- 最近も更新されているか、問題の報告に対応しているか
- Web ページやメール、チケットのような、他人が書いた文章を取ってくるか
3つ目に当てはまるサーバーは、便利でも慎重に扱います。取ってきた文章の中に、エージェントへの指示に見える文が紛れ込んでいれば、それを読んだエージェントが従ってしまうおそれがあるからです。
接続方式を見る
MCP サーバーには、手元のプロセスとして動く stdio と、リモートにつなぐ HTTP などがあります。公式は、リモートの MCP サーバーにつなぐなら HTTP を推奨し、SSE の方式は非推奨としています(同出典)。
stdio のサーバーは、手元のマシンで、自分のユーザーの権限のまま動くプログラムです。ここで、手元で一つ気づいたことがあります。ダミーのサーバー(起動したら印のファイルを作り、あとは入力をそのまま返すだけのもの)を登録し、claude mcp list を打ちました。
Checking MCP server health…
dummy-shared: /bin/sh -c touch /tmp/mcpsel/ran-shared; cat - ⏸ Pending approval (run `claude` to approve)
dummy-local: /bin/sh -c touch /tmp/mcpsel/ran-local; cat - ✘ Failed to connect — -32601: Method not found
一覧を見ただけのつもりでも、登録済みのサーバーの状態を確かめるために、そのコマンドが実際に起動されていました。印のファイル ran-local ができていたからです。これは Claude Code 2.1.301 での手元の観察で(2026-10-16)、公式ドキュメントに書かれた挙動ではありません(接続の失敗は、ダミーが MCP の応答を返さないためです)。stdio のサーバーを登録するということは、そのコマンドを自分の権限で動かしてよい、と認めることだと考えたほうが安全です。登録する前に、何が起動するのかを読みます。
スコープを見る
登録先のスコープは3つあります。公式によると、local(既定)は今のプロジェクトで自分だけ、project は .mcp.json でプロジェクトの全員と共有、user はすべてのプロジェクトで自分だけ、です(同出典)。
一つのプロジェクトでしか使わないものを user に入れると、関係のないプロジェクトにまで道具が増えます。まず local で試し、チームで使うと決まったら project に移す、という順が無難です。
.mcp.json に書かれたサーバーは、承認するまで動きません。上の出力の dummy-shared は、プロジェクトの .mcp.json に書いたもので、「Pending approval」と表示され、印のファイル ran-shared は作られていませんでした。他人のリポジトリを開いたときに、勝手にサーバーが動かないための仕組みです。承認するときは、そのコマンドを読んでからにします。
出力の大きさを見る
サーバーが返す結果の大きさも、選ぶ基準になります。公式によると、MCP のツールの出力が 10,000 トークンを超えると警告が出て、既定では 25,000 トークンで打ち切られます。上限は MAX_MCP_OUTPUT_TOKENS で変えられます(同出典)。
大きな結果を一度に返すサーバーは、そのぶん会話の文脈を使います。検索や一覧を返すサーバーなら、件数を絞る引数や、ページを分ける仕組みがあるかを見ます。
入れたあとに権限を絞る
選んで入れたら、そのサーバーのツールを全部許すのではなく、使うものだけを許します。公式の権限のルールでは、mcp__サーバー名 でそのサーバーのツール全部、mcp__サーバー名__ツール名 で特定のツールを指せます。deny と ask のルールでは、mcp__* で、すべてのサーバーのツールに当たる deny のルールも書けます(出典:https://code.claude.com/docs/en/permissions 、2026-10-16確認)。
{
"permissions": {
"allow": ["mcp__dummy-docs__search"],
"deny": ["mcp__dummy-docs__delete_page"]
}
}
読み取りのツールは許し、書き込みや削除のツールは拒否するか、毎回確認にします。サーバー名とツール名はダミーです。
同じページによると、settings のファイルで mcp__ のルールに括弧を付けて引数まで絞ろうとすると、そのルールは読み飛ばされます。引数で絞りたいときは --disallowedTools を使う、と書かれています(同出典)。設定したつもりのルールが効いていない、ということが起きうるので、書いたあとに確かめます。
読み取りと書き込みをどう分けるかの考え方は「AIエージェントの権限設計」にまとめました。
まとめ
- 出どころを見る。他人が書いた文章を取ってくるサーバーは、プロンプトインジェクションの入口になる。
- リモートなら HTTP。stdio は自分の権限で動くプログラムで、
claude mcp listでも起動された。 - スコープはまず
local。.mcp.jsonのサーバーは承認するまで動かないので、読んでから承認する。 - 出力が大きいサーバーは文脈を食う。件数を絞れるかを見る。
- 入れたら、ツール単位で許可と拒否を書き分ける。