Claude Codeは単体でも強力なAIコーディングアシスタントですが、MCP(Model Context Protocol)サーバーを活用することで、その能力を何倍にも拡張できます。GitHubのIssue管理、データベースへの直接クエリ、Slackへの通知送信など、外部ツールとシームレスに連携することで、開発ワークフロー全体をAIで自動化できるのです。本記事では、MCPの基本概念からサーバーの設定方法、人気のMCPサーバー紹介、さらにはカスタムMCPの作成方法まで、実践的に解説します。
MCPとは?Model Context Protocolの基本概念
MCP(Model Context Protocol)は、AIモデルが外部のツールやデータソースとやり取りするための標準プロトコルです。Anthropicが主導して策定したオープンスタンダードで、Claude Codeに限らず幅広いAIツールで採用が進んでいます。
MCPの仕組み
MCPは「クライアント(Claude Code)」と「サーバー(外部ツール)」の間で通信を行う仕組みです。具体的には以下のような流れで動作します。
- Claude Codeがユーザーの指示を受け取る
- 指示内容に応じて、適切なMCPサーバーのツールを呼び出す
- MCPサーバーが外部ツール(GitHub、DB等)にアクセスして情報を取得・操作する
- 結果がClaude Codeに返され、ユーザーに応答する
MCPで実現できること
- データベース操作:SQLを直接実行してテーブル構造やデータを確認
- リポジトリ管理:GitHubのIssueやPRを直接作成・更新
- チャットツール連携:Slackへの通知やメッセージ送信
- API呼び出し:外部のREST APIやGraphQL APIへのアクセス
- ファイルシステム拡張:リモートサーバーのファイル操作
MCPはClaude Codeのサブエージェント機能やHooksと組み合わせることで、さらに高度な自動化が可能になります。
MCPサーバーの設定方法
Claude CodeでMCPサーバーを使うには、設定ファイルにサーバー情報を記述します。設定はプロジェクトレベルとグローバルレベルの2種類があります。
claudeコマンドでMCPサーバーを追加する
最も簡単な方法は、claude mcp addコマンドを使う方法です。
# ローカル(プロジェクト単位)にMCPサーバーを追加
claude mcp add my-server -s project -- npx -y @example/mcp-server
# グローバル(全プロジェクト共通)にMCPサーバーを追加
claude mcp add my-server -s global -- npx -y @example/mcp-server
# 登録済みのMCPサーバー一覧を確認
claude mcp list
# MCPサーバーを削除
claude mcp remove my-server
設定ファイルで管理する方法
より詳細な設定が必要な場合は、.claude/settings.json(プロジェクトレベル)またはグローバル設定ファイルに直接記述します。
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_xxxxxxxxxxxx"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
}
}
}
}
注意:APIキーやトークンなどの認証情報は、環境変数で管理することを強く推奨します。設定ファイルをGitリポジトリにコミットする際は、認証情報が含まれていないか必ず確認してください。
人気のMCPサーバーとその活用法
実際に多くの開発者に利用されている代表的なMCPサーバーをご紹介します。それぞれのセットアップ方法と活用例を見ていきましょう。
GitHub MCPサーバー
GitHubのリポジトリ、Issue、Pull Requestなどを直接操作できるMCPサーバーです。
# インストール
claude mcp add github -s project -- npx -y @modelcontextprotocol/server-github
# 環境変数にGitHubトークンを設定
export GITHUB_TOKEN=ghp_xxxxxxxxxxxx
設定後は、Claude Code上で以下のような操作が可能になります。
- 「このリポジトリのオープンIssueを一覧表示して」
- 「Issue #42の内容を確認して修正PRを作成して」
- 「最新のPRにレビューコメントを追加して」
データベース MCPサーバー(PostgreSQL / MySQL)
データベースに直接接続してスキーマの確認やクエリ実行ができるMCPサーバーです。
# PostgreSQLの場合
claude mcp add postgres -s project -- npx -y @modelcontextprotocol/server-postgres
# 環境変数でDB接続先を指定
export DATABASE_URL="postgresql://user:password@localhost:5432/mydb"
活用例として、以下のような指示が可能です。
- 「usersテーブルの構造を確認して」
- 「先月のアクティブユーザー数をSQLで集計して」
- 「注文テーブルにindexを追加するマイグレーションを作成して」
Slack MCPサーバー
Slackとの連携により、開発の進捗報告やアラート通知を自動化できます。
# Slack MCPサーバーの追加
claude mcp add slack -s project -- npx -y @modelcontextprotocol/server-slack
# SlackのBot Tokenを設定
export SLACK_BOT_TOKEN=xoxb-xxxxxxxxxxxx
ファイルシステム MCPサーバー
指定ディレクトリ内のファイル操作を安全に行えるMCPサーバーです。サンドボックス外のファイルにアクセスする必要がある場合に活用できます。
claude mcp add filesystem -s project -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory
カスタムMCPサーバーの作成方法
既存のMCPサーバーでは対応できないツール連携が必要な場合、自分でカスタムMCPサーバーを作成できます。MCPサーバーはNode.jsやPythonで簡単に実装可能です。
Node.jsでの基本的な実装例
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",
});
// ツールの定義
server.tool(
"get_weather",
"指定した都市の天気情報を取得します",
{
city: z.string().describe("都市名"),
},
async ({ city }) => {
// 外部APIへのリクエスト処理
const weather = await fetchWeather(city);
return {
content: [
{
type: "text",
text: `${city}の天気: ${weather.description}, 気温: ${weather.temp}°C`,
},
],
};
}
);
// サーバーの起動
const transport = new StdioServerTransport();
await server.connect(transport);
カスタムMCPサーバーの登録
作成したカスタムMCPサーバーは、以下のようにClaude Codeに登録します。
# ローカルのカスタムサーバーを登録
claude mcp add my-custom -s project -- node /path/to/my-custom-server/index.js
社内の独自APIや業務システムとの連携をMCPサーバーとして実装すれば、Claude Codeから直接社内システムを操作することも可能になります。中小企業にとっては、既存の業務システムとAIをつなぐ強力な手段です。
MCPサーバーのセキュリティ対策
MCPサーバーは外部ツールへのアクセス権を持つため、セキュリティには十分な注意が必要です。以下のベストプラクティスを守りましょう。
認証情報の管理
- 環境変数を使う:APIキーやトークンは環境変数で管理し、設定ファイルにハードコードしない
- .gitignoreの設定:
.envファイルや認証情報を含む設定ファイルは必ず除外 - 最小権限の原則:MCPサーバーに与える権限は、必要最小限に絞る
アクセス制御
- 読み取り専用モード:本番環境のデータベースには読み取り専用のアカウントを使用
- IPアドレス制限:MCPサーバーからのアクセスを特定のIPに制限
- 操作ログの記録:MCPサーバー経由の操作はすべてログに記録する
Claude Codeのパーミッション設定
Claude Codeには、MCPツールの使用を許可制にする機能があります。初回利用時に確認ダイアログが表示され、信頼できるツールのみを許可できます。チームで利用する場合は、CLAUDE.mdに許可するMCPツールのリストを明記しておくことをおすすめします。
MCPサーバーの実践的な活用パターン
ここでは、中小企業の開発現場で特に役立つMCPサーバーの活用パターンをご紹介します。
パターン1:Issue駆動開発の自動化
GitHub MCPサーバーとClaude Codeを組み合わせることで、Issue駆動の開発ワークフローを大幅に効率化できます。
- GitHubのIssue内容をMCP経由で取得
- Claude Codeが要件を分析してコードを生成
- テストを作成・実行して品質を確認
- MCP経由でPull Requestを作成
この一連の流れを、Claude Code Actionと組み合わせれば、さらに高度な自動化が実現します。
パターン2:データベース駆動のコード生成
データベースMCPサーバーを使えば、実際のスキーマに基づいたコード生成が可能です。
> DBのusersテーブルとordersテーブルの構造を確認して、
それらをJoinする注文一覧APIのエンドポイントを作成して
Claude Codeがスキーマを自動で参照し、正確な型定義やクエリを含むコードを生成してくれます。
パターン3:開発進捗のSlack自動報告
Slack MCPサーバーを使い、開発セッション終了時に進捗をチームに共有するパターンです。Hooks機能と組み合わせると、セッション終了時に自動的にSlackに進捗報告を投稿することもできます。
トラブルシューティングとFAQ
MCPサーバーが接続できない場合
- サーバーの実行コマンドが正しいか確認(
claude mcp listでパス確認) - 必要な環境変数が設定されているか確認
- 依存パッケージがインストールされているか確認
claude mcp serveコマンドでサーバー単体の動作テストを実施
パフォーマンスが遅い場合
- MCPサーバーの数を必要最小限に絞る(不要なサーバーは無効化)
- ネットワーク遅延が原因の場合は、ローカルにキャッシュ層を設ける
- 大量データの取得はページネーションやフィルタリングを活用
まとめ:MCPで開発ワークフローを次のレベルへ
MCPサーバーは、Claude Codeの機能を大幅に拡張し、外部ツールとの連携を可能にする強力な仕組みです。GitHub、データベース、Slackなどの定番ツールとの連携はもちろん、カスタムMCPサーバーを作成すれば社内の独自システムともつなげることができます。
まだClaude Codeを導入していない方は、Claude Codeの始め方ガイドからスタートしてください。すでに利用中の方は、ぜひMCPサーバーを1つ追加して、開発ワークフローの効率化を体験してみてください。小さな連携から始めて、段階的に自動化の範囲を広げていくことが成功のポイントです。
関連記事
Claude CodeでREST API開発|設計からテストまでAI駆動で高速構築
Claude Codeでコードレビュー|AIを活用した品質チェックとレビュー効率化
Claude Codeのコンテキスト管理術|大規模プロジェクトで精度を維持する方法
Claude Codeのカスタムスラッシュコマンド作成ガイド|独自ワークフローの自動化
Claude Codeでデータベース移行・マイグレーション|安全なスキーマ変更の実践
Claude Codeでデバッグを効率化|バグ修正・エラー解析の実践テクニック
Claude Codeでドキュメント自動生成|README・API仕様書・技術文書の効率的な作り方
Claude Codeでエラーハンドリング実装|堅牢なアプリケーションを構築するパターン集