blog

Claude Code MCP設定の使い方|外部ツール連携の実装【2026】

目次

関連記事Claude Code(クロードコード)とは?できること・料金・使い方を初心者にもやさしく解説【2026年版】 / Claude Code 使用量を完全制御する実装ガイド【2026年版】 / Claude Code ログイン方法・できない時の対処法|2026年版ガイド

Claude Code MCPとは何か:AIコーディングを拡張する仕組みの全体像

Claude CodeのMCPとは、Claude CodeにGitHub・データベース・Notionなどの外部ツールをつなぐための仕組みです。追加はコマンド1行(claude mcp add)ででき、リモートのサービスは --transport http、手元で動かすものは --transport stdio を指定します。このページでは、追加の手順・保存先(スコープ)の違い・主なサーバー・つながらないときの対処までを、公式ドキュメント(2026年10月10日確認)に沿って説明します。

Claude Code(クロードコード)を日常業務で使い込んでいると、ある壁にぶつかる。「ファイルは書き換えられるのに、外部サービスのデータが取れない」「ブラウザを操作させたい」「社内ツールと連携したい」——そこで登場するのがMCP(Model Context Protocol)だ。MCPはAnthropicが策定したオープン規格で、AIモデルと外部ツール・データソースを標準化されたプロトコルで繋ぐ仕組みである。Claude CodeにMCPを組み合わせると、ターミナル上のAIエージェントが単なるコード生成機から、外部APIを叩き・DBを参照し・ブラウザを制御する「実務エージェント」へと変貌する。本記事では、MCPの仕組みから具体的なサーバーの追加手順、実務での活用パターン、トラブルシュートまでを一気通貫で解説する。

MCPの基本概念:なぜClaude Codeに必要なのか

MCPを理解する最短ルートは「AIのためのUSB規格」というアナロジーだ。USBが登場する前、周辺機器ごとに独自ドライバが必要だったように、AI×外部ツール連携もかつてはツールごとに個別実装が必要だった。MCPはその接続口を標準化し、どのAIモデルでも同じプロトコルで外部機能を呼び出せるようにした。

Claude Codeの文脈では、MCPは「Claude Codeが呼び出せる能力の拡張パック」として機能する。Claude Code自体はファイルシステム操作・コマンド実行・コード生成といったコア能力を持つが、MCPサーバーを追加することで以下のような能力が付け加わる。

  • GitHubのIssueやPRをリアルタイムで参照・操作する
  • PostgreSQL / SQLiteなどのデータベースにクエリを投げる
  • Webブラウザを制御してスクレイピングやE2Eテストを実行する
  • SlackやNotionへの書き込み・読み取りを行う
  • 外部APIのドキュメントを動的に取得して実装に活かす

MCPのアーキテクチャ:ホスト・クライアント・サーバー

Claude Code
(ホスト/クライアント)
→
MCPプロトコル
(JSON-RPC 2.0 over
stdio / SSE)
→
MCPサーバー
(GitHub / DB / Browser
など各種)
→
外部リソース
(API・DB・Web等)

MCPは3層構造で動作する。ホスト(Claude Code)がユーザーの指示を受け取り、必要なツールを呼び出す判断を行う。MCPクライアントはホストに組み込まれており、サーバーとの通信セッションを管理する。MCPサーバーは外部ツールやデータソースへの実際のアクセスを担当し、Claude Codeからは独立したプロセスとして動作する。通信にはJSON-RPC 2.0を使用し、ローカルプロセス間通信(stdio)またはHTTP/SSE経由で接続される。

Claude CodeへのMCPサーバーの追加方法

MCPサーバーの追加方法は、公式ドキュメントの分類に沿って整理すると、リモートのサーバーをHTTPで追加する、手元で動かすサーバー(stdio)を追加する、設定ファイルに直接書くの3つになる。どれも claude mcp add コマンドか .mcp.json で行う。

方法①:リモートのサーバーをHTTPで追加する(公式の推奨)

Notion・GitHub・Sentryのように、サービス側がMCPサーバーを公開している場合はこの方法を使う。公式ドキュメントは、リモート接続にはHTTPを使うよう勧めている。

# 基本構文
claude mcp add --transport http <サーバー名> <URL>

