Claude Code に MCP サーバーを追加する方法(claude mcp add と .mcp.json の使い分け)

Claude Code 公開:

Claude Code で MCP サーバーを追加・管理する手順を解説します。claude mcp add コマンドの書き方、local・project・user の 3 つのスコープ、.mcp.json でチーム共有する方法、認証と接続確認のコツを紹介します。

検証日 2026年9月7日 仕様変更が早い分野です。最新の公式ドキュメントも併せてご確認ください。
目次
  1. 追加コマンドの基本形
    1. stdio(ローカルでプロセスを起動する)方式
    2. HTTP / SSE(リモートサーバー)方式
  2. スコープ:設定をどこに置くか
  3. 接続を確認する
  4. ツールの実行許可を設定する
  5. どのサーバーから入れるべきか
  6. まとめ

MCP(Model Context Protocol)は、AI エージェントに外部ツールやデータソースを接続するための共通規格です。Claude Code に MCP サーバーを追加すると、GitHub の Issue 操作、ブラウザ操作、データベース参照などを、Claude が自分で判断して実行できるようになります。

この記事では、claude mcp add コマンドによる追加手順と、設定を「自分だけ」「このプロジェクトのチーム全員」「自分の全プロジェクト」のどこに置くかを決めるスコープの考え方を整理します。

KEY POINT

この記事で分かること

  • claude mcp add の基本形と stdio / HTTP の違い
  • local / project / user の 3 つのスコープと保存先
  • 接続確認、認証、権限設定の方法

追加コマンドの基本形

stdio(ローカルでプロセスを起動する)方式

多くの MCP サーバーは npm パッケージとして配布され、npx で起動します。

claude mcp add <> -- <起動コマン> [引数...]

例:Playwright(ブラウザ操作)サーバーを追加する場合。

claude mcp add playwright -- npx @playwright/mcp@latest

-- より後ろが、サーバーを起動するコマンドです。環境変数が必要な場合は -e で渡します。

claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxx -- npx -y @modelcontextprotocol/server-github

HTTP / SSE(リモートサーバー)方式

ホスティングされた MCP サーバーには --transport http で接続します。

claude mcp add --transport http <> <URL>

認証が必要なサーバーは、追加後に対話中の /mcp コマンドからブラウザ経由でログイン(OAuth)できます。

用語解説

stdio と HTTP の違い: stdio はローカルでサーバープロセスを起動し、標準入出力でやり取りします。HTTP は既に動いているサーバーに URL で接続します。ローカルのファイルやブラウザを操作するものは stdio、SaaS が提供する公式サーバーは HTTP が一般的です。

スコープ:設定をどこに置くか

--scope オプションで、設定の保存先と共有範囲が変わります。

スコープ保存先共有範囲向いている用途
local(既定)~/.claude.json(プロジェクトごとの項目)自分・このプロジェクトのみ個人の試用、認証情報を含むもの
projectリポジトリ直下の .mcp.jsonチーム全員(Git で共有)プロジェクト共通のツール
user~/.claude.json自分の全プロジェクトどこでも使う汎用ツール
# チームで共有する
claude mcp add --scope project playwright -- npx @playwright/mcp@latest

# 自分の全プロジェクトで使う
claude mcp add --scope user context7 -- npx -y @upstash/context7-mcp

project スコープで追加すると、次のような .mcp.json が生成されます。手で書いても構いません。

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

.mcp.json では ${環境変数名} の形で環境変数を参照できます。トークンそのものは書かず、各自のシェルの環境変数から読ませるのが原則です。

トークンを .mcp.json に直接書かない

.mcp.json は Git にコミットされます。env にアクセストークンを直接書くと、リポジトリの閲覧者全員に漏れます。必ず ${VAR} 形式で環境変数を参照するか、local スコープに置いてください。

接続を確認する

claude mcp list        # 登録済みサーバーと状態の一覧
claude mcp get github  # 個別の設定を表示
claude mcp remove github

対話中は /mcp を実行すると、各サーバーの接続状態、提供されているツール名、認証の要否が表示されます。「failed」になっている場合は、起動コマンドを手動で実行してエラーを確認するのが早道です。

npx @playwright/mcp@latest   # 単体で起動してエラーが出ないか確認

ツールの実行許可を設定する

MCP のツールも、通常のツールと同じく実行前に確認が入ります。頻繁に使うものは settings.json の permissions で自動許可にできます。

{
  "permissions": {
    "allow": [
      "mcp__playwright",
      "mcp__github__get_issue",
      "mcp__github__list_pull_requests"
    ],
    "ask": [
      "mcp__github__create_pull_request"
    ]
  }
}

mcp__サーバー名 でサーバーの全ツール、mcp__サーバー名__ツール名 で個別に指定します。書き込み系のツールは ask に残しておくと安全です。permissions の詳細は settings.json で permissions を設計する を参照してください。

どのサーバーから入れるべきか

最初の 1 つは、日常の作業で「Claude に見せられなくて困っている情報」を提供するものを選ぶと効果を実感しやすいです。ブラウザの実画面(Playwright)、ライブラリの最新ドキュメント(Context7)、Issue や PR(GitHub)が定番です。具体的な候補は コーディング AI で最初に入れるべき MCP サーバー にまとめています。

まとめ

  • claude mcp add 名前 -- 起動コマンド で stdio サーバー、--transport http でリモートサーバーを追加する
  • スコープは local(自分のみ)/ project(.mcp.json でチーム共有)/ user(自分の全プロジェクト)
  • トークンは ${VAR} で環境変数から読ませ、.mcp.json に直接書かない
  • /mcpclaude mcp list で接続状態を確認し、permissions で自動許可の範囲を決める

よくある質問

MCP サーバーの設定はどのファイルに保存されますか?
スコープによって異なります。local と user は ~/.claude.json、project は リポジトリ直下の .mcp.json に保存されます。
MCP サーバーが接続できているか確認する方法は?
対話中に /mcp コマンドを実行すると、各サーバーの接続状態と提供ツールの一覧が表示されます。CLI では claude mcp list で確認できます。
MCP サーバーのツールに自動許可を与えられますか?
settings.json の permissions.allow に mcp__サーバー名__ツール名(または mcp__サーバー名)を書くと、確認なしで実行されます。

参考にした一次情報

この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合はお問い合わせからお知らせください。