MCP (Model Context Protocol) 入門ガイド

AI
Picsum ID: 240

MCP (Model Context Protocol) 入門ガイド

AIと外部システムを繋ぐ「USB規格」の革命

本記事は2026年3月時点の情報に基づいています


エグゼクティブサマリー

MCPを1行で言うと:

MCP(Model Context Protocol)は、AIアプリケーションと外部システムを接続するためのオープンソース標準プロトコルである。

MCPでできること(3つの例):

  1. Claudeにローカルファイルを操作させる — 「このフォルダ内の売上データを分析して」と指示するだけで、Claudeが直接ファイルを読み込み、グラフを作成できる
  2. Slackと連携してチーム対応を自動化 — AIが未読メッセージを要約し、返信案をドラフトして投稿まで行う
  3. データベースに直接クエリを投げる — 自然言語で「先月の売上上位10製品を教えて」と聞くだけで、PostgreSQLやSQLiteから自動的にデータを取得・分析

1. MCPとは何か?

USB-Cのアナロジー

MCPは、電子機器をつなぐ「USB-Cポート」のようなものです。

USB-Cが登場する前、周辺機器を接続するには、各メーカーが独自の規格を持っていました。マウスにはPS/2、キーボードには別のコネクタ、プリンタにはまた別のケーブル…。これでは、機器ごとに異なるドライバをインストールする必要があり、互換性の問題も頻発しました。

USB-Cの登場により、すべてが統一されました。今では、どのメーカーのマウスでも、どのメーカーの外付けHDDでも、同じポートに接続できます。

MCPは、AIの世界にこの「統一規格」をもたらします。

MCPが登場する前:

  • Claude用にSlack連携プラグインを開発
  • ChatGPT用に別のSlack連携プラグインを開発
  • Cursor用にまた別のプラグインを開発
  • 各AIツールごとに、連携機能を個別に実装する必要があった

MCPが登力した後:

  • 1つのMCPサーバーを作れば、すべてのMCP対応AIツールで使える

なぜMCPが必要なのか?

問題提起:AIは「賢いけど閉じ込められている」

現在のAIモデル(Claude、GPT-4など)は非常に高度な推論能力を持っています。しかし、標準状態では以下の制約があります:

  • ローカルファイルにアクセスできない
  • 社内データベースを参照できない
  • SlackやGoogle Calendarなどの外部APIを直接操作できない
  • ユーザーのコンテキスト(環境、設定、履歴)を理解できない

各AIツールが個別に統合機能を開発しようとすると、以下の問題が発生します:

  1. 開発コストの重複 — 同じ機能を複数のAIツール向けに実装し直す必要がある
  2. メンテナンスの複雑化 — 各統合機能を個別に更新・修正する必要がある
  3. エコシステムの分断 — あるAIで使える機能が、別のAIでは使えない

MCPの解決策:標準化された接続レイヤー

MCPは、以下の3層構造でこの問題を解決します:

┌─────────────────────────────────────────┐
│        MCP Host (AIアプリケーション)       │
│  Claude Desktop / Cursor / VS Codeなど    │
└─────────────────┬───────────────────────┘
                  │ MCP プロトコル
    ┌─────────────┼─────────────┐
    ▼             ▼             ▼
┌────────┐  ┌────────┐  ┌────────┐
│MCP     │  │MCP     │  │MCP     │
│Server A│  │Server B│  │Server C│
│(Files) │  │(DB)    │  │(Slack) │
└────────┘  └────────┘  └────────┘

2. MCPでできること(具体例)

MCPサーバーは、主に3種類の機能(プリミティブ)を提供します:

2.1 Tools(ツール)— AIが能動的に実行する関数

ツールは、AIモデルがユーザーの要求に応じて自ら判断して呼び出す機能です。

具体例:

// ツール定義の例(天気予報取得)
{
  name: "get_forecast",
  description: "指定した場所の天気予報を取得",
  inputSchema: {
    type: "object",
    properties: {
      latitude: { type: "number", description: "緯度" },
      longitude: { type: "number", description: "経度" }
    },
    required: ["latitude", "longitude"]
  }
}

ユーザー:「東京の週末の天気を教えて」
→ AIが自動的に get_forecast(35.6762, 139.6503) を呼び出し

代表的なツール例:

  • ファイルの作成・編集・削除
  • データベースへのクエリ実行
  • API呼び出し(Slack投稿、GitHub Issue作成など)
  • 計算処理、データ変換

2.2 Resources(リソース)— 読み取り専用のデータソース

リソースは、AIアプリケーションがコンテキストとして参照する読み取り専用のデータです。

具体例:

resource://project-docs/README.md    → プロジェクトのドキュメント
database://schema/users                   → ユーザーテーブルのスキーマ
calendar://events/2024                    → 2024年のカレンダーイベント

代表的なリソース例:

  • ファイルシステム(ドキュメント、コード)
  • データベーススキーマ
  • APIドキュメント
  • 設定ファイル

2.3 Prompts(プロンプト)— 再利用可能な対話テンプレート

プロンプトは、特定のタスクを効率的に実行するための定型フォーマットです。

