𝕏 f B! L
案件・求人数 12,345
案件を探す(準備中) エージェントを探す(準備中) お役立ち情報 ログイン
案件・求人数 12,345
Claude Code × MCP連携ガイド|外部ツールと接続して開発を自動化する方法

Claude Code × MCP連携ガイド|外部ツールと接続して開発を自動化する方法

SESClaude CodeAIMCP自動化
目次

📚 この記事は「Claude Code 完全攻略シリーズ」の Episode 15 です。

Claude Codeは単体でも強力なAIコーディングツールですが、MCP(Model Context Protocol) と連携させることで、データベース・外部API・クラウドサービスなどと直接やり取りできる「万能開発アシスタント」に進化します。

「Claude Codeからデータベースのスキーマを確認して、それに合ったAPIコードを生成したい」「プロジェクト管理ツールのチケットを読み取って、そのまま実装に入りたい」——こうしたワークフローをMCPが実現します。

本記事では、MCPの基本概念からClaude Codeでの設定方法、SES現場で即使える実践パターンまでを体系的に解説します。

MCPとは?Claude Codeの能力を拡張するプロトコル

Claude Code × MCP連携の全体像:Claude CodeがMCPサーバーを経由してDB・API・クラウドサービスに接続するアーキテクチャ図

Model Context Protocolの基本概念

MCP(Model Context Protocol)は、Anthropic社が策定したAIモデルと外部データソース・ツールを接続するためのオープンプロトコルです。USBポートが様々なデバイスを統一的に接続するように、MCPはAIと外部システムの橋渡し役を果たします。

MCPの構成要素は以下の3つです。

構成要素役割具体例
MCPホストMCPを利用するアプリケーションClaude Code、Claude Desktop
MCPクライアントサーバーとの接続を管理Claude Code内蔵のMCPクライアント
MCPサーバー外部リソースへのアクセスを提供PostgreSQL MCP、GitHub MCP

なぜClaude Code × MCPが強力なのか

Claude Codeはファイル操作やコマンド実行の能力を持っていますが、MCPを追加することで直接アクセスできなかったリソースにも手が届くようになります。

MCP なしの場合:

ユーザー: 「本番DBのusersテーブルの構造を確認して」
Claude Code: 「直接DBに接続する手段がありません。接続情報を教えてください」
→ ユーザーが手動でクエリを実行し、結果を貼り付ける必要がある

MCP ありの場合:

ユーザー: 「本番DBのusersテーブルの構造を確認して」
Claude Code: (MCPサーバー経由でDBに接続)
→ 即座にスキーマ情報を取得し、分析・コード生成まで一気通貫で実行

この差は、SES現場のように複数のシステムを横断して作業するケースで特に大きくなります。

Claude CodeでMCPサーバーを設定する方法

設定ファイルの種類と配置場所

Claude CodeのMCP設定は、.mcp.json ファイルに記述します。配置場所によってスコープが異なります。

配置場所スコープ用途
プロジェクトルート/.mcp.jsonプロジェクト単位チーム共有の設定
~/.claude/.mcp.jsonユーザー単位個人の共通設定

SES現場では、プロジェクト固有の設定はプロジェクトルートに、個人的に使うツール(メモ、タスク管理など)はホームディレクトリに配置するのがベストプラクティスです。

.mcp.json の基本構文

{
  "mcpServers": {
    "サーバー名": {
      "command": "実行コマンド",
      "args": ["引数1", "引数2"],
      "env": {
        "環境変数名": "値"
      }
    }
  }
}

CLIから簡単に追加する方法

設定ファイルを手動で編集する代わりに、claude mcp add コマンドで追加できます。

# ローカル(プロジェクト)スコープで追加
claude mcp add my-server -s project -- command arg1 arg2

# ユーザースコープで追加
claude mcp add my-server -s user -- command arg1 arg2

# 環境変数付きで追加
claude mcp add my-server -e API_KEY=xxx -- command arg1

# 登録済みサーバーの一覧確認
claude mcp list

# サーバーの削除
claude mcp remove my-server

実践:よく使うMCPサーバーの導入と活用

1. PostgreSQL MCPサーバー — DB操作を自動化

SES現場で最も効果的なMCP連携の一つが、データベースへの直接アクセスです。

# PostgreSQL MCPサーバーを追加
claude mcp add postgres -s project \
  -e DATABASE_URL=postgresql://user:pass@localhost:5432/mydb \
  -- npx -y @modelcontextprotocol/server-postgres

活用例:

プロンプト: 「usersテーブルとordersテーブルのリレーションを確認して、
注文履歴を取得するAPIエンドポイントを実装して」

Claude Codeの動作:
1. MCPでDBスキーマを取得
2. テーブル間のリレーションを分析
3. 適切なJOINクエリを含むAPIコードを生成
4. 型定義も自動生成

2. GitHub MCPサーバー — Issue駆動開発を加速

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

活用例:

プロンプト: 「Issue #42の内容を確認して、そのまま実装してPRを作成して」

Claude Codeの動作:
1. MCPでIssueの詳細を取得
2. 要件に基づいてコードを実装
3. ブランチを作成してコミット
4. PRを作成(Issueへの参照を含む)

3. ファイルシステムMCPサーバー — 安全なファイルアクセス

特定のディレクトリにのみアクセスを許可し、セキュリティリスクを最小化できます。

claude mcp add filesystem -s project \
  -- npx -y @modelcontextprotocol/server-filesystem \
  /path/to/allowed/directory

4. Slack MCPサーバー — 開発チャットとの連携

claude mcp add slack -s user \
  -e SLACK_BOT_TOKEN=xoxb-xxxx \
  -- npx -y @anthropic/mcp-server-slack

