Claude Code: MCP (Model Context Protocol)

最終更新:2026-08-31

MCP により、Claude Code はローカルファイルの読み書きを超えられます — MCP サーバーを通じて、データベースへの接続、ブラウザの操作、API の呼び出しが可能になり、能力の拡張に限界がなくなります。

💡 ヒント: MCP (Model Context Protocol) は Anthropic のオープンプロトコルで、AI モデルが外部データソースやツールに安全に接続できるようにします。Claude Code は MCP をネイティブサポートしています。

📋 前提条件: 第11章 - 権限設定

1. 学ぶ内容


2. MCP のコア概念

(1) アーキテクチャ概要

100%
graph LR
    CC[Claude Code] <--> MCP[MCP Client]
    MCP <--> S1[Filesystem Server]
    MCP <--> S2[Database Server]
    MCP <--> S3[GitHub Server]
    MCP <--> S4[Browser Server]
概念 説明 例え
MCP Host AI モデルを実行するプログラム ブラウザ
MCP Client Server と通信 HTTP クライアント
MCP Server ツールとデータを提供 HTTP サーバー
Tool Server が公開する操作 API エンドポイント
Resource Server が公開するデータ API リソース

(2) MCP の能力

能力 MCP なし MCP あり
ローカルファイルの読み取り ✅ 内蔵 ✅ 内蔵
ローカルファイルの書き込み ✅ 内蔵 ✅ 内蔵
シェルの実行 ✅ 内蔵 ✅ 内蔵
データベースのクエリ ✅ PostgreSQL MCP
GitHub の操作 ❌(CLI のみ) ✅ GitHub MCP
ブラウザ自動化 ✅ Browser MCP
Web 検索 ✅ Search MCP

▶ 例1:MCP ワークフロー

TEXT 📖 参照専用
# MCP なし:手動データベースクエリ
> Check how many records are in the users table
Claude Code: データベースに直接アクセスできません。以下を実行:
  psql -c "SELECT COUNT(*) FROM users"

# MCP あり(PostgreSQL Server):直接クエリ
> Check how many records are in the users table
Claude Code: [PostgreSQL MCP 経由でクエリ]
  users テーブルには 12,450 レコードがあります。
  アクティブユーザー:8,920(71.6%)、
  過去7日間の登録:342。

3. MCP サーバーの設定

(1) グローバル設定

JSON
// ~/.claude/mcp_settings.json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-filesystem", "/home/user/projects"]
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
      }
    }
  }
}

(2) プロジェクトレベルの設定

JSON
// .claude/mcp_settings.json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxxxx"
      }
    }
  }
}

4. 一般的な MCP サーバー

(1) 公式 MCP サーバー

Server 機能 インストールコマンド
Filesystem 強化されたファイル操作 npx -y @anthropic/mcp-filesystem
PostgreSQL データベースクエリ npx -y @anthropic/mcp-postgres
GitHub GitHub API 操作 npx -y @anthropic/mcp-github
GitLab GitLab API 操作 npx -y @anthropic/mcp-gitlab
Browser ブラウザ自動化 npx -y @anthropic/mcp-browser
Brave Search Web 検索 npx -y @anthropic/mcp-brave-search

▶ 例2:PostgreSQL MCP の実践

TEXT 📖 参照専用
> Query user registrations in the last 7 days, grouped by day

Claude Code: [PostgreSQL MCP を使用]
  → SQL クエリを実行中...
  Results: 7日間の内訳と日別カウント

5. カスタム MCP サーバー

▶ 例3:シンプルな MCP サーバーの作成

TYPESCRIPT
import { Server } from "@anthropic/mcp";

const server = new Server({
  name: "weather",
  version: "1.0.0",
});

server.tool("get_weather", "Get current weather for a city", {
  city: { type: "string", description: "City name" },
}, async ({ city }) => {
  const response = await fetch(
    `https://api.weather.com/current?city=${city}`
  );
  const data = await response.json();
  return {
    content: [{
      type: "text",
      text: `${city}: ${data.temperature}°C, ${data.condition}`
    }]
  };
});

server.start();

6. MCP のセキュリティと権限

プラクティス 説明
最小権限 必要な MCP サーバーのみ設定
環境変数 トークン/パスワードは環境変数経由、ハードコードしない
読み取り専用優先 データベース MCP は読み取り専用接続を優先
監査ログ MCP ツール呼び出し履歴を記録
ネットワーク分離 本番データベースを MCP に公開しない

❓ よくある質問

Q MCP と API 呼び出しの違いは?
A MCP は統一的なツールの発見と呼び出しを提供する標準化されたプロトコルです。API 呼び出しはハードコードが必要ですが、MCP は Claude Code が動的にツールを発見して使用できます。
Q MCP サーバーは Claude Code を遅くしますか?
A 起動時にわずかに遅くなります(MCP 設定の読み込み)が、実行中は MCP ツール呼び出し時のみ時間を消費します。通常の操作には影響しません。
Q MCP 接続問題をデバッグするには?
A claude /mcp を実行して接続されたサーバーとツールを確認してください。設定ファイルのパスと環境変数をチェックしてください。
Q MCP は本番データベースに接続できますか?
A 技術的には可能ですが、強く推奨しません。読み取り専用レプリカまたは開発用データベースを使用してください。

📖 まとめ


📝 練習問題

  1. 基本 (⭐): Filesystem MCP サーバーを設定し、強化されたファイル操作が動作することを確認してください。
  2. 応用 (⭐⭐): PostgreSQL MCP を設定し、Claude Code でデータベース結果をクエリして分析してください。
  3. 高度 (⭐⭐⭐): 特定のビジネス機能を提供するカスタム MCP サーバーを作成し、Claude Code に統合してください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%