# 例:Notionに接続する
claude mcp add --transport http notion https://mcp.notion.com/mcp

# 例:トークンをヘッダーで渡す
claude mcp add --transport http secure-api https://api.example.com/mcp \
  --header "Authorization: Bearer your-token"

ログインが必要なサーバーは、追加したあとにClaude Codeの中で /mcp を開いて認証する。トークンを設定ファイルに書かずに済むので、チームで設定を共有するときも安全だ。

方法②:手元で動かすサーバー(stdio)を追加する

自分のPCの中で動かすサーバー(ファイル操作や自作のスクリプトなど)は、stdio方式で追加する。サーバーを起動するコマンドは --(ハイフン2つ)の後ろに書く。

# 基本構文
claude mcp add [オプション] <サーバー名> -- <コマンド> [引数...]

# 例:ファイルシステムMCPサーバーを追加
claude mcp add --transport stdio filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/dir

# 例:環境変数を渡す(公式ドキュメントの例)
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
  -- npx -y airtable-mcp-server

つまずきやすい点が2つある。1つ目は -- の位置で、これより前がClaude Codeへのオプション(--transport・--env・--scope)、後ろがサーバーの起動コマンドになる。-- を省くと、サーバー側の引数をClaude Codeが自分のオプションとして読もうとして失敗する。2つ目は --env の直後にサーバー名を書かないことだ。公式ドキュメントによると、--env は複数の「名前=値」を受け取るため、直後のサーバー名まで値として読まれて拒否される。間に --transport stdio などを挟む。

追加したサーバーの一覧は claude mcp list、1つの詳細は claude mcp get <サーバー名> で確認でき、削除は claude mcp remove <サーバー名> で行う。一覧には「Connected(接続済み)」「Needs authentication(認証が必要)」「Failed to connect(接続失敗)」といった状態が表示される。

方法③:設定ファイル(.mcp.json)に直接記述する

プロジェクトチームで設定を共有したい場合や、複数のサーバーをまとめて管理したい場合は、リポジトリの直下に置く .mcp.json に書く方法が便利だ。以下は記述例だ。

{
  "mcpServers": {
    "notion": {
      "type": "http",
      "url": "https://mcp.notion.com/mcp"
    },
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/project"]
    },
    "db": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@bytebase/dbhub", "--dsn", "${DATABASE_URL}"]
    }
  }
}

環境変数は${VARIABLE_NAME}形式で参照できる。APIキーやパスワードなどの機密情報はファイルに直接書かず、必ず環境変数経由で渡す。また、url を書いたのに type を省くと、stdioサーバーとして読まれて設定エラーになる。リモートのサーバーには必ず "type": "http" を付ける。

.mcp.json に書かれたサーバーは、安全のため、対話セッションで最初に使う前に承認を求められる。他人のリポジトリを開いたときに、知らないサーバーが勝手に動くのを防ぐための仕組みだ。承認の選択をやり直したいときは claude mcp reset-project-choices を実行する。

claude.aiで追加したコネクタは、そのままClaude Codeでも使える

公式ドキュメントによると、claude.aiのアカウントでClaude Codeにログインしている場合、claude.ai側で追加したMCPサーバー(コネクタ)は、Claude Codeでも自動的に使えるようになる。ブラウザ版ですでにNotionやGoogle Driveなどをつないでいる人は、Claude Code側で同じ設定をやり直す必要がない。

claude mcp add --transport httpでNotionのMCPサーバーを追加し、claude mcp listで接続状態を確認した画面
実際にMCPサーバーを追加した画面(2026年10月8日・Claude Code 2.1.294)。claude mcp add --transport http notion https://mcp.notion.com/mcp で追加し、claude mcp list で一覧と接続状態を確認します。Notionのように認証が必要なサーバーは「Needs authentication」と表示され、Claude Code内で /mcp を開いて認証すると使えるようになります。

リモート接続の認証と、保存先(スコープ)の使い分け

リモート接続の方式について補足する。かつて主流だったSSE(Server-Sent Events)transport は現在では非推奨(deprecated)となり、Claude Code公式ドキュメントは「利用可能な場合は HTTP サーバーを使うこと」を明示している。リモートのMCPサーバーに繋ぐなら、まず HTTP transport を選ぶのが2026年時点の定石だ。追加コマンドは --transport http を明示する。

