MCP サーバーで機能を拡張する
Model Context Protocol サーバーを設定して、Claude Codeに外部ツールやデータソースへのアクセスを追加する方法。
MCP とは何か
MCP(Model Context Protocol)は、Claude Code が外部のツールやデータソースと通信するための規格だ。MCP サーバーを追加すると、Claude Code から新しい「ツール」が利用可能になり、GitHub の操作、ブラウザの自動化、データベースへのアクセスなどができるようになる。
MCP の仕組み
Claude Code <---> MCP サーバー <---> 外部サービス
(標準プロトコル)
MCP サーバーは標準化されたプロトコルで通信するため、Claude Code 側の変更なしに新しいサーバーを追加できる。
MCP でできること
| カテゴリ | 例 |
|---|---|
| 開発ツール | GitHub PR/Issue 操作、ファイルシステムアクセス |
| ブラウザ操作 | Web ページのキャプチャ、E2E テスト、スクレイピング |
| データベース | PostgreSQL、SQLite のクエリ実行 |
| ドキュメント | ライブラリドキュメントの検索 |
| メモリ | セッション間で持続するメモリの管理 |
設定方法
MCP サーバーの設定は settings.json または /mcp コマンドで行う。
設定ファイルの場所
| ファイル | スコープ | 用途 |
|---|---|---|
~/.claude/settings.json | ユーザー全体 | 全プロジェクトで使うサーバー |
.claude/settings.json | プロジェクト | そのプロジェクト固有のサーバー |
設定の構造
MCP サーバーの設定は mcpServers キー以下に、サーバー名をキーとして登録する。各サーバーには command(起動コマンド)と args(引数)を指定する。環境変数が必要な場合は env に設定する。
基本的な設定パターンを以下に示す。コマンドライン引数にサーバーパスを渡す形式と、環境変数でトークンを渡す形式の2通りがある。
/mcp コマンドによる管理
セッション内で MCP サーバーの管理ができる。
/mcp # MCP管理画面を開く
/mcp add # サーバーを追加
/mcp remove # サーバーを削除
/mcp list # サーバー一覧を表示
人気の MCP サーバー
1. GitHub サーバー
GitHub の PR、Issue、リポジトリ操作を行う。
設定には GITHUB_PERSONAL_ACCESS_TOKEN 環境変数が必要。トークンは GitHub Settings > Developer settings > Personal access tokens から発行できる。
利用可能なツール例:
- PR の作成、一覧取得、レビュー
- Issue の作成、検索、コメント
- リポジトリのファイル読み取り
- ブランチの操作
2. Playwright サーバー
ブラウザの自動操作とE2Eテスト。
# インストールして利用
npx @playwright/mcp@latest
利用可能なツール例:
- ページのナビゲーションと操作
- 要素のクリック・入力
- スクリーンショットの取得
- アクセシビリティツリーの取得
3. Context7 サーバー
ライブラリの公式ドキュメントを検索する。
# 利用例
npx @upstash/context7-mcp
利用可能なツール例:
- ライブラリ名からドキュメントを検索
- 特定のバージョンのAPIリファレンスを取得
- コード例の検索
4. Filesystem サーバー
指定したディレクトリへの安全なファイルアクセスを提供する。
# プロジェクトディレクトリへのアクセスを許可
npx @modelcontextprotocol/server-filesystem /path/to/project
利用可能なツール例:
- ファイルの読み書き
- ディレクトリ一覧の取得
- ファイル検索
5. Memory サーバー
セッション間で持続する記憶を管理する。
# 利用
npx @modelcontextprotocol/server-memory
利用可能なツール例:
- エンティティの作成・読み取り
- リレーションの管理
- 知識グラフの検索
MCP ツールの命名規則
MCP サーバー経由で追加されたツールは、mcp__<サーバー名>__<ツール名> の形式で呼び出される。
例: GitHub サーバーを追加した場合
mcp__github__list_prs # PR一覧取得
mcp__github__create_issue # Issue作成
mcp__github__search_code # コード検索
セッション内ではスラッシュコマンドとしても利用可能だ。
カスタム MCP サーバーの作成
独自の MCP サーバーを作成して、プロジェクト固有の機能を追加できる。
最小構成のサーバー
MCP サーバーは、標準入出力で JSON-RPC メッセージをやり取りする Node.js プロセスとして実装できる。公式 SDK(@modelcontextprotocol/sdk)を使うと、ツールの定義とハンドラーの実装を簡潔に書ける。
基本構成:
- SDK をインポートしてサーバーインスタンスを作成
tools/listでツール一覧を返すtools/callでツール実行のロジックを書く- 標準入出力のトランスポートで接続
ツールの定義
各ツールには以下を定義する:
name: ツール名(一意)description: ツールの説明(Claudeが判断材料にする)inputSchema: 入力パラメータのJSON Schema
設定への追加
自作サーバーは command に node、args にスクリプトパスを指定して登録する。
# プロジェクト内のサーバーを指定
command: "node"
args: ["./mcp-servers/my-server.js"]
トラブルシューティング
よくある問題と対処
| 問題 | 原因 | 対処 |
|---|---|---|
| サーバーが起動しない | npxのキャッシュが古い | npx clear-npx-cache を実行 |
| ツールが表示されない | 設定ファイルの構文エラー | JSONの構文を確認 |
| 認証エラー | 環境変数未設定 | env にトークンを設定 |
| タイムアウト | サーバーの起動が遅い | --yes フラグで確認をスキップ |
| ツールが古い | 古いバージョンがキャッシュされている | @latest を指定 |
MCP サーバーの状態確認
/mcp # 接続状態とツール一覧を確認
/mcp list # 登録済みサーバーを一覧
デバッグ方法
サーバーの動作を確認するには、コマンドを直接実行してエラー出力を確認する。
# GitHubサーバーを直接実行してエラーを確認
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxx npx -y @modelcontextprotocol/server-github
エラーが出力されなければ、サーバー自体は正常に起動している。問題がある場合はエラーメッセージを確認する。
まとめ
MCP サーバーは、Claude Code を「自分専用の開発アシスタント」にカスタマイズする強力な仕組みだ。標準プロトコルにより、公式・サードパーティ・自作のサーバーを同じ方法で追加できる。
まずは GitHub サーバーから試し、徐々に必要なサーバーを追加していくのがおすすめだ。
MCP スラッシュコマンドの活用については、MCP スラッシュコマンドで詳しく解説しています。LSP コードインテリジェンスについては、LSP コードインテリジェンスで詳しく解説しています。
次に読むべきガイド: チーム開発で Claude Code を活用する では、チーム全体での MCP サーバー運用とCI/CD統合を学べる。
リファレンス
- Hooks で作業を自動化する - フックによる自動化
- 初心者向け学習パス - Step 7 でMCPの基本を学ぶ
- Claude Code 公式ドキュメント
すぐ試したい方へ
MCPのスラッシュコマンドをすぐ試したい場合は、MCPスラッシュコマンドTips で実践的なテクニックを確認できます。
次のステップ
高度に進む
上級者向け学習パス: ハーネスエンジニアリングと運用最適化Claude Code の活用を極限まで高める方向けのガイド。ハーネス最適化、プラグイン開発、マルチモデルオーケストレーション、組織展開まで。