開発チャンネルの会話を読み取り、議論の内容を踏まえたコード実装が可能になります。

SES現場での実践パターン3選

パターン1:レガシーシステムの調査と移行

SES案件で頻出する「既存システムの調査」を大幅に効率化できます。

{
  "mcpServers": {
    "legacy-db": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://readonly:pass@legacy-server:5432/old_system"
      }
    }
  }
}
プロンプト: 「legacy-dbのテーブル一覧を取得して、
各テーブルの行数と最終更新日を調べて、
移行優先度の高い順にリストアップして」

このように、調査→分析→計画策定までをClaude Codeが一気通貫で行えます。従来は数日かかっていたDB調査が、数分で完了する可能性があります。

パターン2:マイクロサービス間のAPI統合テスト

複数のMCPサーバーを組み合わせて、サービス間の連携をテストできます。

{
  "mcpServers": {
    "service-a-db": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": { "DATABASE_URL": "postgresql://..." }
    },
    "service-b-api": {
      "command": "npx",
      "args": ["-y", "mcp-server-fetch"]
    }
  }
}
プロンプト: 「service-a-dbのusersテーブルのデータを確認し、
service-b-apiの/api/notificationsエンドポイントに
テスト用のリクエストを送信する統合テストを書いて」

パターン3:ドキュメント自動生成パイプライン

MCPでDBスキーマやAPI仕様を取得し、ドキュメント自動生成と組み合わせます。

プロンプト: 「DBのスキーマ情報を取得して、
全テーブルのER図をMermaid形式で生成し、
各カラムの説明付きのAPI仕様書をMarkdownで作成して」

MCPサーバーの自作方法

既存のMCPサーバーでは対応できないケースでは、独自のMCPサーバーを作成できます。

TypeScriptでの最小実装

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({
  name: "my-custom-server",
  version: "1.0.0"
});

// ツール(AIが呼び出せる機能)を定義
server.tool(
  "get_project_status",
  { projectId: z.string() },
  async ({ projectId }) => {
    // 社内システムからプロジェクト情報を取得
    const status = await fetchProjectStatus(projectId);
    return {
      content: [{ type: "text", text: JSON.stringify(status) }]
    };
  }
);

// リソース(AIが参照できるデータ)を定義
server.resource(
  "config://app",
  "アプリケーション設定",
  async () => ({
    contents: [{ uri: "config://app", text: "..." }]
  })
);

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

SES現場では、社内の勤怠管理システムやプロジェクト管理ツールに対するMCPサーバーを自作することで、Claude Codeから直接操作できるようになります。

自作サーバーの登録

claude mcp add my-custom -s project -- node ./mcp-servers/my-custom/index.js

MCPのセキュリティベストプラクティス

MCPは外部システムへのアクセスを提供するため、セキュリティ対策が重要です。

最小権限の原則

{
  "mcpServers": {
    "production-db": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://readonly_user:pass@prod:5432/app"
      }
    }
  }
}

必ず読み取り専用ユーザーで接続しましょう。本番DBに書き込み権限を与えると、AIの誤操作で重大な事故につながります。

環境変数による認証情報の管理

.mcp.json にシークレットを直接書かず、環境変数を活用します。

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

.mcp.json をリポジトリに含める場合は、認証情報は環境変数で参照するのが鉄則です。.env ファイルは .gitignore に追加してください。

MCPサーバーの信頼性確認

サードパーティ製のMCPサーバーを導入する際は、以下を確認しましょう。

  • ソースコードが公開されているか
  • メンテナンスが継続されているか(最終更新日)
  • npmダウンロード数や★数が一定以上あるか
  • 権限のスコープが最小限か

Claude Code Hooksと組み合わせて、MCPサーバーの実行をログに記録するのも有効です。

トラブルシューティング

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

# サーバー一覧を確認
claude mcp list

# サーバーの詳細を確認
claude mcp get サーバー名

サーバーが表示されない場合は、.mcp.json の配置場所とJSON構文を確認してください。

接続エラーが発生する

# MCPサーバーを単体でテスト
npx -y @modelcontextprotocol/server-postgres

# 環境変数が正しく設定されているか確認
echo $DATABASE_URL

MCPサーバーの多くは stdio トランスポートを使用するため、標準入出力に余計なログを出力するプログラムとは併用できません。デバッグ出力は stderr に出すようにしましょう。

パフォーマンスの最適化

MCPサーバーへのリクエストが遅い場合は、以下を検討してください。

  • コネクションプーリングの有効化
  • 不要なMCPサーバーの無効化(使わないサーバーは削除)
  • ローカルキャッシュの導入

まとめ:MCPでClaude Codeを「万能開発環境」に

MCP連携により、Claude Codeは単なるコード生成ツールから、開発ワークフロー全体をカバーする統合環境に進化します。

活用レベル内容SES現場での効果
Level 1DB接続で調査効率化既存システム理解の時間を大幅短縮
Level 2複数MCPの組み合わせサービス間連携の開発・テストを自動化
Level 3自作MCPサーバー社内固有のシステムとの連携

まずはClaude Codeの基本操作を押さえた上で、PostgreSQLやGitHubなど身近なMCPサーバーから試してみてください。MCPの導入は段階的に進めるのが成功のコツです。


参考リンク:

SES案件をお探しですか?

SES記事をもっと読む →
🏗️

SES BASE 編集長

SES業界歴10年以上のメンバーが在籍する編集チーム。SES企業での営業・エンジニア経験、フリーランス独立経験を持つメンバーが、業界のリアルな情報をお届けします。

📊 業界データに基づく記事制作 🔍 IPA・経済産業省データ参照 💼 SES実務経験者が執筆・監修