claude mcp add --transport http notion https://mcp.notion.com/mcp

認証も進化している。静的な Authorization: Bearer ヘッダーを設定ファイルに書く方式に加え、リモートサーバーが OAuth 2.0 に対応している場合は、トークンをファイルに置かずに Claude Code 内の /mcp スラッシュコマンドから対話的に認証できる。APIキーを .mcp.json に残さずに済むため、チーム共有時の情報漏えいリスクを下げられる。なお .mcp.json に url だけ書いて type を省くと stdio サーバーと誤認され接続に失敗するため、リモートは必ず "type": "http"(仕様上の別名 streamable-http も可)を明記する。

もう一点、実務で混乱しやすいのが設定の保存スコープだ。claude mcp add の --scope は3種類あり、それぞれ「どのプロジェクトで読み込まれるか」「チームと共有されるか」が異なる。

スコープ(–scope) 読み込まれる範囲 チーム共有 保存先
local(既定) そのプロジェクトのみ・自分だけ されない ~/.claude.json
project そのプロジェクトのみ される(バージョン管理経由) .mcp.json(リポジトリルート)
user 自分の全プロジェクト されない ~/.claude.json

間違えやすいのは、MCPの「local」スコープの保存先だ。公式ドキュメントも注意書きを付けているとおり、MCPのlocalスコープのサーバーはホームディレクトリの ~/.claude.json に保存され、一般の設定で使う .claude/settings.local.json(プロジェクト内)とは別の場所になる。同じ名前のサーバーが複数のスコープにあるときの優先順位もあるため、追加したら claude mcp list で一度確認しておくと安全だ。個人検証は local、チーム共有は project(.mcp.json をコミット)、複数リポジトリで使い回す個人ツールは user、という基準で選ぶと迷わない。

主要なMCPサーバーとClaude Codeでの活用パターン

主要なMCPサーバーと、Claude Codeでの具体的な使い方を整理する。MCPの公式リポジトリでは、以前「参照サーバー」として配布されていたもののうち、GitHub・PostgreSQL・Brave Search・Puppeteer・Slack・Sentryなどがアーカイブ(保守終了)に移されている。古い記事にある @modelcontextprotocol/server-github のようなパッケージ名は、現在は推奨されない点に注意したい(2026年10月10日確認)。

MCPサーバー 入手先(2026年10月時点) 主な機能 Claude Codeでの典型的な用途
Filesystem @modelcontextprotocol/server-filesystem(現行の参照サーバー) ファイル読み書き・ディレクトリ操作 指定したディレクトリだけに操作を限定する
Git 現行の参照サーバー(公式リポジトリの src/git) Gitリポジトリの読み取り・検索・操作 履歴や差分を調べさせる
Fetch 現行の参照サーバー(公式リポジトリの src/fetch) Webページの取得と変換 ドキュメントのページを読ませる
Memory @modelcontextprotocol/server-memory(現行の参照サーバー) ナレッジグラフ形式の記憶 設計判断やメモを蓄積する
GitHub GitHub公式のリモートサーバー https://api.githubcopilot.com/mcp/(旧参照版はアーカイブ済み) Issue/PR操作・コード検索・リポジトリ管理 Issue内容を読んでコードを修正し、PRを作成する
PostgreSQLなどのDB @bytebase/dbhub(Claude Code公式ドキュメントの例。旧参照版はアーカイブ済み) SQLクエリ実行・スキーマ参照 読み取り専用ユーザーでスキーマを読ませ、クエリを作らせる
Brave Search 旧参照版はアーカイブ済み。Brave公式のサーバーに置き換え Web検索 最新ライブラリのドキュメントを調べさせる
ブラウザ操作 旧参照版のPuppeteerはアーカイブ済み。Playwrightなど各提供元のサーバーを使う ブラウザ制御・スクリーンショット E2Eテストの自動化・画面の確認
Slack 旧参照版はアーカイブ済み(現在はZencoderが保守) メッセージ送受信・チャンネル管理 作業結果をSlackに通知する
Sentry 旧参照版はアーカイブ済み。Sentryが提供するサーバーを使う エラー・イベント情報取得 本番エラーのスタックトレースを読ませて修正する

