コンテンツにスキップ
LinkedInX

Claude Code × MCP 連携ガイド

約10分

対象読者: Claude Codeを活用する開発者、MCPサーバーを設定・活用したい方

MCP(Model Context Protocol) を使うと、Claude Codeにファイルシステム・データベース・外部APIなどのツールを接続し、自律的なタスク実行範囲を大幅に拡張できます。

**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サーバーは機能別に以下のカテゴリに分類されます。

サーバー名機能主な用途
@modelcontextprotocol/server-filesystemローカルファイルの読み書き・ディレクトリ操作プロジェクト外ディレクトリへのアクセス
@modelcontextprotocol/server-memoryインメモリのKVストアセッション間の情報保持
サーバー名機能主な用途
@modelcontextprotocol/server-sqliteSQLiteデータベースの読み書きローカルDBの操作・分析
@modelcontextprotocol/server-postgresPostgreSQLへの接続開発・ステージングDBの参照
サーバー名機能主な用途
@modelcontextprotocol/server-brave-searchBrave Search APIによるWeb検索リサーチ・情報収集
@modelcontextprotocol/server-fetchURLフェッチ・Webページ取得ドキュメント参照・API疎通確認
サーバー名機能主な用途
@modelcontextprotocol/server-githubGitHubのPR・Issue・コード操作PR作成・レビュー自動化
@modelcontextprotocol/server-gitlabGitLabのMR・Issue・Pipeline操作GitLabを使うチームの自動化
mcp-atlassianJira・Confluenceの操作タスク管理・ドキュメント参照
サーバー名機能主な用途
@modelcontextprotocol/server-slackSlackのメッセージ送受信・チャンネル操作通知・情報共有の自動化
@gcp/google-workspace-mcpGmail・Google Docs・Sheetsの操作ドキュメント作成・メール自動化

MCP設定は Claude Code の settings.jsonmcpServers セクションで行います。settings.json は通常 .claude/settings.json(プロジェクトレベル)または ~/.claude/settings.json(グローバル)に配置します。

{
  "mcpServers": {
    "サーバー名": {
      "command": "実行コマンド",
      "args": ["引数1", "引数2"],
      "env": {
        "環境変数名": "値"
      }
    }
  }
}
{
  "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 に記述せず、環境変数経由で渡してください。


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サーバーを使うと、ローカルの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

MCPサーバーが起動しない場合の確認手順

Section titled “MCPサーバーが起動しない場合の確認手順”
  1. npxコマンドの確認: npx --version で npx が利用可能か確認する
  2. パッケージ名の確認: @modelcontextprotocol/server-github などのパッケージ名が正確か確認する
  3. 環境変数の確認: 必要な環境変数(GITHUB_TOKEN 等)が設定されているか確認する
  4. Claude Codeの再起動: settings.json を更新後は Claude Code を再起動する
  5. デバッグログの確認: Claude Codeで /mcp コマンドを実行してMCPサーバーの状態を確認する
エラー原因対処法
spawn npx ENOENTnpxが見つからないNode.jsの再インストール、またはnvmでバージョンを確認
GITHUB_PERSONAL_ACCESS_TOKEN is not set環境変数が未設定export GITHUB_TOKEN=... で設定し、シェルを再起動
Permission denied指定パスへのアクセス権がないファイルシステムのパーミッションを確認(ls -la
Connection refusedリモートMCPサーバーが起動していないサーバーURLとポートを確認
Tool not foundMCPサーバーは起動しているがツール名が誤りsettings.json のサーバー名とツール呼び出し名を確認

パーミッションエラーへの対処

Section titled “パーミッションエラーへの対処”

Filesystem MCPでパーミッションエラーが発生する場合、指定したディレクトリへの読み書き権限を確認します。

# ディレクトリのパーミッション確認
ls -la /Users/username/shared-docs

# 権限がない場合の付与(読み書き可能に)
chmod 755 /Users/username/shared-docs

セキュリティ上の理由でパーミッション変更が不適切な場合は、より適切なディレクトリを指定するか、別の方法でファイルを共有することを検討してください。


  • MCPはAIモデルへの外部ツール統合を標準化するプロトコルで、Claude Codeのツール範囲を大幅に拡張できる
  • settings.jsonmcpServers セクションでローカル・リモートMCPサーバーを設定する
  • GitHub・Filesystem・SQLiteなどの公式MCPサーバーが利用可能で、設定はJSON数行で完了する
  • スキルからMCPツールを呼び出すことで、定型タスクを再利用可能な手順として定義できる
  • エージェントには最小権限の原則を適用し、必要最低限のMCPツールのみを許可する
  • MCPサーバーが起動しない場合は、環境変数・パッケージ名・Claude Codeの再起動を順に確認する

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]

  1. Anthropic, Claude Code documentation
  2. Anthropic, Claude API documentation
クイズ