Free

MCPとは何か:Claude Codeを外部世界に接続する

MCPの仕組みと設定方法を解説し、Claude CodeがMCP Server経由でデータベース・GitHub・Slackなどの外部システムに接続できるようにする。


Claude Codeがデフォルトでできることには限界がある。ローカルファイルの読み書き、ターミナルコマンドの実行、組み込みツールの呼び出し。しかし実際のプロジェクトでは、データベースの照会、Notionドキュメントの読み取り、Slackメッセージの検索、内部APIの呼び出しが必要になることが多い。

MCPはそのギャップを埋めるためのものだ。

MCPの位置づけ

MCP(Model Context Protocol)はAnthropicが提唱するオープンプロトコルで、AIモデルが外部ツールやデータソースとどのように通信するかを定義している。Claude Codeにプラグインをインストールするようなものだと考えるといい。各MCP Serverは独立したサービスで、一連のツールを公開し、Claudeがセッション中に直接呼び出せる。

Hooks(Claudeがアクションを実行したときにスクリプトをトリガーする)とは異なり、MCPはClaudeの能力の境界を積極的に拡張する:接続したものはすべてClaudeが操作できるようになる。

仕組み

アーキテクチャはシンプルだ:

Claude Code(Client)  ←→  MCP Server  ←→  外部システム
  1. 設定でMCP Serverを宣言する(ローカルプロセスまたはリモートサービス)
  2. Claude Code起動時にそのServerに接続し、公開されているツール一覧を取得する
  3. セッション中、ClaudeはそれらのツールをRead/Write/Bashなどの組み込みツールと同様に呼び出せる
  4. MCP Serverがリクエストを処理し、結果をClaudeに返す

このプロセス全体はユーザーには透過的だ。あなたが見るのは「データベースを確認します」と言ったClaudeが結果を返してくるところで、裏側ではMCPがリクエストを転送している。

MCPの3種類の機能

MCP Serverは3種類のものを公開できる:

Tools(ツール)
Claudeが能動的に呼び出せる関数——「ユーザーテーブルを検索する」「ドキュメントを検索する」「Slackメッセージを送信する」など。これが最もよく使われる。

Resources(リソース)
Claudeがコンテキストとして読み取れる構造化データ——データベースのschema、APIドキュメント、設定ファイルなど。

Prompts(プロンプトテンプレート)
ユーザーが直接参照できる定義済みプロンプトフラグメント。

実際の使用では90%のケースがToolsだ。

クイックスタート:既存のMCP Serverを追加する

公式のFilesystem MCPを例にとると、このServerはClaudeが作業ディレクトリ外のファイルシステムにアクセスできるようにする。

インストール

npm install -g @modelcontextprotocol/server-filesystem

設定

~/.claude/settings.jsonを編集する:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/yourname/Documents"
      ]
    }
  }
}

確認

Claude Codeを再起動して試す:

/Users/yourname/Documents 以下のPDFファイルを一覧表示して

Claudeが「ファイルシステムにアクセスできません」と言う代わりに結果を返したら、MCPは機能している。

設定の構造

{
  "mcpServers": {
    "サービス名": {
      "command": "起動コマンド",
      "args": ["引数リスト"],
      "env": {
        "API_KEY": "xxx"
      }
    }
  }
}
  • command + args:Claude CodeがMCP Serverプロセスを起動するためのコマンド
  • サービス名はローカルの識別子なので、好きな名前をつけていい
  • envはAPIキーなど機密性の高い設定を渡すために使う。コードにハードコードしないこと

設定はどこに置くか

MCP設定は優先度の低い順に3箇所に置ける:

場所 ファイル 使うケース
グローバル ~/.claude/settings.json 全プロジェクトで使いたいツール
プロジェクト .claude/settings.json このプロジェクト専用
ローカル上書き .claude/settings.local.json 個人設定、gitにはコミットしない

データベース接続や内部APIなどプロジェクト固有のMCPは、プロジェクト設定に置いてコードと一緒にコミットする。チームメンバーがリポジトリをクローンすれば、同じMCP環境が手に入る。

既存のMCP Serverはどこで探すか

Anthropicは公式Serverを一揃い提供している:

  • @modelcontextprotocol/server-filesystem — ファイルシステムアクセス
  • @modelcontextprotocol/server-github — GitHub操作(PR、issue、コード検索)
  • @modelcontextprotocol/server-postgres — PostgreSQLクエリ
  • @modelcontextprotocol/server-slack — Slackメッセージの読み書き
  • @modelcontextprotocol/server-google-maps — 地図・位置情報

コミュニティにはNotion、Linear、Jira、各種データベースに対応したサードパーティ実装も豊富にある。

MCP vs Hooks:どちらを選ぶか

Hooks MCP
トリガー方式 Claudeが特定のアクションを実行したとき Claudeが能動的に呼び出す
用途 既存の動作を割り込んで拡張する 新しい能力を追加する
代表的な使い方 保存時のフォーマット、コミット前チェック DBの照会、外部APIの呼び出し
設定の複雑さ

両者は補完関係にある。Hooksは「Claudeがどう仕事をするか」を制御し、MCPは「Claudeが何をできるか」を制御する。

次のステップ

この記事はMCPの概念入門だ。続く記事では以下をカバーする:

  • Claude Codeを実際のPostgreSQLデータベース(実際のschema)に接続する
  • 内部ツールとAPIを接続する
  • MCP Serverをゼロから自作する

すでに接続したいシステムがあるなら、まずMCP Serverリストを確認してみよう。すでに誰かが作っている可能性が高い。