GitHubにつなぐ場合、公式ドキュメントの例は次のとおりだ。GitHubで発行した個人アクセストークンをヘッダーで渡す。

claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer YOUR_GITHUB_PAT"

データベースにつなぐ場合の公式ドキュメントの例は次のとおりで、接続文字列には読み取り専用のユーザーを使うよう勧められている。

claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
  --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"
Claude CodeがMCPを通じて複数の外部サービスと連携するイメージ
Claude CodeがMCPを通じて複数の外部サービスと連携するイメージ

実務でよく使う組み合わせ:GitHub + Postgres + Brave Search

最初の組み合わせとして分かりやすいのが、GitHub + データベース + Web検索の3つだ。典型的なワークフローは以下のとおりだ。

  1. 「Issue #142を解決して」とClaude Codeに依頼する
  2. GitHub MCPがIssueの詳細・コメント・関連PRを自動取得する
  3. Postgres MCPで実際のDBスキーマを参照しながらコードを生成する
  4. 不明な外部ライブラリがあればBrave SearchでAPIドキュメントを取得する
  5. コードを書き、テストを走らせ、GitHub MCPでPRを作成して完了する

この一連の流れが、Claude Code単体では不可能なレベルで自律的に処理される。Issueを開いてコードを読み替えてPRを出す作業が、ほぼ無人で完結する体験は、使い始めると開発フローへの影響が大きい。

どのMCPサーバーから入れるべきか——導入優先度(2026年)

結論、まず入れるべきは「Filesystem・GitHub・Context7」の3つです。 この3つで「ファイルを読み書きし、Issueを読んで修正しPRを作り、最新ドキュメントを参照して古いAPIの誤りを防ぐ」という開発の基本形が完成します。そのうえで用途に応じて Playwright や Postgres を足すのが、迷わない順序です。

MCPサーバー 導入優先度 何ができるか 向いている人
Filesystem ★★★ 必須 指定ディレクトリのファイル読み書き・操作 全員(最初の1つ)
GitHub ★★★ 必須 Issue/PR操作・コード検索。Issueを読んで修正しPRまで作らせる GitHubで開発する人
Context7 ★★★ 推奨 最新ライブラリの公式ドキュメントをAIに読ませ、古い・誤ったAPIコードの生成を防ぐ 更新の速いライブラリを使う人
Playwright ★★☆ 用途特化 ブラウザを操作しE2Eテストの作成・実行を自動化 フロント/テスト自動化
Chrome DevTools ★★☆ 用途特化 画面のコンソールエラーやネットワークをAIに確認させる Webアプリのデバッグ
Postgres ★★☆ 用途特化 DBスキーマを読ませて安全にクエリを生成・検証 DBを扱う開発

Claude Codeを1年以上実運用している経験から言えば、最初から多く入れるほど認識トラブルと権限管理が煩雑になります。Filesystem+GitHubで「読んで直してPR」の型を作り、次にContext7で最新ドキュメント参照を足すのが、実務で失敗しない立ち上げ順です。

カスタムMCPサーバーの自作:Claude Codeを社内ツールと繋ぐ

既存の公開サーバーでカバーできない社内システムとの連携には、カスタムMCPサーバーの自作が必要になる。MCPのSDKはPython・TypeScript・Kotlinなど複数言語で提供されている。

TypeScript(Node.js)での最小実装例

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
  ListToolsRequestSchema,
  CallToolRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";

const server = new Server(
  { name: "my-internal-tool", version: "1.0.0" },
  { capabilities: { tools: {} } }
);

// 利用可能なツールを宣言
server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [
    {
      name: "get_ticket",
      description: "社内チケットシステムからチケット情報を取得する",
      inputSchema: {
        type: "object",
        properties: {
          ticket_id: { type: "string", description: "チケットID(例: TKT-123)" },
        },
        required: ["ticket_id"],
      },
    },
  ],
}));

// ツールの実行ハンドラ
server.setRequestHandler(CallToolRequestSchema, async (request) => {
  if (request.params.name === "get_ticket") {
    const { ticket_id } = request.params.arguments as { ticket_id: string };
    // 実際の社内APIを呼び出す処理をここに記述
    const ticketData = await fetchInternalTicket(ticket_id);
    return {
      content: [{ type: "text", text: JSON.stringify(ticketData, null, 2) }],
    };
  }
  throw new Error(`Unknown tool: ${request.params.name}`);
});

