Claude Code MCP完全ガイド|GitHub・Figma・DBを接続してAIの能力を拡張する方法

Claude Code MCP完全ガイド|GitHub・Figma・DBを接続してAIの能力を拡張する方法 AI開発

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プロトコルに従って通信することで、どのサービスでも同じ方法で接続できます。

MCPがClaudeに追加する3つの能力

機能 説明
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の基本コマンド

claude 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 システム設定 マシン上の全ユーザー 組織全体で共有するサーバー
APIトークンは設定ファイルに直接書かない
設定ファイルにGITHUB_TOKEN等を直接書くとgitに混入するリスクがあります。トークンは環境変数として設定し、設定ファイルからは$ENV_VARで参照する方法を推奨します。またはOSのキーチェーン(macOS Keychain・Windows Credential Manager)と連携させます。

GitHub MCPのセットアップ

GitHub MCPはClaude Codeユーザーの中で最も普及しているMCPサーバーです。Issues・PRのコメント・コードレビュー・リポジトリ検索・ブランチ操作など、GitHubのほぼすべての操作をClaude Codeから直接実行できます。

インストールと設定

GitHub MCPのセットアップ
# 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スコープ)
~/.claude/settings.json(GitHub MCP設定)
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

GitHub MCPでできること

Claude CodeからGitHubを操作する例
# Issueを読んで実装
> GitHub の Issue #123 の内容を確認して実装してください

# PRレビューコメントを確認して修正
> PR #456 のレビューコメントを全部確認して指摘された箇所を修正してください

# 新しいIssueを作成
> 今実装した認証機能に関するテスト不足のIssueを作成してください。
> タイトル・説明・ラベルを適切に設定してください

# リポジトリを横断検索
> @myorg/backend-api リポジトリで "handlePayment" 関数の実装を探してください

Filesystem MCPのセットアップ

Filesystem MCPは特定ディレクトリへのアクセスを安全に拡張するサーバーです。Claude Codeのプロジェクトディレクトリ外のファイル(設定ファイル・共有リソース等)を安全に参照させたい場合に使います。

Filesystem MCPのセットアップ
# プロジェクトの外にある共有ドキュメントにアクセス
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
.claude/settings.json(Filesystem MCP)
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/yourname/projects",
        "/Users/yourname/shared-docs"
      ]
    }
  }
}
Filesystem MCPのセキュリティ設計
allowlistに指定したパス以外はアクセスできません。ルートディレクトリ(/)を指定するのは危険です。プロジェクトディレクトリと必要な共有リソースのパスだけを最小限に指定してください。

Figma MCPのセットアップ

Figma MCPはデザインとコードのギャップを埋める強力なツールです。FigmaのデザインデータをClaude Codeが直接読めるため、デザインを見ながらPixelパーフェクトなコンポーネントを自動生成できます。

Figma MCPのセットアップ
# 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
.claude/settings.json(Figma MCP)
{
  "mcpServers": {
    "figma": {
      "command": "npx",
      "args": ["-y", "figma-mcp"],
      "env": {
        "FIGMA_TOKEN": "${FIGMA_TOKEN}"
      }
    }
  }
}
Figma MCPの活用例
# 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に変換されます。

PostgreSQL MCPのセットアップ
# 1. 接続文字列を環境変数に設定
export DATABASE_URL="postgresql://user:password@localhost:5432/mydb"

# 2. Claude Code に追加
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres $DATABASE_URL
.claude/settings.json(PostgreSQL MCP)
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "${DATABASE_URL}"
      ]
    }
  }
}

Supabase MCP

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}"
DB MCPの活用例
# スキーマを確認してクエリを生成
> users, orders, order_items テーブルのスキーマを確認して、
> 先月の顧客別購入金額ランキング上位10件を取得するクエリを書いてください

# マイグレーションを生成
> 現在のスキーマを確認して、products テーブルに
> stock_quantity(整数・デフォルト0)カラムを追加するマイグレーションを作成してください

# パフォーマンス分析
> slow query log を確認して、実行時間が1秒を超えるクエリの
> インデックス最適化案を提案してください

Slack MCPのセットアップ

Slack MCPを使うとClaude Codeがチャンネルにメッセージを投稿したり、会話履歴を読んでコンテキストを把握したりできます。インシデント対応時に状況をチャンネルに自動投稿する、デプロイ完了を通知するといった用途に便利です。

Slack MCPのセットアップ
# 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
.claude/settings.json(Slack MCP)
{
  "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一つで完結させる設定例を示します。

~/.claude/settings.json(フルスタック開発者向け総合設定)
{
  "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"
      ]
    }
  }
}
複数MCP連携の指示例
> GitHub Issue #234「ユーザー退会時に関連データを削除する」を実装してください。
> DBのスキーマを確認してどのテーブルを更新する必要があるか調べてから実装し、
> 実装完了後に #dev-backend チャンネルに完了報告を投稿してください。

MCP権限の細粒度制御

permissionsセクションで特定のMCPツールだけを許可・拒否できます。パターンはmcp__サーバー名__ツール名です。GitHub MCPの読み取りだけ許可して書き込みを禁止する、といった細かい制御が可能です。

.claude/settings.json(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コマンドで状態確認

セッション内での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で使わないツールを事前に制限しておくのが効果的です。