Claude Code に MCP サーバーを追加する
Claude Code は、デフォルトでもファイル編集・Bash 実行・Web 検索など、ひととおりの作業をこなせます。ですが、ふだん自分が使っている 外部のサービス(GitHub、Sentry、自前のデータベース、Google Drive など)の状態を見たり操作したりするには、もう一歩仕掛けが要ります。
その仕掛けが、MCP(Model Context Protocol) です。Anthropic が定めた共通プロトコルで、Claude Code から「外の道具」へつなぐ標準的な口になっています。サーバーを 1 つ足せば、それが提供するツールやデータが、Claude Code から呼べるようになる ── そんなイメージです。
この記事では、MCP サーバーを Claude Code に追加する具体的な手順、スコープの違い、挫折ポイントまでを、個人開発者向けに整理します。対象は Claude Code v2.1.150 時点。Claude Code の入口となる組み込みスキル・スラッシュコマンド・hooks・サブエージェントは別記事(組み込みスキル 10 個/スラッシュコマンド 30 個/hooks でできること/サブエージェントの使い方)にまとめています。
MCP とは何か、何を解いてくれるか
MCP は、AI クライアント(ここでは Claude Code)と、外部のデータソースや道具の間に立つ、標準化された通信仕様 です。MCP に対応した「サーバー」を起動しておくと、Claude Code はそのサーバーが提供する次の 3 種類を取り回せます。
- ツール(Tools) … 「GitHub の Issue を取ってくる」「Sentry のエラーを検索する」のような、Claude が呼び出す関数。
- リソース(Resources) … サーバーが公開する読み取り可能なデータ。ファイル・DB のテーブル・社内ドキュメントなど。
- プロンプト(Prompts) … サーバー側に保存された再利用可能なプロンプトのテンプレート。
「外のサービスごとに、Claude に新しい API を覚えさせる」のではなく、「MCP という共通の口に揃える」。これが解いてくれる本質です。仕様が共通なので、誰かが書いた MCP サーバーをそのまま借りてくることもできます。
追加の最小形:claude mcp add
サーバーの足し方は 3 通りありますが、いちばん速いのは CLI です。
# HTTP 型の MCP サーバー(例:Sentry の公式)を追加
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
# stdio 型(ローカルでサブプロセスを起動)の MCP サーバーを追加
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/dir
-- の後ろが、サーバーを起動するための実行コマンドと引数です。これだけで、Claude Code を次に起動したときから、対応するツール群が使えるようになります。
確認は claude mcp list、詳細は claude mcp get <name>、外したいときは claude mcp remove <name>。
トランスポート(接続の型)3 つ
--transport で指定できる接続の型は 3 つあります。「どのサーバーをどの型で繋ぐか」は、サーバー側の仕様で決まっています。
| 型 | いつ使うか | 例 |
|---|---|---|
stdio(既定) | ローカルでサブプロセスとして起動する MCP サーバー | 公式の filesystem、自作のローカル MCP |
http | HTTP エンドポイントを公開している MCP サーバー | Sentry、Canva など SaaS 提供の MCP |
sse | HTTP の古いストリーミング方式(Server-Sent Events) | 旧式の HTTP MCP 互換用 |
何も指定しなければ stdio です。公式の @modelcontextprotocol/server-* 系は基本 stdio、SaaS が「自社の MCP エンドポイント」を公開している場合は基本 http、と覚えておけば最初は迷いません。
スコープ(どこに保存するか)3 つ
-s または --scope で、設定の保存先を選べます。
| スコープ | 効く範囲 | 用途 |
|---|---|---|
local(既定) | このマシンの、このプロジェクトだけ | 試運転・個人用・シークレットを含む設定 |
user | このマシンの、すべてのプロジェクト | 自分専用で全プロジェクト共通の道具(GitHub MCP など) |
project | リポジトリ直下の .mcp.json に書く | チームで共有したい、プロジェクト共通の MCP |
project スコープで追加すると、リポジトリ直下に .mcp.json が作られ、git で共有できます。チームで MCP の構成を揃えたいときに使う型です。一方、API キーのような秘密はここに書かない(後述)。
よく使う最初の MCP サーバー
「最初にどれを足すと良いか」は使い道によりますが、個人開発者でよく挙がるのは次のあたりです。
- 公式 filesystem … プロジェクト外のディレクトリも安全に読み書きさせたい時。
@modelcontextprotocol/server-filesystem。 - GitHub … Issue・PR・コード検索を Claude から直接呼べるようにする。レビューや差分の説明づくりが速くなる。
- Sentry(HTTP) … エラーログを Claude から検索できる。トレースを貼って原因仮説を出させる流れが組める。
- データベース MCP(postgres / sqlite など) … スキーマを把握させて、安全に SELECT を試させる。本番接続は基本やらない。
- Playwright … ブラウザ操作を Claude に任せる。E2E のテストアシスト・スクレイピング系の試作。
これらは大半が、npx -y @modelcontextprotocol/server-<name> のように、ローカルに何もインストールせずに起動できます。試したい MCP をひとつ決めたら、claude mcp add を 1 行打って、Claude Code を再起動してみる ── そこから 5 分で動きます。
.mcp.json(プロジェクトで共有する型)
-s project で追加すると、リポジトリ直下に .mcp.json が作られます。中身は、claude mcp add-json で渡せる JSON とほぼ同じ構造です。
{
"mcpServers": {
"github": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" }
}
}
}
type…stdio/http/sse。commandとargs… stdio のときに起動するコマンドと引数。env… 環境変数(秘密はここに直書きせず、${...}でシェル環境から借りる)。
このファイルを git に乗せておけば、別マシンでも同じ MCP 構成で Claude Code を立ち上げられます。hasTrustDialogAccepted などの内部状態は混ぜないこと(後述)。
挫折ポイント
ここで止まりがちな箇所を、先に書いておきます。
- 「
.mcp.jsonを読み込むか?」のダイアログ … プロジェクト共有の.mcp.jsonがある状態で Claude Code を初めて起動すると、「このプロジェクトの MCP サーバーを信頼しますか?」と確認されます。任意のコマンドを起動できる仕組みなので、出所が分かっている時だけ承認します。間違って却下したらclaude mcp reset-project-choicesで取り直せます。 - API キーを
.mcp.jsonに直書きしない …envに書く値は環境変数の参照(${VAR})にする。リポジトリにシークレットを落とすと、ローテーションが必要になります(既に落としたら即ローテート)。 - stdio MCP は Node / Python のバージョンに依存する …
npxで動かす MCP は、ローカルの Node 版が古いと起動しません。.nvmrcなどでバージョンを固定するか、最初にnode --versionを確認します。 - HTTP MCP の認証はサーバー次第 …
--headerで API キーを乗せる型、OAuth フローに乗る型(--client-id/--client-secret)、claude.ai が裏で取り回す型(Canva・Google Drive など)と、サーバーごとに違います。「うまく繋がらない」の半分はここです。 localとuserを混同しない …localは「このマシン・このプロジェクト」だけ。別プロジェクトで使いたければ-s userで入れ直す必要があります。- 道具を増やしすぎない … MCP サーバーを足せば足すほど、Claude が考慮する選択肢と消費するコンテキストが増えます。常用するもの 2〜3 個に絞るほうが、結果として速く動きます。
まとめ
MCP は、Claude Code に「外の道具」を標準的な口で繋ぐための仕組みです。最初の 1 本は、公式 filesystem か、自分が日常で使うサービス(GitHub・Sentry など)の MCP から ── claude mcp add を 1 行打って、再起動して、動くのを見るところから始めるのが、いちばん体感が早い入り口です。
プロジェクトで共有したくなった段階で -s project で .mcp.json に切り出す。秘密はリポジトリに書かない。常用は 2〜3 個に絞る。この 3 つを守れば、MCP の追加で大きく事故ることはありません。
MCP サーバーが「外への入口」だとすれば、Claude 本体への指示書である CLAUDE.md には何を書くべきか、ハーネス側の自動化である Claude Code の hooks でできること、別コンテキストで動く Claude Code のサブエージェントの使い方 と合わせて読むと、Claude Code 全体の輪郭がいっそう掴みやすくなります。