const transport = new StdioServerTransport();
await server.connect(transport);

作成したカスタムサーバーをClaude Codeに登録する際は、以下のようにコマンドで起動先を指定する。

claude mcp add my-internal-tool node /path/to/my-mcp-server/dist/index.js

MCPサーバーで定義できる3種類の機能

MCPサーバーが提供できる機能は仕様上3種類に分類されている。用途に合わせて使い分けることで、Claude Codeへの情報提供の質が上がる。

種類 概要 AIによる制御 典型的な用途
Tools AIが能動的に実行できる関数 AIが判断して呼び出す API呼び出し・DBクエリ・ファイル操作
Resources AIが参照できるデータ・コンテンツ アプリケーション側が制御 ドキュメント・設定ファイル・ログ
Prompts 再利用可能なプロンプトテンプレート ユーザーが選択して使用 定型作業のワークフロー定義

MCPのセキュリティ:実務で押さえるべき注意点

MCPはClaude Codeの能力を大きく拡張するが、それはリスクの拡大も意味する。外部サービスへのアクセス権をAIエージェントに渡す以上、セキュリティの考慮は必須だ。

最小権限の原則を徹底する

MCPサーバーに渡す権限は、そのタスクに必要な最小限にとどめる。例えばGitHub MCPには読み取り専用のトークンを渡し、PR作成など書き込み操作が必要な場合のみwrite権限のトークンを使う、という運用が望ましい。PostgreSQL MCPには読み取り専用のDBユーザーを割り当て、SELECT以外は実行できないようにするのが実務での基本だ。

APIキー・認証情報の管理

設定ファイル(.mcp.json)にAPIキーをハードコードすることは絶対に避ける。環境変数経由で渡す設計にし、.envファイルは必ず.gitignoreに追加する。チーム開発では.mcp.json自体は環境変数のキー名だけを記述してgitに含め、実際の値は各自の環境変数またはシークレット管理サービスで管理する方式を推奨する。

MCPサーバーの信頼性評価

公開されているMCPサーバーをすべて無条件に信頼することは危険だ。コミュニティ製サーバーを導入する際は以下を確認する習慣をつけておきたい。

  • ソースコードが公開されており読めるか(npmのリポジトリを確認)
  • メンテナーが信頼できる組織・個人か(GitHubスター数・コミット履歴)
  • 要求するパーミッションがユースケースと釣り合っているか
  • 通信先が意図した外部サービスのみか(不審なエンドポイントへの通信がないか)

プロンプトインジェクション対策

MCPサーバーを通じて取得した外部データ(Issueのテキスト、DBの内容、Webページのテキスト等)には、悪意あるプロンプトが埋め込まれている可能性がある(プロンプトインジェクション攻撃)。Claude Code自体にも一定の防御機能はあるが、外部データを信頼せず、重要なオペレーション(本番DBの削除・外部への大量送信等)は必ず人間の確認ステップを挟む設計にすることが重要だ。Claude Codeの--dangerously-skip-permissionsフラグは、テスト環境以外では使わない。

MCPを実務で導入するときの勘所(一次情報)

Claude Codeを3.5の時代から1年以上、実務で運用してきた監修者・河合継の経験から、MCP導入の現実的な進め方を補足する。

  • 最初から多くを繋がない。必要な1つから。便利そうなサーバーを一度に繋ぐと、何がどの権限で動いているか把握できなくなる。本当に要る接続を一つ入れて挙動を確かめ、効果を見てから増やすほうが安全で、結局速かった。
  • 権限の範囲を最初に決める。外部ツールと繋ぐほど、できることが増える分リスクも増える。本文のセキュリティ注意のとおり、何を許して何を許さないかを接続時に明示しておくと、後の事故を防げる。
  • 繋いだら「想定どおり動くか」を一度通して確認する。設定が通っても期待どおり動くとは限らない。最小の操作で一往復させ、意図した範囲で動くことを見てから本番のワークフローに組み込むのが堅実だった。

