MCP(Model Context Protocol) を使うと、Claude Codeにファイルシステム・データベース・外部APIなどのツールを接続し、自律的なタスク実行範囲を大幅に拡張できます。
Claude Code × MCPとは
Section titled “Claude Code × MCPとは”**MCP(Model Context Protocol)**とは、AIモデルに外部ツールやデータソースへのアクセス権を標準化された方法で付与するオープンプロトコルです。Anthropicが主導して開発し、現在はオープンスタンダードとして多くのツールベンダーが対応しています。
Claude Codeは標準でファイル操作・シェルコマンド・gitなどの操作が可能ですが、MCPサーバーを追加することで接続できるツールの範囲が大幅に広がります。
graph TD
CC[Claude Code] --> |MCPプロトコル| MCP1[GitHub MCPサーバー]
CC --> |MCPプロトコル| MCP2[Filesystem MCPサーバー]
CC --> |MCPプロトコル| MCP3[SQLite MCPサーバー]
CC --> |MCPプロトコル| MCP4[Slack MCPサーバー]
CC --> |MCPプロトコル| MCP5[カスタムMCPサーバー]
MCP1 --> T1[PR作成・Issue管理・レビュー]
MCP2 --> T2[プロジェクト外のファイルアクセス]
MCP3 --> T3[SQLクエリ・スキーマ参照]
MCP4 --> T4[メッセージ送信・チャンネル参照]
MCP5 --> T5[独自APIとの連携]MCPの基本概念:
- MCPサーバー: ツールを提供するプロセス(ローカルまたはリモートで動作)
- MCPクライアント: MCPサーバーを呼び出す側(Claude Code がクライアントとなる)
- ツール定義: MCPサーバーが提供する機能の仕様(名前・入力パラメータ・説明)
MCPサーバーのカテゴリ
Section titled “MCPサーバーのカテゴリ”MCPサーバーは機能別に以下のカテゴリに分類されます。
ファイルシステム
Section titled “ファイルシステム”| サーバー名 | 機能 | 主な用途 |
|---|---|---|
@modelcontextprotocol/server-filesystem | ローカルファイルの読み書き・ディレクトリ操作 | プロジェクト外ディレクトリへのアクセス |
@modelcontextprotocol/server-memory | インメモリのKVストア | セッション間の情報保持 |
データベース
Section titled “データベース”| サーバー名 | 機能 | 主な用途 |
|---|---|---|
@modelcontextprotocol/server-sqlite | SQLiteデータベースの読み書き | ローカルDBの操作・分析 |
@modelcontextprotocol/server-postgres | PostgreSQLへの接続 | 開発・ステージングDBの参照 |
Web・検索
Section titled “Web・検索”| サーバー名 | 機能 | 主な用途 |
|---|---|---|
@modelcontextprotocol/server-brave-search | Brave Search APIによるWeb検索 | リサーチ・情報収集 |
@modelcontextprotocol/server-fetch | URLフェッチ・Webページ取得 | ドキュメント参照・API疎通確認 |
| サーバー名 | 機能 | 主な用途 |
|---|---|---|
@modelcontextprotocol/server-github | GitHubのPR・Issue・コード操作 | PR作成・レビュー自動化 |
@modelcontextprotocol/server-gitlab | GitLabのMR・Issue・Pipeline操作 | GitLabを使うチームの自動化 |
mcp-atlassian | Jira・Confluenceの操作 | タスク管理・ドキュメント参照 |
コミュニケーション
Section titled “コミュニケーション”| サーバー名 | 機能 | 主な用途 |
|---|---|---|
@modelcontextprotocol/server-slack | Slackのメッセージ送受信・チャンネル操作 | 通知・情報共有の自動化 |
@gcp/google-workspace-mcp | Gmail・Google Docs・Sheetsの操作 | ドキュメント作成・メール自動化 |
settings.jsonでのMCP設定
Section titled “settings.jsonでのMCP設定”MCP設定は Claude Code の settings.json の mcpServers セクションで行います。settings.json は通常 .claude/settings.json(プロジェクトレベル)または ~/.claude/settings.json(グローバル)に配置します。
基本的な設定構造
Section titled “基本的な設定構造”{
"mcpServers": {
"サーバー名": {
"command": "実行コマンド",
"args": ["引数1", "引数2"],
"env": {
"環境変数名": "値"
}
}
}
}ローカルMCPサーバーの設定例
Section titled “ローカルMCPサーバーの設定例”{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Documents",
"/Users/username/Projects"
]
},
"sqlite": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sqlite",
"--db-path",
"/Users/username/data/mydb.sqlite"
]
}
}
}リモートMCPサーバーの設定例(SSE/HTTP)
Section titled “リモートMCPサーバーの設定例(SSE/HTTP)”{
"mcpServers": {
"remote-api": {
"url": "https://mcp.example.com/sse",
"headers": {
"Authorization": "Bearer ${API_TOKEN}"
}
}
}
}注意: 環境変数(
${API_TOKEN}形式)はsettings.json内で展開されます。APIキーやトークンは直接settings.jsonに記述せず、環境変数経由で渡してください。
よく使うMCPサーバーの設定例
Section titled “よく使うMCPサーバーの設定例”GitHub MCP(PR作成・Issue管理)
Section titled “GitHub MCP(PR作成・Issue管理)”GitHub MCPサーバーを設定することで、Claude CodeからPR作成・Issue参照・コードレビューコメントの投稿などが可能になります。
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}必要な環境変数の設定:
# ~/.zshrc または ~/.bashrc に追加
export GITHUB_TOKEN="ghp_xxxxxxxxxxxx"GitHub MCPで可能になる操作例:
- 現在のブランチからPRを自動作成する
- 関連するIssueを検索・参照する
- PRにレビューコメントを投稿する
- リポジトリのファイル構造を参照する(git clone不要)
Filesystem MCP(プロジェクト外のファイルアクセス)
Section titled “Filesystem MCP(プロジェクト外のファイルアクセス)”Claude Codeはデフォルトで現在のプロジェクトディレクトリ内のファイルにアクセスできますが、Filesystem MCPを使うと指定したディレクトリ外のファイルにもアクセス可能になります。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/shared-docs",
"/Users/username/reference-projects"
]
}
}
}セキュリティ考慮事項: アクセスを許可するディレクトリは最小限に絞ることを推奨します。ホームディレクトリ全体(/Users/username)へのアクセス許可は避け、必要なサブディレクトリのみを指定してください。
SQLite MCP(DBクエリ)
Section titled “SQLite MCP(DBクエリ)”SQLite MCPサーバーを使うと、ローカルのSQLiteデータベースに直接クエリを実行できます。
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sqlite",
"--db-path",
"/Users/username/projects/myapp/data/app.db"
]
}
}
}SQLite MCPで可能になる操作例:
- テーブル一覧・スキーマの参照
- SELECTクエリの実行
- データの集計・分析
- Claude Codeが生成したコードの動作確認のためのデータ確認
複数のMCPサーバーを組み合わせた設定例
Section titled “複数のMCPサーバーを組み合わせた設定例”{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/shared-docs"
]
},
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "${BRAVE_API_KEY}"
}
}
}
}MCPとClaude Codeのスキル・エージェントの組み合わせ
Section titled “MCPとClaude Codeのスキル・エージェントの組み合わせ”MCPツールをスキルから呼び出すパターン
Section titled “MCPツールをスキルから呼び出すパターン”スキル(Skill)からMCPツールを呼び出すことで、定型的なタスクを再利用可能な手順として定義できます。
スキルファイル(.claude/commands/create-pr.md)の例:
# PRを作成する
以下の手順でPull Requestを作成してください。
1. `git diff main` で変更内容を確認する
2. GitHub MCPサーバーの `create_pull_request` ツールを使ってPRを作成する
- title: コミットメッセージから自動生成
- body: 変更の概要・テスト方法・影響範囲を記述
- base: `main`
- draft: false
3. PR URLを出力するエージェントに特定のMCPツールのみを渡す最小権限設計
Section titled “エージェントに特定のMCPツールのみを渡す最小権限設計”最小権限の原則とは、エージェントが必要最低限のツールのみにアクセスできるよう制限する設計方針です。エージェントに全MCPツールへのアクセスを与えると、意図しない操作(データ削除・外部への情報送信)が発生するリスクがあります。
エージェント定義ファイル(.claude/agents/data-analyst.md)の例:
---
name: data-analyst
description: データ分析専門エージェント。SQLiteとBrave Searchのみ使用可能。
tools:
- mcp__sqlite__query # SQLite MCPのqueryツールのみ許可
- mcp__brave-search__search # Brave Search MCPのsearchツールのみ許可
# GitHub MCP や Filesystem MCP は除外
---
あなたはデータ分析の専門家です。
SQLiteデータベースとWeb検索を使ってデータ分析を行います。
ファイルの変更やGitHub操作は行わないでください。graph TD
CC[Claude Code] --> |全MCPツールにアクセス可| FULL[フルアクセス]
CC --> |最小権限| AGENT[data-analyst エージェント]
FULL --> MCP1[GitHub MCP]
FULL --> MCP2[Filesystem MCP]
FULL --> MCP3[SQLite MCP]
FULL --> MCP4[Brave Search MCP]
AGENT --> |許可| MCP3
AGENT --> |許可| MCP4
AGENT --> |拒否| MCP1
AGENT --> |拒否| MCP2トラブルシューティング
Section titled “トラブルシューティング”MCPサーバーが起動しない場合の確認手順
Section titled “MCPサーバーが起動しない場合の確認手順”- npxコマンドの確認:
npx --versionで npx が利用可能か確認する - パッケージ名の確認:
@modelcontextprotocol/server-githubなどのパッケージ名が正確か確認する - 環境変数の確認: 必要な環境変数(
GITHUB_TOKEN等)が設定されているか確認する - Claude Codeの再起動:
settings.jsonを更新後は Claude Code を再起動する - デバッグログの確認: Claude Codeで
/mcpコマンドを実行してMCPサーバーの状態を確認する
よくあるエラーと対処法
Section titled “よくあるエラーと対処法”| エラー | 原因 | 対処法 |
|---|---|---|
spawn npx ENOENT | npxが見つからない | Node.jsの再インストール、またはnvmでバージョンを確認 |
GITHUB_PERSONAL_ACCESS_TOKEN is not set | 環境変数が未設定 | export GITHUB_TOKEN=... で設定し、シェルを再起動 |
Permission denied | 指定パスへのアクセス権がない | ファイルシステムのパーミッションを確認(ls -la) |
Connection refused | リモートMCPサーバーが起動していない | サーバーURLとポートを確認 |
Tool not found | MCPサーバーは起動しているがツール名が誤り | settings.json のサーバー名とツール呼び出し名を確認 |
パーミッションエラーへの対処
Section titled “パーミッションエラーへの対処”Filesystem MCPでパーミッションエラーが発生する場合、指定したディレクトリへの読み書き権限を確認します。
# ディレクトリのパーミッション確認
ls -la /Users/username/shared-docs
# 権限がない場合の付与(読み書き可能に)
chmod 755 /Users/username/shared-docsセキュリティ上の理由でパーミッション変更が不適切な場合は、より適切なディレクトリを指定するか、別の方法でファイルを共有することを検討してください。
- MCPはAIモデルへの外部ツール統合を標準化するプロトコルで、Claude Codeのツール範囲を大幅に拡張できる
settings.jsonのmcpServersセクションでローカル・リモートMCPサーバーを設定する- GitHub・Filesystem・SQLiteなどの公式MCPサーバーが利用可能で、設定はJSON数行で完了する
- スキルからMCPツールを呼び出すことで、定型タスクを再利用可能な手順として定義できる
- エージェントには最小権限の原則を適用し、必要最低限のMCPツールのみを許可する
- MCPサーバーが起動しない場合は、環境変数・パッケージ名・Claude Codeの再起動を順に確認する
よくある質問
Section titled “よくある質問”Q: MCPサーバーはどこで公開・管理されていますか?
公式のMCPサーバーは modelcontextprotocol/servers のGitHubリポジトリで管理されています。また、コミュニティ製のサーバーも多数公開されており、npm パッケージとして配布されているものが多いです。
Q: カスタムMCPサーバーを自作することはできますか?
できます。MCPプロトコルはオープンスタンダードで、Python・TypeScript・Goなど複数の言語でサーバーを実装できます。社内APIや独自のデータソースとClaude Codeを接続するカスタムサーバーを作成することで、より高度な自動化が実現できます。
Q: プロジェクトレベルとグローバルのsettings.jsonはどう使い分けますか?
.claude/settings.json(プロジェクトレベル)はそのリポジトリ固有の設定に使用します。~/.claude/settings.json(グローバル)はすべてのプロジェクトで共通して使いたい設定に使用します。プロジェクト固有のMCPサーバー(特定のDBやAPI)はプロジェクトレベルで設定し、Brave SearchなどよくつかうMCPはグローバルに設定するのが一般的です。
Q: MCPサーバーの追加でセキュリティリスクはありますか?
MCPサーバーはClaude Codeに追加のツールと権限を与えるため、信頼できるソースのサーバーのみを使用することが重要です。外部ネットワークに接続するMCPサーバー(GitHub・Slack等)を設定する場合は、提供するAPIキーのスコープを最小限に絞ることを推奨します。
このページの外部仕様・背景情報は、参考文献を参照してください。[1][2]
- Anthropic, Claude Code documentation
- Anthropic, Claude API documentation