アクセス解析は同意後だけ使います。詳細

安全と会社での利用

MCPサーバーのセキュリティチェックリスト⁠|入れる前に確かめること【Claude Code】

要点この記事の答え
  1. 入れる前に、提供元と触れる範囲と送り先と更新を見ます。
  2. AnthropicはMCPサーバーを監査していません。
  3. sandboxは効かないので、ツールごとの権限で守ります。
MCPサーバーを入れる前に、誰が作ったか、何に触れるか、どこへ送るか、どう更新されるかを見て、権限は必要な分だけにします。

MCPサーバーを入れる前に見るのは、提供元、アクセスできる範囲、データの送り先、更新のされ方の4つです。 そのうえでClaude Codeの側では、どの範囲(スコープ)に入れるか、承認の画面をどうするか、ツールごとにdenyやaskを決めます。

見る理由は、AnthropicがMCPサーバーを監査していないからです。公式の説明では、Anthropic Directoryに載せる前の審査はあるものの、MCPサーバーのセキュリティ監査や管理はしていません。初期設定では、Claude Codeを使う人は好きなMCPサーバーをつなげます。

内容は、2026年10月23日に公式のセキュリティ、MCP、権限の設定、sandbox、MCPの組織管理の説明と照らし合わせました。

入れる前のチェックリスト

まず全体の表です。各項目の理由と見方は、次の章で説明します。

見ること確かめる中身確かめる場所
見ること提供元確かめる中身誰が作り、誰が保守しているか。自作か、信頼できる提供元か確かめる場所サーバーの配布元の頁、Anthropic Directoryに載っているか
見ることアクセスの範囲確かめる中身手元のファイル、DB、外部サービスのどこまで触れるか確かめる場所サーバーの説明。トークンの権限(読み取りだけにできるか)
見ることデータの送り先確かめる中身Claude Codeの接続先と、サーバーがその先で何を呼ぶか確かめる場所設定に書いたURL(接続先まで)、サーバーの説明、ソース
見ること更新確かめる中身使えるツールが後から変わらないか。誰が更新を出すか確かめる場所サーバーの更新履歴。/mcpでツール一覧を再確認
見ることスコープ確かめる中身自分だけか、プロジェクト全員か、全プロジェクトか確かめる場所追加したときの--scopeの指定、~/.claude.jsonと.mcp.json
見ること承認確かめる中身初めて使うときに人の承認を通っているか確かめる場所.mcp.jsonのサーバーの承認の画面
見ることツールごとの権限確かめる中身読み取りは許可、書き込みはask、削除はdenyなど確かめる場所/permissions、permissionsのmcp__で始まる規則
見ること会社の許可リスト確かめる中身会社が許可したサーバーだけ使えるか確かめる場所allowedMcpServers、managed-mcp.json

01 誰が提供しているか

Anthropicは、自分で書いたMCPサーバーか、信頼できる提供元のものを使うよう勧めています。Anthropic Directoryのコネクタは、掲載の基準に照らした審査を受けますが、それはセキュリティ監査ではありません。

確認の目安は、次の通りです。これは公式の基準ではなく、当サイトの見方です。

  • 提供元の組織や作者が分かるか。問い合わせ先があるか
  • ソースが公開されていて、更新が続いているか
  • 入れようとしている名前が、本物の公式の配布物か(似た名前の別物でないか)

見落としやすい点が2つあります。公式の説明では、プロジェクトの.mcp.json以外にも、ほかのスコープのサーバー、claude.aiのコネクタ、プラグインがサーバーを足せます。.mcp.jsonを見ても、そのセッションが読み込む全てのサーバーが分かるわけではありません。

02 何にアクセスできるか

MCPサーバーには、つなぎ方が2種類あります。

  • ローカルのサーバー(stdio) あなたのパソコンの上のプロセスとして動きます。公式は、システムに直接アクセスする道具に向くと説明しています
  • リモートのサーバー(HTTPなど) URLの先で動き、OAuthの認証を使えるものがあります

注意が要るのは、公式が書いているsandboxの範囲です。sandboxが囲うのはシェルのコマンドだけで、MCPサーバーは囲いの外で動きます。つまり、sandboxを有効にしても、MCPサーバーが触れる範囲は狭くなりません。守りはサーバー自身の権限と、Claude Codeの権限の規則に頼ります。

そのためトークンは、必要な分だけにします。リモートのサーバーでは、oauth.scopesで、認証のときに求める権限(スコープ)を絞れます。公式は、これを、上流の認証サーバーが示す権限が、許可したい範囲より広いときに、セキュリティ担当が承認した範囲に絞る方法としています。

03 どこへデータを送るか

リモートのサーバーに渡した内容は、設定に書かれたURLのサーバーへ届きます。ただしURLで分かるのは、Claude Codeの接続先までです。そのサーバーが内容をさらに別のサービスへ流すかどうかは、URLだけでは分かりません。つないでいるサーバーの状態は、claude mcp get <名前>と、Claude Code内の/mcpで確認できます。

ローカルのサーバーは、Claude Codeからは見えない通信をすることがあります。サーバー自身が外部のサービスを呼ぶ場合、その通信はClaude Codeのsandboxでは止まりません。送り先は、サーバーの説明とソースで確かめます。

また、外から来た内容は、プロンプトインジェクションの入り口になり得ます。公式も、外の内容を取ってくるサーバーは、つなぐ前に信頼を確かめるよう警告しています。仕組みと対策は、次の記事で説明しています。

関連記事安全と会社での利用プロンプトインジェクションとは?Claude Codeでの例と対策【2026年10月】プロンプトインジェクションを平易に解説し、READMEやWebページ、Issue、MCPの返事から入る例と、完全には防げない理由、deny・sandbox・通信先の許可リスト・人の承認で被害を小さくする方法をまとめます。