Claude Code・AIエージェントの業務導入をご検討の方は、自社での開発実例を公開しているクリスタルメソッドの無料相談をご利用ください。

MCPの設定と動作確認:よくあるトラブルと解決策

MCPサーバーの接続確認とデバッグフローのイメージ
MCPサーバーの接続確認とデバッグフローのイメージ

MCPサーバーが認識されない場合

Claude Codeを起動した際、/mcpスラッシュコマンドや設定メニューでサーバーが表示されない、あるいは「failed」ステータスになる場合の確認手順は以下のとおりだ。

ステップ1:サーバーの起動コマンドを単体でテスト
ターミナルでnpx -y @modelcontextprotocol/server-filesystem /tmpなどを直接実行し、エラーが出ないか確認する
ステップ2:必要な環境変数が設定されているか確認
echo $GITHUB_TOKENなどで環境変数が実際に設定されているか確認する。未設定の場合サーバーは起動できない
ステップ3:JSON設定ファイルの構文チェック
cat .mcp.json | python3 -m json.toolなどでJSONの構文エラーを確認する。カンマや波括弧の誤りが原因になることが多い
ステップ4:Claude Codeのログを確認
claude mcp list で各サーバーの状態(Connected/Needs authentication/Failed to connect)を確認し、claude mcp get <サーバー名> で設定の中身を確認する。詳しいログが必要なときは claude --debug で起動する
ステップ5:npxキャッシュのクリア
npx clear-npx-cacheまたは~/.npm/_npxを削除して再試行する。古いバージョンのサーバーがキャッシュされていると問題が起きる場合がある

よくあるエラーと対処法

エラー・症状 主な原因 対処法
サーバーが「failed」と表示される コマンドパスが不正・環境変数未設定 コマンドを単体実行してエラーを確認
ツールが呼び出されるが結果が返らない タイムアウト・APIレート制限 サーバーのログを確認・APIクォータを確認
「Tool not found」エラー サーバーのバージョン不一致・設定ミス パッケージを最新版に更新・ツール名を確認
Filesystem MCPでアクセス拒否される 許可ディレクトリの範囲外をアクセスしようとしている 起動引数の許可パスを確認・修正する
SSEサーバーに接続できない CORS設定・認証ヘッダー不正 curlで直接エンドポイントを叩いてレスポンスを確認

Claude CodeのMCPサーバーを削除するには?

登録済みのMCPサーバーを外す最短の方法は、ターミナルで claude mcp remove <サーバー名> を実行することです。まず claude mcp list で登録名を確認し、その名前を指定して削除します。設定ファイルを手で編集するより、CLIから消すほうが記述ミスや壊れた設定が残りません。

  • 確認 → 削除: claude mcp list で現在登録されているサーバー名を一覧表示し、claude mcp remove <名前> で削除します。セッション中は /mcp でも接続状況を確認できます。
  • スコープを合わせる: MCPは登録時にスコープ(local / project / user)が分かれます。追加したときと同じスコープで削除しないと消えないため、意図したスコープを指定します(例:-s user)。
  • 設定ファイルの実体: プロジェクト単位の登録は作業ディレクトリの .mcp.json、ユーザー単位は ~/.claude.json に保存されます。CLIで消せば該当エントリだけが正しく除去されます。
  • 削除後の確認: 削除したらもう一度 claude mcp list(またはセッション再起動後に /mcp)で消えたことを確認します。反映されない場合はセッションを開き直します。

実際に日常運用しているMCPサーバーとCLAUDE.mdとの付き合い方

クリスタルメソッドでは河合継が1年以上、Claude Codeを日常業務で使い続けています。この過程で作業ルールを記録した「CLAUDE.md」は、当初20項目ほどだった運用ルールが、失敗のたびに教訓を書き足すかたちで現在は数十項目まで増えました。増え続けた理由のひとつが、MCPサーバーの「スコープ」(local/project/user)の取り違えです。あるプロジェクト限定のつもりで追加したMCPサーバーが、実は別スコープで登録されていて意図しない範囲から呼び出せてしまう、といった経験を経て、現在はMCPサーバーを追加するたびにclaude mcp listでスコープを目視確認する運用に落ち着いています。