具体例:

{
  name: "analyze_codebase",
  description: "コードベースを分析してアーキテクチャを文書化",
  arguments: [
    { name: "directory", description: "分析対象のディレクトリ" }
  ]
}

ユーザーがこのプロンプトを選択すると、AIは事前定義された手順に従って分析を実行します。


3. 対応ツール一覧(2026年3月時点)

3.1 MCP対応クライアント(AIアプリケーション)

クライアント開発元特徴対応機能
Claude DesktopAnthropicデスクトップアプリ、最も普及Tools, Resources, Prompts
Claude CodeAnthropicCLIベースの開発ツールTools, Resources
CursorAnysphereAI搭載IDETools, Resources
VS Code + CopilotMicrosoftMCP対応(拡張機能)Tools
MCPJamコミュニティMCP専用クライアントTools, Resources, Prompts
ChatGPTOpenAIMCP対応(2025年追加)Tools

3.2 主要なMCPサーバー一覧

公式リファレンスサーバー(Anthropic提供):

サーバー名機能用途
Filesystemファイル操作ローカルファイルの読み書き
GitGit操作リポジトリ管理、履歴検索
FetchWeb取得URLからコンテンツを取得・変換
Memory知識グラフ永続的なメモリ管理
Sequential Thinking思考支援段階的な問題解決
Time時間変換タイムゾーン変換

主要なサードパーティサーバー:

サーバー名カテゴリ機能
PostgreSQLデータベースクエリ実行、スキーマ参照
SQLiteデータベースローカルDB操作
Slackコミュニケーションメッセージ送受信、チャンネル管理
GitHub開発Issue/PR管理、リポジトリ操作
Google Driveストレージファイル検索、アクセス
Google Maps位置情報経路検索、プレイス情報
Sentry監視エラー分析、Issue追跡

📌 最新サーバー一覧: MCP Registry で常に更新されています


4. 導入方法(ハンズオン)

4.1 Claude DesktopへのMCPサーバー設定

最も一般的なユースケースである「Claude Desktopでローカルファイルを操作できるようにする」手順を解説します。

前提条件:

  • Claude Desktop(公式サイトからダウンロード)
  • Node.js(LTS版推奨)

手順1: 設定ファイルを開く

  1. Claude Desktopを起動
  2. メニューバーから「Settings…」を選択
  3. 左サイドバーの「Developer」タブをクリック
  4. 「Edit Config」ボタンをクリック

設定ファイルの場所:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

手順2: 設定を追加

以下のJSONを設定ファイルに追加します:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/your/Desktop",
        "/path/to/your/Documents"
      ]
    }
  }
}

⚠️ 重要: パスは絶対パスで指定してください。アクセスを許可するディレクトリのみを指定します。

手順3: Claude Desktopを再起動

設定を反映させるために、Claude Desktopを完全に終了してから再起動します。

手順4: 接続確認

  1. 画面右下の🔌アイコンをクリック
  2. 「filesystem」サーバーが「Connected」と表示されていれば成功

4.2 複数サーバーの設定例

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
    },
    "git": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-git", "--repository", "/path/to/project/my-app"]
    },
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    }
  }
}

4.3 環境変数の設定

APIキーなどが必要なサーバーの場合:

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-token-here"
      }
    }
  }
}

5. ユースケース3選

5.1 開発ワークフローの自動化

シナリオ: ソフトウェアエンジニアが日々の開発作業を効率化

使用するMCPサーバー: Filesystem, Git, GitHub

具体的な活用例:

ユーザー: 「このプロジェクトのREADMEを更新して、先週のコミット内容を反映させて」

AIの実行フロー:

  1. Git サーバーで git log --since="1 week ago" を実行
  2. コミットメッセージを分析して主要な変更点を抽出
  3. Filesystem サーバーで README.md を読み込み
  4. 変更履歴セクションを更新
  5. GitHub サーバーでプルリクエストを作成

効果: 手動でコミット履歴を確認・整理する作業が自動化され、ドキュメントの鮮度が向上

5.2 社内ツールとの連携

シナリオ: プロジェクトマネージャーが進捗管理を効率化

使用するMCPサーバー: Slack, Google Calendar, Notion(サードパーティ)

具体的な活用例:

ユーザー: 「来週のミーティングを確認して、関係者にSlackで事前資料の共有を依頼して」

AIの実行フロー:

  1. Google Calendar サーバーで来週のイベントを取得
  2. 各ミーティングの参加者を特定
  3. Notion サーバーで関連ドキュメントを検索
  4. Slack サーバーで各参加者にメッセージを送信

効果: 複数ツールを行き来する作業がなくなり、コミュニケーション漏れを防止

5.3 データ分析パイプライン

シナリオ: データアナリストがビジネスインサイトを迅速に取得

使用するMCPサーバー: PostgreSQL, Filesystem

具体的な活用例:

ユーザー: 「先月の売上データを分析して、上位10製品のレポートを作成して」