04 どう更新されるか

MCPサーバーは、つながっている間に、自分が出すツールや資源の一覧を変えられます。変更の通知(list_changed)が来ると、公式の説明では、対話式のセッションのClaude Codeは、再接続しなくても新しい一覧を取りにいきます。入れたときに確かめたツールの一覧が、後から変わり得るということです。

更新の出し方も、サーバーの作りしだいです。当サイトの見方としては、次の点を確かめます。

  • 更新の履歴が公開されているか。誰が更新を出せるか
  • 起動の命令で版を指定できるか(指定できる作りなら、決めた版に固定する)
  • 月に一度ほど、/mcpでツールの一覧を見直す

05 Claude Codeで決める設定

スコープ

公式の説明では、スコープは3つあります。

スコープ読み込まれる範囲チームへの共有保存先
スコープローカル(初期設定)読み込まれる範囲今のプロジェクトだけチームへの共有なし保存先~/.claude.json
スコーププロジェクト読み込まれる範囲今のプロジェクトだけチームへの共有あり(バージョン管理)保存先プロジェクト直下の.mcp.json
スコープユーザー読み込まれる範囲自分の全プロジェクトチームへの共有なし保存先~/.claude.json

迷ったら、ローカルから始めます。全プロジェクトに入れる前に、そのサーバーが本当に全部で要るかを考えます。

承認

対話式のセッションでは、.mcp.jsonのサーバーを使う前に、承認の画面が出ます。選んだ結果をやり直すときは、claude mcp reset-project-choicesを使います。止めたいサーバーは、設定のdisabledMcpjsonServersに入れると、どの権限モードでも使えなくなります。

注意が1つあります。公式の説明では、claude -pの実行、Agent SDK、クラウドのセッションの一部では、承認の画面を出せないため、プロジェクトのサーバーを確認なしで読み込みます。自動実行にリポジトリを使うときは、.mcp.jsonの中身を先に確かめてください。

ツールごとの権限

MCPのツールは、mcp__<サーバー名>__<ツール名>の形で規則に書けます。サーバーの全ツールはmcp__<サーバー名>__*です。規則は、deny、ask、allowの順に見られ、denyの規則に、allowで例外は作れません。読み取りは許可、書き込みは確認、削除は拒否、という分け方の例です。サーバー名とツール名は例です。

設定
{
  "permissions": {
    "allow": ["mcp__example__get_*"],
    "ask": ["mcp__example__update_item"],
    "deny": ["mcp__example__delete_item"]
  }
}

allowの規則でツール名にワイルドカードを使えるのは、mcp__<サーバー名>__の後ろだけです。サーバー名には使えません。

会社で使うとき

初期設定では、誰でも好きなMCPサーバーをつなげます。会社で止めるには、公式の説明どおり、次の道具があります。

  • managed-mcp.jsonで、全員に同じサーバーだけを配る。空のサーバー一覧にして、managedMcpServersなどの設定を併用しなければ、MCPを無効にできる
  • allowedMcpServersとallowManagedMcpServersOnlyで、承認したサーバーだけを許可する
  • deniedMcpServersで、知られている危険なサーバーだけを止める
  • OpenTelemetryの出力で、どのMCPサーバーとツールが実際に使われているかを集める(OTEL_LOG_TOOL_DETAILS=1)

公式は、承認済みの一覧とそのclaude mcp addの命令を、社内のWikiなど、利用者が見つけられる場所に載せるよう案内しています。会社全体の運用の決め方は、次の記事にまとめています。

関連記事安全と会社での利用Claude Codeのチーム運用|権限・費用・品質を管理する実践ガイドClaude Codeをチームで運用するための実務設計。利用目的、データ、権限、品質、費用、監査のルールと、2〜4週間の導入手順をチェックリストで解説します。

関連する記事

MCPのつなぎ方と代表的なサーバーは、次の記事で説明しています。

関連記事広げるClaude Code MCPの追加・設定方法|claude mcp addの手順、.mcp.jsonの場所、おすすめサーバーClaude CodeでMCPサーバーを追加・設定する方法を公式ドキュメントにそって説明します。claude mcp addの手順とスコープ、設定ファイルの場所と書き方、.mcp.jsonの承認、目的別のおすすめと実例、MCPとSkillsの違い、MCPの欠点、自作とセキュリティ、うまくいかないときの直し方まで。

権限とsandbox全体の設定は、次の記事が対象です。

関連記事安全と会社での利用Claude Codeのセキュリティ設定|権限・sandbox・法人運用【2026年版】Claude Codeを安全に使うためのpermissions、sandbox、機密ファイル拒否、ネットワーク制御、managed settings、データ保持、監査を公式仕様で解説。

よくある質問

MCPサーバーは安全ですか?

サーバーによります。AnthropicはMCPサーバーのセキュリティ監査をしていません。提供元、アクセスの範囲、送り先、更新のされ方を、入れる前に確かめます。

MCPサーバーにsandboxは効きますか?

効きません。公式は、sandboxが囲うのはシェルのコマンドだけで、MCPサーバーは囲いの外で動くと書いています。ツールごとの権限の規則と、トークンの権限の絞り込みで守ります。

チームで入れるMCPサーバーを決めるには?

.mcp.jsonで共有できます。会社で入れられるサーバーを限るなら、allowedMcpServersやmanaged-mcp.jsonを使います。

承認の画面が出ないことはありますか?

あります。claude -pの実行、Agent SDK、クラウドのセッションの一部では、承認の画面を出せず、プロジェクトのサーバーを確認なしで読み込みます。