また、MCP経由で外部ツールがファイルを書き換える操作を行う前提で、Claude CodeのPreToolUse Hookを使い、Edit/Write実行前に対象ファイルを日付別ディレクトリへ自動バックアップする仕組みを別途組み合わせています。MCPサーバー自体に誤操作防止機能を求めるのではなく、「操作前に必ず復元可能な状態を残す」という運用側の安全策とセットで使う、というのが実際に事故を経験したうえでの結論です。日常的に組み込んでいるのはファイル操作系とGit/GitHub連携系のMCPサーバーで、まずこの2種類から試すことを勧めています。

Claude Code MCPの実務活用:上級テクニック

CLAUDE.mdとMCPの組み合わせで一貫した作業文脈を作る

Claude CodeのCLAUDE.md(プロジェクトのメモリファイル)にMCPの使い方に関するルールを記述しておくと、Claude Codeがどのサーバーをいつ呼び出すべきかの判断精度が上がる。開発現場では以下のような記述をCLAUDE.mdに追加している。

## MCPツールの使用ルール

- GitHubのIssue番号が言及された場合は必ずGitHub MCPでIssue詳細を取得してから作業を開始する
- DBスキーマに関わる変更は必ずPostgres MCPで現在のスキーマを確認してから実装する
- 外部ライブラリのAPIを使う場合はBrave SearchでAPIドキュメントを確認する
- Slack通知はデプロイ完了・重大エラーの場合のみに限定する

複数MCPサーバーを連携させたエージェントワークフロー

MCPの本領は複数サーバーの組み合わせにある。Claude Codeは複数のMCPツールを一つのタスクの中で順に呼び出すことができる。例えば「本番障害の調査と修正」というタスクは以下のように処理される。

  1. Sentry MCPで直近のエラーイベントとスタックトレースを取得する
  2. GitHub MCPで関連コードの変更履歴(git blame / commits)を参照する
  3. Postgres MCPでエラー時のDB状態を確認するクエリを実行する
  4. コードを修正し、テストを実行する
  5. GitHub MCPでPRを作成し、Slack MCPで担当者に通知する

これらのステップが「本番障害を調査して修正PRを作って」という一文の依頼から自律的に実行される。情報を集める手作業が減るぶん、初動の調査を短くできる。ただし、修正の内容は必ず人が確認する。

MCPサーバーの承認制御:–permission-prompt-tool

Claude Codeはデフォルトでツール呼び出しの前に確認を求めるが、対話画面を使わない実行(非対話モード)では、--permission-prompt-toolオプションで、承認の判断を任せるMCPツールを指定できる。これにより、組織のポリシーに基づいた細粒度のアクセス制御が可能になる。CI/CD環境での自動化と、ヒューマンインザループの安全弁を両立させる際に有効だ。

Claude Code MCPのよくある質問

Claude CodeのMCPとは何ですか?

結論、MCP(Model Context Protocol)とは、Claude Codeに外部ツールやデータ(GitHub・データベース・ブラウザ等)へのアクセスを与える標準規格です。 これを追加すると、Claude Codeはコード生成だけでなく、Issueを読む・DBを調べる・画面を操作するといった実務作業を自分で行えるようになります。

Claude CodeにMCPサーバーを追加するには?

結論、最も簡単なのは claude mcp add コマンドです。 リモートのサーバーは claude mcp add --transport http <名前> <URL>、手元で動かすサーバーは claude mcp add --transport stdio <名前> -- <起動コマンド> で追加でき、.mcp.json に直接記述する方法もあります。追加後は claude mcp list か、Claude Code内の /mcp で接続状態を確認できます。

Claude Codeのおすすめ MCPサーバーは?

結論、まず入れるべきは Filesystem・GitHub・Context7 の3つです。 Filesystemでファイル操作、GitHubで「Issueを読んで修正しPRを作る」、Context7で最新ライブラリのドキュメントを参照させて古いAPIの誤りを防げます。用途に応じて Playwright(ブラウザ操作)や Postgres(DB)を足します。

MCPのスコープ(local / project / user)はどう違いますか?

結論、localはそのフォルダだけ、projectはチームで共有(.mcp.jsonをコミット)、userは全プロジェクトで使える設定です。 プロジェクトをまたいで同じMCPを使いたいなら user スコープ(--scope user)で追加します。

