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. 学ぶ内容
- MCP のコア概念とアーキテクチャ
- MCP サーバーの設定
- 一般的な MCP サーバーの実践
- カスタム MCP サーバー
- MCP のセキュリティと権限
2. MCP のコア概念
(1) アーキテクチャ概要
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 技術的には可能ですが、強く推奨しません。読み取り専用レプリカまたは開発用データベースを使用してください。
📖 まとめ
- MCP により Claude Code は外部と接続可能:データベース、GitHub、ブラウザ等
mcp_settings.jsonで設定- 公式サーバー:Filesystem、PostgreSQL、GitHub、Browser 等
- カスタム MCP サーバーで能力を拡張可能
- セキュリティファースト:最小権限、読み取り専用優先、認証情報は環境変数で
📝 練習問題
- 基本 (⭐): Filesystem MCP サーバーを設定し、強化されたファイル操作が動作することを確認してください。
- 応用 (⭐⭐): PostgreSQL MCP を設定し、Claude Code でデータベース結果をクエリして分析してください。
- 高度 (⭐⭐⭐): 特定のビジネス機能を提供するカスタム MCP サーバーを作成し、Claude Code に統合してください。