AIの実行フロー:

  1. PostgreSQL サーバーでスキーマを確認
  2. SQL クエリを生成・実行:
    SELECT product_name, SUM(revenue) as total_revenue
    FROM sales
    WHERE sale_date >= '2026-02-01' AND sale_date < '2026-03-01'
    GROUP BY product_name
    ORDER BY total_revenue DESC
    LIMIT 10;
    
  3. 結果を分析してインサイトを抽出
  4. Filesystem サーバーでレポート(Markdown/HTML)を生成

効果: SQLを書かずに自然言語でデータ分析が可能


6. セキュリティ注意点

MCPは強力な機能を提供する一方で、適切なセキュリティ対策が不可欠です。

6.1 信頼できるサーバーの見分け方

✅ 信頼できるサーバーの特徴:

  1. 公式リポジトリからの提供

    • github.com/modelcontextprotocol/servers (公式リファレンス)
    • ベンダー公式のGitHubリポジトリ
  2. コミュニティでの評価

    • GitHub Stars数が多い
    • IssuesやPull Requestsが活発
    • セキュリティポリシー(SECURITY.md)が存在
  3. コードの透明性

    • ソースコードが公開されている
    • 依存関係が明確

❌ 注意が必要なサーバー:

  • 個人リポジトリでメンテナンスされていない
  • 不明なnpmパッケージとして配布されている
  • 過剰な権限を要求する

6.2 権限管理のベストプラクティス

最小権限の原則:

// ❌ 危険: ルートディレクトリへのアクセス
{
  "args": ["@modelcontextprotocol/server-filesystem", "/"]
}

// ✅ 安全: 必要なディレクトリのみ
{
  "args": ["@modelcontextprotocol/server-filesystem", "/path/to/project/my-app"]
}

環境変数の管理:

// ✅ APIキーは設定ファイルに直接書かず、環境変数から読み込む
{
  "env": {
    "SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}"
  }
}

6.3 OAuth 2.0認証の活用

MCPは、リモートサーバーとの通信において OAuth 2.1 ベースの認証をサポートしています。

認証フロー:

  1. MCPサーバーが 401 Unauthorized を返却
  2. クライアントが保護リソースメタデータを取得
  3. OAuth認可サーバーでユーザー認証
  4. アクセストークンを取得してリクエスト

推奨事項:

  • リモートMCPサーバーでは常にOAuth認証を使用
  • Bearer Tokenの有効期限を適切に設定
  • スコープは必要最小限に制限

6.4 ログと監査

ログの確認方法(Claude Desktop):

# リアルタイムでログを監視
tail -n 20 -F ~/Library/Logs/Claude/mcp*.log

監視すべきイベント:

  • サーバー接続/切断
  • ツール実行(どのツールが、いつ、何の引数で)
  • エラー発生
  • 認証失敗

7. 注意点・限界

7.1 技術的な限界

項目説明
STDIOトランスポートローカルサーバーでは標準入出力を使用するため、サーバー側で print() を使用すると通信が破損する
状態管理MCPは本質的にステートフル。セッション管理が必要
大規模データ大量のリソース転送には時間がかかる。ページネーションの実装を推奨

7.2 運用上の注意点

サーバーのライフサイクル:

  • Claude Desktop起動時にサーバーが自動起動
  • サーバーエラー時はログを確認
  • 設定変更後はアプリケーションの再起動が必要

デバッグ方法:

  1. MCP Inspector(npx @modelcontextprotocol/inspector)で個別テスト
  2. Claude DesktopのDevToolsを有効化:
    echo '{"allowDevTools": true}' > ~/Library/Application\ Support/Claude/developer_settings.json
    
  3. Command-Option-Shift-i でDevToolsを開く

7.3 エコシステムの現状

  • サーバー品質のばらつき: サードパーティサーバーは品質がまちまち
  • ドキュメント不足: 一部のサーバーは設定方法が不明確
  • 互換性: クライアントごとにサポート機能が異なる

8. まとめと次のステップ

MCPがもたらす価値

  1. 開発効率の向上: 1つのサーバーを開発すれば、すべてのMCP対応クライアントで利用可能
  2. ユーザー体験の向上: AIがユーザーのコンテキストを理解し、より適切な支援を提供
  3. エコシステムの活性化: 標準化により、統合機能の開発・共有が促進

初心者におすすめの最初のステップ

  1. Claude Desktopをインストール
  2. Filesystemサーバーを設定 — 自分のプロジェクトフォルダへのアクセスを許可
  3. 試してみる — 「このフォルダのコードを分析して」と頼んでみる
  4. Gitサーバーを追加 — リポジトリ操作を体験
  5. 独自サーバーの開発に挑戦公式チュートリアルを参照

参考リソース


MCPは、AIと私たちのデジタル環境を繋ぐ「共通言語」です。
この標準規格が普及することで、AIはより身近で、より役立つ存在になっていくでしょう。

まずは小さな一歩から。ローカルファイルへのアクセスから始めて、徐々に世界を広げていきましょう。


本記事はAnthropic公式ドキュメント(https://modelcontextprotocol.io)を参照して作成されています。

最終更新: 2026年3月7日

コメント

タイトルとURLをコピーしました