Claude Codeはデフォルトでもコードを読み書きできますが、MCP(Model Context Protocol)を使うと接続できる世界が一気に広がります。GitHubのIssueを読んで実装し、Figmaのデザインからコンポーネントを生成し、PostgreSQLに自然言語でクエリを投げる——これらがすべてclaude mcp addコマンド1行で実現します。
Anthropicが2024年11月に公開したMCPは2026年3月時点で10,000以上のアクティブサーバーと月間9,700万回のSDKダウンロードを達成しました。Cursor・VS Code Copilot・Windsurfも採用したことで業界標準プロトコルとなっています。この記事ではClaude CodeへのMCP導入方法を設定例つきで体系的に解説します。
Claude Code全般の使い方はClaude Code完全ガイドを、HooksとMCPの権限制御の組み合わせはClaude Code Hooks完全ガイドを参照してください。
MCPとは何か
MCPはAIアシスタントと外部ツールを接続するための標準プロトコルです。USB-Cがデバイスと周辺機器を統一規格でつなぐように、MCPはAIと外部サービスを統一したインターフェースでつなぎます。サーバー側(外部サービス)とクライアント側(Claude Code)がMCPプロトコルに従って通信することで、どのサービスでも同じ方法で接続できます。
| 機能 | 説明 | 例 |
|---|---|---|
| Tools | Claude が呼び出せる関数を追加 | GitHub Issue作成・Slack送信・DBクエリ実行 |
| Resources | Claudeが参照できるデータを追加 | Figmaデザイン・ドキュメント・DBスキーマ |
| Prompts | 再利用可能なプロンプトテンプレートを追加 | コードレビュー定型文・バグ報告フォーマット |
TransportモードはClaude Codeが自動判断
MCPサーバーとの通信には3つのTransportモードがあります。セットアップ時にどれを使うかを指定しますが、一般的には「ローカルサーバーはstdio」「リモートサービスはHTTP」と覚えておけば十分です。
| モード | 通信方式 | 適したケース | コマンドオプション |
|---|---|---|---|
| stdio | ローカルプロセスの標準入出力 | ローカルインストールのMCPサーバー | --transport stdio(デフォルト) |
| HTTP | HTTPSリクエスト | クラウド上のMCPサービス | --transport http |
| SSE | Server-Sent Events(長期接続) | リアルタイムストリーミングが必要なサービス | --transport sse |
MCPの基本コマンド
# MCPサーバーの追加(stdio、ローカル) claude mcp add サーバー名 -- 起動コマンド # MCPサーバーの追加(HTTP、リモート) claude mcp add --transport http サーバー名 https://サーバーURL # ユーザースコープで追加(全プロジェクト共通) claude mcp add --scope user --transport http サーバー名 https://サーバーURL # 登録済みサーバーの一覧表示 claude mcp list # 特定サーバーの詳細確認 claude mcp get サーバー名 # MCPサーバーの削除 claude mcp remove サーバー名 # セッション内でMCP状態を確認 # Claude Code起動後に: # > /mcp
スコープの選択:プロジェクトかユーザーか
MCPサーバーを登録するスコープにより、設定が保存される場所と有効範囲が変わります。
| スコープ | 保存場所 | 有効範囲 | 適したMCPサーバー |
|---|---|---|---|
| project(デフォルト) | .claude/settings.json |
そのプロジェクトのみ | DBスキーマ・プロジェクト固有API |
| user | ~/.claude/settings.json |
すべてのプロジェクト | GitHub・Slack・Figma等の汎用サービス |
| system | システム設定 | マシン上の全ユーザー | 組織全体で共有するサーバー |
設定ファイルに
GITHUB_TOKEN等を直接書くとgitに混入するリスクがあります。トークンは環境変数として設定し、設定ファイルからは$ENV_VARで参照する方法を推奨します。またはOSのキーチェーン(macOS Keychain・Windows Credential Manager)と連携させます。GitHub MCPのセットアップ
GitHub MCPはClaude Codeユーザーの中で最も普及しているMCPサーバーです。Issues・PRのコメント・コードレビュー・リポジトリ検索・ブランチ操作など、GitHubのほぼすべての操作をClaude Codeから直接実行できます。
インストールと設定
# 1. GitHub Personal Access Token を取得 # GitHub → Settings → Developer settings → Personal access tokens → Generate new token # 必要なスコープ: repo, read:org, read:user # 2. 環境変数に設定 export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxx" # 3. Claude Code に追加(stdio方式) claude mcp add github -- npx -y @modelcontextprotocol/server-github # または settings.json に直接書く場合: # ~/.claude/settings.json に追記(userスコープ)
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
GitHub MCPでできること
# Issueを読んで実装 > GitHub の Issue #123 の内容を確認して実装してください # PRレビューコメントを確認して修正 > PR #456 のレビューコメントを全部確認して指摘された箇所を修正してください # 新しいIssueを作成 > 今実装した認証機能に関するテスト不足のIssueを作成してください。 > タイトル・説明・ラベルを適切に設定してください # リポジトリを横断検索 > @myorg/backend-api リポジトリで "handlePayment" 関数の実装を探してください
Filesystem MCPのセットアップ
Filesystem MCPは特定ディレクトリへのアクセスを安全に拡張するサーバーです。Claude Codeのプロジェクトディレクトリ外のファイル(設定ファイル・共有リソース等)を安全に参照させたい場合に使います。
# プロジェクトの外にある共有ドキュメントにアクセス claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/docs # 複数パスを許可する場合 claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/project /path/to/shared-docs /path/to/config
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/projects",
"/Users/yourname/shared-docs"
]
}
}
}
allowlistに指定したパス以外はアクセスできません。ルートディレクトリ(
/)を指定するのは危険です。プロジェクトディレクトリと必要な共有リソースのパスだけを最小限に指定してください。Figma MCPのセットアップ
Figma MCPはデザインとコードのギャップを埋める強力なツールです。FigmaのデザインデータをClaude Codeが直接読めるため、デザインを見ながらPixelパーフェクトなコンポーネントを自動生成できます。
# 1. Figma Personal Access Token を取得 # Figma → アカウント設定 → Personal access tokens # 2. 環境変数に設定 export FIGMA_TOKEN="figd_xxxxxxxxxxxxxxxxxxxx" # 3. Claude Code に追加 claude mcp add --transport http figma https://mcp.figma.com/sse # または claude mcp add figma -- npx -y figma-mcp
{
"mcpServers": {
"figma": {
"command": "npx",
"args": ["-y", "figma-mcp"],
"env": {
"FIGMA_TOKEN": "${FIGMA_TOKEN}"
}
}
}
}
# FigmaのURLを渡してコンポーネントを生成 > https://www.figma.com/design/xxxxxx/MyApp?node-id=123:456 > このデザインを見てReactコンポーネントを生成してください。 > 既存の src/components/ のスタイルに合わせてください。 # デザイントークンをコードに反映 > Figmaのデザインシステム(Frame ID: 789:012)から > カラー・タイポグラフィ・スペーシングトークンを抽出して > tailwind.config.ts に反映してください
データベースMCPのセットアップ
PostgreSQL MCP
PostgreSQL MCPを使うとClaude Codeがデータベーススキーマを直接読んでクエリを生成できます。「usersテーブルとordersテーブルを結合して月別売上を集計するクエリを書いて」という自然言語の指示が、正確なSQLに変換されます。
# 1. 接続文字列を環境変数に設定 export DATABASE_URL="postgresql://user:password@localhost:5432/mydb" # 2. Claude Code に追加 claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres $DATABASE_URL
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"${DATABASE_URL}"
]
}
}
}
Supabase MCP
# Supabase アクセストークンを取得
# Supabase Dashboard → Account → Access Tokens
export SUPABASE_ACCESS_TOKEN="sbp_xxxxxxxxxxxxxxxxxxxx"
# Claude Code に追加
claude mcp add --transport http supabase https://mcp.supabase.com --header "Authorization: Bearer ${SUPABASE_ACCESS_TOKEN}"
# スキーマを確認してクエリを生成 > users, orders, order_items テーブルのスキーマを確認して、 > 先月の顧客別購入金額ランキング上位10件を取得するクエリを書いてください # マイグレーションを生成 > 現在のスキーマを確認して、products テーブルに > stock_quantity(整数・デフォルト0)カラムを追加するマイグレーションを作成してください # パフォーマンス分析 > slow query log を確認して、実行時間が1秒を超えるクエリの > インデックス最適化案を提案してください
Slack MCPのセットアップ
Slack MCPを使うとClaude Codeがチャンネルにメッセージを投稿したり、会話履歴を読んでコンテキストを把握したりできます。インシデント対応時に状況をチャンネルに自動投稿する、デプロイ完了を通知するといった用途に便利です。
# 1. Slack Bot Token を取得(OAuth & Permissions → Bot Token Scopes) # 必要なスコープ: chat:write, channels:read, channels:history export SLACK_BOT_TOKEN="xoxb-xxxxxxxxxxxx" export SLACK_TEAM_ID="T0XXXXXXXXX" # 2. Claude Code に追加 claude mcp add slack -- npx -y @modelcontextprotocol/server-slack
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}",
"SLACK_TEAM_ID": "${SLACK_TEAM_ID}"
}
}
}
}
複数MCPを組み合わせた実践設定
複数のMCPサーバーを同時に設定することで、より強力なワークフローが実現します。GitHubのIssueを読んで実装し、DBのスキーマを確認してSQLを書き、Slackで完了報告——これをClaude Code一つで完結させる設定例を示します。
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "${DATABASE_URL}"]
},
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}",
"SLACK_TEAM_ID": "${SLACK_TEAM_ID}"
}
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"${HOME}/projects",
"${HOME}/docs"
]
}
}
}
> GitHub Issue #234「ユーザー退会時に関連データを削除する」を実装してください。 > DBのスキーマを確認してどのテーブルを更新する必要があるか調べてから実装し、 > 実装完了後に #dev-backend チャンネルに完了報告を投稿してください。
MCP権限の細粒度制御
permissionsセクションで特定のMCPツールだけを許可・拒否できます。パターンはmcp__サーバー名__ツール名です。GitHub MCPの読み取りだけ許可して書き込みを禁止する、といった細かい制御が可能です。
{
"permissions": {
"allow": [
"mcp__github__list_issues",
"mcp__github__get_issue",
"mcp__github__list_pull_requests",
"mcp__github__get_pull_request",
"mcp__postgres__query",
"mcp__slack__post_message",
"mcp__slack__list_channels"
],
"deny": [
"mcp__github__delete_*",
"mcp__github__merge_pull_request",
"mcp__postgres__delete",
"mcp__postgres__drop_table"
]
}
}
mcp__github__delete_*のようにワイルドカード(*)を使うとdeleteで始まる全ツールをまとめて制御できます。新しいMCPサーバーを導入したばかりのときは、まず全拒否(mcp__サーバー名__*をdenyに追加)して動作確認しながら必要なツールだけ許可に追加していく方法が安全です。デバッグとトラブルシューティング
/mcpコマンドで状態確認
# Claude Codeセッション内で実行 > /mcp # 出力例: # ● github: connected (12 tools available) # Tools: list_issues, get_issue, create_issue, ... # ● postgres: connected (4 tools available) # Tools: query, list_tables, describe_table, ... # ● figma: error (connection timeout) # Last error: Connection refused at https://mcp.figma.com # エラーがある場合はサーバー名が赤く表示される
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
command not found: npx |
Node.jsが未インストール | Node.js 18以上をインストール |
401 Unauthorized |
トークンが無効・期限切れ | トークンを再発行して環境変数を更新 |
Connection timeout |
リモートサーバーが到達不能 | URLとネットワーク接続を確認 |
Tool not permitted |
permissionsのdenyに含まれている | settings.jsonのpermissionsを確認 |
Module not found |
npxのキャッシュ問題 | npx clear-npx-cache後に再試行 |
# settings.json を変更した場合は Claude Code を再起動 # または既存セッションで: > /mcp reset # 登録済みサーバーを確認 claude mcp list
まとめ
MCPはClaude Codeを「コードを書くAI」から「GitHubを操作し・DBを読み・Slackに報告する開発ワークフロー全体を動かすAI」に変えます。セットアップはclaude mcp addコマンド1行、設定はJSON数行で完了します。
まずはGitHub MCPだけ追加してみることをおすすめします。Issueを読みながら実装するだけで「MCPのある開発体験」の違いが実感できます。慣れてきたらFigma・DBと追加していき、最終的にはすべてのツールがClaude Codeから一気通貫で動く環境が整います。
MCPサーバーの権限制御はHooksと組み合わせるとさらに強力になります。詳しくはClaude Code Hooks完全ガイドを参照してください。Subagentsで専門エージェントにMCPツールを付与する方法はClaude Code Subagents完全ガイドで解説しています。
よくある質問
QMCPサーバーの利用に追加料金はかかりますか?
AMCPサーバー自体は無料のものが多いですが、Claude CodeのAPIトークンを消費します。GitHubやSlack等のMCPサーバーは無料で利用でき、別途サービスのAPIキーが必要なだけです。一部のエンタープライズ向けMCPサービスは有料の場合があります。
Q自分でカスタムMCPサーバーを作れますか?
Aはい。MCPはオープンプロトコルのため、TypeScript・Python等でカスタムサーバーを作れます。Anthropicが提供するMCP SDK(@modelcontextprotocol/sdk)を使うと、独自APIやイントラのサービスに接続するサーバーを数十行で実装できます。
Q会社のセキュリティポリシーでnpxが使えない場合はどうすればいいですか?
AMCPサーバーは事前にnpm installでローカルにインストールしてから起動するコマンドを指定できます。npx -yの代わりにnode /path/to/installed/server/dist/index.jsの形式で指定します。また企業環境ではHTTP transport方式のリモートMCPサービスを使う方法もあります。
QMCPとHooksの違いは何ですか?
AMCPは「Claudeが外部サービスを操作するためのツール拡張」です。HooksはClaude Codeの動作タイミングに処理を割り込ませる仕組みです。MCPでGitHubにアクセスするツールを追加し、HooksでGitHub操作の前後に監査ログを記録する、という形で組み合わせるのが典型的な使い方です。
QMCPサーバーをチームで共有するにはどうすればいいですか?
Aプロジェクト設定(.claude/settings.json)にMCPサーバーの設定を書いてリポジトリに含めます。ただしAPIトークン等の機密情報は設定ファイルに書かず、チームメンバー各自が環境変数で設定するようにしてください。.env.exampleに必要な環境変数名だけ書いておくのが一般的です。
QMCPサーバーが多すぎるとClaude Codeが遅くなりますか?
AMCPサーバー自体は起動時にプロセスが立ち上がるだけなので、登録数が多くても通常は影響は限定的です。ただし一度のプロンプトで多数のMCPツールを呼ぶと、ツール呼び出しのAPIコストが増加してレスポンスが遅くなる場合があります。permissionsで使わないツールを事前に制限しておくのが効果的です。

