結論:MCPはClaude Codeを「万能エージェント」にする拡張規格
先に結論を書きます。
MCP(Model Context Protocol)を使うと、Claude CodeがGitHubのIssueを直接読んだり、Slackにメッセージを送ったり、データベースをクエリしたりできるようになります。
これまでは「コードを書く作業はClaude Codeに任せるが、GitHubやSlackの操作は手動でやる必要があった」という分断がありました。MCPはその分断をなくします。
一度MCPサーバーを設定してしまえば、Claude Codeが単なるコードエディタではなく、外部サービスと直接連携できる「作業エージェント」になります。
Claude CodeにMCPサーバーを接続する方法
基本コマンド:mcp addで追加
claude mcp add <サーバー名> <コマンド> [引数...]
設定ファイルの場所
MCPサーバーの設定は ~/.claude/claude_desktop_config.json(グローバル)またはプロジェクトの .claude/mcp.json に保存されます。
claude mcp add コマンドはこのファイルを自動的に更新するため、手動でJSONを書く必要はありません。
実践:よく使うMCPサーバー4選
1. GitHub MCP — IssueとPRをClaude Codeで直接操作
インストール方法:
claude mcp add github npx @modelcontextprotocol/server-github
必要な環境変数:
# GitHub Personal Access Tokenを設定
export GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxxxxxxxxxx
できるようになること:
- Issueの一覧表示・作成・コメント
- Pull Requestの作成・レビュー・マージ
- リポジトリのファイル読み込み
- コミット履歴の参照
実際の使い方:
Claude: 「#42のIssueを読んで、対応するコードを修正してPRを作ってください」
これ1つの指示でClaude Codeが、Issueを読む→コードを修正する→PRを作成する、という3ステップを自律的に完了します。
2. Filesystem MCP — 任意ディレクトリへのアクセス権限管理
デフォルトのClaude Codeはプロジェクトディレクトリ内しかアクセスできません。Filesystem MCPを使うと、特定ディレクトリへのアクセスを明示的に許可できます。
インストール方法:
claude mcp add filesystem npx @modelcontextprotocol/server-filesystem /path/to/allowed/dir
用途:
- 複数プロジェクトをまたぐ作業
- ホームディレクトリ以外のドキュメントフォルダへのアクセス
- 共有ドライブ上のファイル操作
3. Slack MCP — SlackチャンネルへのメッセージとClaude Codeを連携
インストール方法:
claude mcp add slack npx @modelcontextprotocol/server-slack
必要な環境変数:
export SLACK_BOT_TOKEN=xoxb-xxxxxxxxxxxx
export SLACK_TEAM_ID=T0XXXXXXXX
できるようになること:
- チャンネルへのメッセージ送信
- スレッド内での返信
- チャンネル一覧・メッセージ履歴の取得
実際の使い方の例:
Claude: 「バグ修正が完了しました。#dev-channelに「xxx機能のバグを修正しました」と報告してください」
コードの修正完了後、自動でSlack通知まで行う、というワークフローが実現します。
4. Postgres MCP — データベースへの直接クエリ
インストール方法:
claude mcp add postgres npx @modelcontextprotocol/server-postgres postgresql://user:password@localhost/dbname
できるようになること:
- SQLクエリの実行
- テーブル構造の確認
- データの読み書き(接続設定による)
活用場面:
データ分析やデバッグで「このテーブルの状態を確認したい」という場合に、Claude Codeが直接クエリを実行して結果を解釈できます。
MCPサーバーの確認・削除
接続中のMCPサーバーを確認
claude mcp list
出力例:
github: npx @modelcontextprotocol/server-github (running)
slack: npx @modelcontextprotocol/server-slack (running)
MCPサーバーを削除
claude mcp remove github
MCPサーバーを使う際の3つのポイント
1. 認証情報は環境変数で管理する
MCPサーバーへのアクセストークンをコードや設定ファイルに直書きしてはいけません。必ず環境変数に設定し、.env ファイルは .gitignore に追加してください。
# .envファイルに書いて管理する場合
export GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxxx
export SLACK_BOT_TOKEN=xoxb-xxxxx
2. 権限は最小限に設定する
GitHub Personal Access Tokenは「必要なスコープだけ」を付与します。コード読み取りだけでいい場合は repo:read のみ。PushやDeletion権限は慎重に。
3. プロジェクト別にMCPサーバーを切り替える
個人プロジェクトには ~/.claude/ のグローバル設定、仕事のプロジェクトにはプロジェクトローカルの .claude/mcp.json を使い分けると、認証情報の混在を防げます。
独自MCPサーバーを作る場合
MCP仕様はオープンなので、自分で専用MCPサーバーを作ることもできます。TypescriptまたはPythonのSDKが提供されています。
Pythonで最小限のMCPサーバーを作る例:
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent
app = Server("my-custom-server")
@app.list_tools()
async def list_tools():
return [
Tool(
name="get_weather",
description="指定した都市の天気を返す",
inputSchema={
"type": "object",
"properties": {
"city": {"type": "string", "description": "都市名"}
},
"required": ["city"]
}
)
]
@app.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "get_weather":
city = arguments["city"]
# 実際の天気APIを呼ぶ処理
return [TextContent(type="text", text=f"{city}の天気: 晴れ 25°C")]
async def main():
async with stdio_server() as streams:
await app.run(*streams, app.create_initialization_options())
自社の社内APIや独自データソースに接続するMCPサーバーを作れば、Claude Codeが社内情報に直接アクセスできるようになります。
まとめ:MCPでClaude Codeの可能性が広がる
| 用途 | 対応MCPサーバー |
|---|---|
| GitHubのIssue・PR操作 | GitHub MCP |
| Slackへの通知・返信 | Slack MCP |
| 複数ディレクトリ横断 | Filesystem MCP |
| データベースクエリ | Postgres / SQLite MCP |
| 独自ツール連携 | カスタムMCPサーバー |
MCPはまだ発展途上の技術ですが、公式・非公式を含めて対応サーバーの数は急速に増えています。
Claude Codeをコードエディタとしてしか使っていない方は、MCPを導入するだけで使える範囲が格段に広がります。まずはGitHub MCPから試してみてください。
関連ツールを見る
この記事で紹介したツール・サービスをまとめてチェック。
![]()