MCPサーバーが認識されないときは?

結論、まず /mcp で状態を確認します。 多くは「起動コマンドやパスの誤り」か「Node.js等の実行環境の不足」が原因です。設定ファイルのJSON構文、絶対パス、必要なランタイムのインストールを順に確認してください。

リモートのMCPサーバーは、HTTPとSSEのどちらで接続すべきですか?

結論、HTTPです。 公式ドキュメントはSSE方式を非推奨とし、使える場合はHTTPサーバーを使うよう案内しています。追加するときは claude mcp add –transport http <名前> <URL> と書きます。設定ファイルに書く場合は “type”: “http” を必ず付けます(url だけを書いて type を省くと設定エラーになります)。

claude.aiで追加したコネクタは、Claude Codeでも使えますか?

結論、使えます。 公式ドキュメントによると、claude.aiのアカウントでClaude Codeにログインしていれば、claude.aiで追加したMCPサーバー(コネクタ)がClaude Codeでも自動的に使えるようになります。認証はclaude.ai側で済ませます。

MCPサーバーをたくさん入れると、動作が重くなったりしますか?

結論、以前ほど気にする必要はありません。 公式ドキュメントによると、Claude Codeは「ツール検索」という仕組みで、ツールの詳しい定義を必要になるまで読み込みません。起動時に読み込まれるのはツール名とサーバーの説明だけです。ただし、どのサーバーが何の権限で動いているかを把握するために、必要なものから1つずつ足す進め方をおすすめします。

まとめ

Claude Code MCPは、AIエージェントと外部世界を繋ぐための標準規格だ。設定の基本はclaude mcp addコマンドまたは.mcp.jsonへの記述であり、リモートのサービスはHTTPで、手元で動かすサーバーはnpxなどのコマンドで追加できる。社内ツールとの連携が必要な場合はMCP SDKを使ってカスタムサーバーを自作することで、あらゆる外部システムをClaude Codeの能力として取り込める。

実務活用において最も重要なのは、最小権限の原則に基づく権限設計と、CLAUDE.mdによるコンテキスト管理の組み合わせだ。MCPの利便性とセキュリティは相反しない。適切に設計されたMCP環境は、開発者が「コードを書く作業」から「解決すべき問題を考える作業」に集中できるための、強力な実務基盤になる。

関連記事

参考:Claude Code公式ドキュメント「Connect Claude Code to tools via MCP」、Model Context Protocol 公式リポジトリ(servers)(いずれも2026年10月10日確認)

監修

河合 継(クリスタルメソッド株式会社 代表取締役)

AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番組でのAI解説実績を持つAI研究者として、AIの研究開発を主導している。
運営会社について | 編集方針

Claude Code・AIエージェントの業務活用をご検討の方へ

クリスタルメソッドは、Claude Codeを実務投入している開発会社として、AIエージェント・社員AIの導入と開発効率化を支援しています。自社サイトの表示速度をAI社員(Claude Code)で12.89秒→2.03秒に短縮した実例も事例記事として公開しています。「自社の開発・業務にAIをどう組み込むか」といったご相談を承っています。

AIブログ購読

 
クリスタルメソッドがお届けする
AIブログの更新通知を受け取る

Read next

あわせて読みたい

  • 対話・チャットLLMのイメージ

    Claude Code(クロードコード)とは?できること・料金・使い方を初心者にもやさしく解説【2026年版】

    ターミナル上で動作するAIエージェント型コーディングツールのイメージ Claude Code(クロードコード)とは、Anthropic社が提供するAIツールです...

  • Claude Code 使用量を完全制御する実装ガイド【2026年版】のイメージ

    Claude Code 使用量を完全制御する実装ガイド【2026年版】

    最終更新:2026年7月29日 よくある質問:Claudeの使用量・上限について Claudeの使用量上限とは? Claude(Claude.aiのチャット、お...

  • claude code ログインできない|2026年版ガイド

    Claude Code ログイン方法・できない時の対処法|2026年版ガイド

    Claude(クロード) Codeを使おうとしたら「ログインできない」「認証エラーが出る」「コマンドが通らない」――そんな状況で作業が止まってしまった経験はあり...

View more