言語を切り替える
テーマを切り替える

AI ツールが互換性ゼロ?MCP プロトコルでシームレス接続(実践付き)

2 日間ハマった統合問題の話

恥ずかしい話ですが、去年 Claude を会社の GitHub リポジトリに接続しようとしました。AI にコードレビューを任せれば効率が上がる——そう思ったんです。結果は? 丸 2 日格闘し、数百行のアダプターコードを書き、深夜 3 時までデバッグして、謎のバグだらけに。GitHub をようやく片付けたと思ったら、上司から「次は Slack でメッセージ処理を」と言われ、また一からやり直しです。

「なぜ AI ツールごとに接続方式がバラバラなのか。統一標準はないのか?」——本当に叫びたくなりました。

2024 年 11 月、Anthropic が MCP(Model Context Protocol)を発表するまでは。「また新しいプロトコルか」と最初はスルーしていました。しかし 2025 年 3 月に OpenAI も公式採用を発表したとき、事の重大さに気づきました。2 大 AI 企業が同時に 1 つのプロトコルに賭けるのは、業界でも珍しいことです。

この記事では、数ヶ月 MCP を調べて得た知見を共有します。公式ドキュメントのなぞりではなく、MCP とは何か、そして何より——実際の問題をどう解決するかを解説します。思っているよりずっと簡単です。

1000+
MCP サーバー数
Hugging Face コミュニティ
3万+
GitHub Stars
awesome-mcp-servers
5分
MCP 開発入門
Source: GitHub および Hugging Face 公式データ (2025年2月)

MCP とは? USB ポートのたとえ

まずは身近な例えから

MCP の説明には USB ポートの例えが最適です。2000 年頃の PC を覚えていますか? マウスは PS/2、キーボードは別ポート、プリンターはパラレル、スキャナーは SCSI——背面は穴だらけ。機器を変えるたびに対応ポートを探し、足りなければ拡張カードを買う必要がありました。

そこへ USB が登場。1 つのポートに何でも挿せる。マウス、キーボード、USB メモリ、プリンター、スマホ——すべて 1 つの USB で完結。このシンプルさは、まさに飛躍でした。

MCP が目指すのはこれと同じこと——AI ツール界の「USB ポート」になること。

具体的には、MCP は オープンな AI ツール相互運用標準プロトコル です。平たく言えば、AI ツールと各種データソースの接続を標準化し、シンプルにするもの。データソースごとにアダプターコードを書く必要はなく、MCP Server を提供すれば、MCP 対応の AI ツールから直接接続できます。

"MCP プロトコル公開から半年以内に、Hugging Face コミュニティには 1000+ の MCP サーバーが登場。GitHub の awesome-mcp-servers プロジェクトは 3 万+ Stars を獲得し、開発ツール、通信・コラボレーション、データストレージなど 20+ 分野をカバーしています。"

何を解決するのか

MCP が解決する問題は、非常に具体的です。

問題 1:重複作業が多すぎる

以前は AI ツールごとにデータソースと個別接続が必要でした。GitHub なら 1 セット、Slack ならまた 1 セット、データベースならまた——当時は 7 つのコネクタを保守し、更新のたびに 7 箇所修正。思い出すだけで頭が痛い。

問題 2:AI は賢いがデータに届かない

AI ツールは自分の世界に閉じ込められ、本当に必要なデータにアクセスできません。プロジェクトドキュメントを読ませたい? データベースを照会させたい? 注文データを分析させたい? そのたびに追加の「接着剤コード」が必要でした。

問題 3:エコシステムの分断

Claude 用に書いたコネクタは GPT では使えません。GPT 用のものも他の AI ツールでは使えません。同じ機能のコードを何度も書く——車輪の再発明の連続です。

MCP は、これらを一気に解消しようとしています。

MCP のコアアーキテクチャ:驚くほどシンプル

3 層構造だけ

初めて MCP のアーキテクチャ図を見たとき、「シンプル!」と感じました。全体が 3 層、非常に明快です。

┌──────────────────────────────────────┐
│    MCP Host(ホストアプリ)            │
│    - 例:Claude Desktop、ChatGPT      │
│    - 接続とユーザー UI を管理           │
└──────────────┬───────────────────────┘

               ↓ JSON-RPC 2.0 通信
┌──────────────────────────────────────┐
│    MCP Client(クライアント)           │
│    - サーバーとの通信を担当             │
│    - リクエスト送信、レスポンス処理       │
└──────────────┬───────────────────────┘

               ↓ JSON-RPC 2.0 通信
┌──────────────────────────────────────┐
│    MCP Server(サーバー)             │
│    - Resources(リソース)            │
│    - Tools(ツール)                  │
│    - Prompts(プロンプト)            │
└──────────────────────────────────────┘

Host が全体を管理し、Client が通信し、Server が具体的な機能を提供。責務が明確で、結合度も低い設計です。

Server が提供する 3 つのコア機能

MCP Server は主に AI ツールに 3 つのものを提供します。

1. Resources(リソース)

データソースです。ファイル内容、DB レコード、API レスポンスなど。AI ツールはこれを通じて構造化データを読み取れます。

GitHub の MCP Server なら、リポジトリ情報、PR 一覧、Issue 詳細を Resources として公開できます。AI が呼び出せば、データが返ってきます。

2. Tools(ツール)

実際の操作能力です。AI はこれらを呼び出してファイル作成、メッセージ送信、DB 更新などを実行できます。

Slack の MCP Server なら「メッセージ送信」「チャンネル作成」といったツールを提供。AI は読むだけでなく、実際に動けます。

3. Prompts(プロンプト)

事前定義されたプロンプトテンプレート。よくあるタスクの「ショートカット」と考えると分かりやすいです。AI が特定の作業を理解し実行しやすくなります。

コードレビュー用 MCP Server なら「コード品質チェック」「セキュリティ脆弱性スキャン」といった Prompt テンプレートを提供するかもしれません。

従来方式との比較

以前の統合方式:

Claude ──┐
         ├──→ GitHub API(アダプターコードが必要)
GPT   ──┐│
        │└──→ Slack API(アダプターコードが必要)
        └───→ Postgres(アダプターコードが必要)

各 AI ツールが各データソースと個別接続——N×M の複雑さ です。10 ツール × 10 データソースなら 100 セットのコード。

MCP 導入後:

Claude ──┐
GPT   ──┼──→ MCP Client ──┬──→ GitHub MCP Server
Gemini──┘                  ├──→ Slack MCP Server
                          └──→ Postgres MCP Server

AI ツールは MCP Client を実装するだけで全 MCP Server に接続。データソースは MCP Server を実装するだけで全 AI ツールから利用可能。複雑さは N+M へ。10 + 10 なら 20 セットです。

データソースが増えるほど、この差は顕著になります。

実践:天気照会 MCP Server を作る

理論は十分。さっそく手を動かしましょう。シンプルですが完全な例——天気照会サービスです。本当に難しくありません。私は 5 分で動かせました。

準備

必要なもの:

  • Python 3.10 以上(入っているはず)
  • FastMCP フレームワーク(公式推奨の Python フレームワーク、非常に使いやすい)

インストール:

pip install fastmcp

完全なコード

コード量は少ないですが、機能は揃っています。

from fastmcp import FastMCP
import httpx
from datetime import datetime

mcp = FastMCP("Weather Service")

@mcp.tool()
async def get_weather(city: str) -> dict:
    """
    指定した都市の天気情報を取得

    Args:
        city: 都市名(例:Tokyo、Osaka)

    Returns:
        天気情報を含む辞書
    """
    # OpenWeatherMap の無料 API を使用
    # 実際には API Key を取得してください(無料・すぐ取得可能)
    API_KEY = "your_api_key_here"
    url = f"http://api.openweathermap.org/data/2.5/weather"

    async with httpx.AsyncClient() as client:
        try:
            response = await client.get(
                url,
                params={
                    "q": city,
                    "appid": API_KEY,
                    "units": "metric",  # 摂氏
                    "lang": "ja"        # 日本語の説明
                }
            )
            response.raise_for_status()
            data = response.json()

            # 重要な情報だけ返す
            return {
                "city": data["name"],
                "temperature": data["main"]["temp"],
                "feels_like": data["main"]["feels_like"],
                "description": data["weather"][0]["description"],
                "humidity": data["main"]["humidity"],
                "wind_speed": data["wind"]["speed"],
                "timestamp": datetime.now().isoformat()
            }

        except httpx.HTTPError as e:
            # ネットワーク障害や API 障害でもサービス全体を落とさない
            return {
                "error": f"天気情報を取得できませんでした: {str(e)}"
            }

@mcp.resource("weather://current")
async def current_weather_status() -> str:
    """
    現在の天気サービスのステータス情報を提供
    """
    return f"天気サービス稼働中、更新時刻:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"

# サーバー起動
if __name__ == "__main__":
    mcp.run()

Claude Desktop の設定(ハマりやすい)

コードができたら、Claude Desktop の設定ファイルに登録します。

設定ファイルの場所:

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

内容:

{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": [
        "-m",
        "fastmcp",
        "run",
        "/Users/yourname/projects/weather_server.py"
      ],
      "env": {
        "PYTHONPATH": "/Users/yourname/projects"
      }
    }
  }
}

私が踏んだ落とし穴

  1. パスは絶対パス必須。相対パスだとファイルが見つかりません。
  2. JSON 形式は厳密に。カンマや引用符のミスでエラーになり、メッセージも分かりにくい。オンライン JSON バリデータで確認を。
  3. 設定後は Claude Desktop を再起動。反映されません。私は再起動を忘れて 30 分待ちました。

再起動後、Claude に新しいツールアイコンが表示されます。「weather」サービスが接続済みか確認し、「東京の天気を調べて」と聞いてみてください。書いた MCP Server が自動呼び出しされます。

初めて成功したときは、かなり嬉しかったです。

実際の活用シーン:MCP で何ができる?

理論とデモは終わり。実プロジェクトでは MCP がどう役立つのか、いくつかの事例を紹介します。

GitHub 統合:コードレビュー自動化

ある OSS プロジェクトが MCP で GitHub と接続し、以下を実現しました。

  • 新規 PR の自動分析とコード品質スコア付け
  • 潜在的なセキュリティ脆弱性とパフォーマンス問題の検出
  • PR 要約と変更説明の自動生成
  • 履歴データに基づくレビュアー推薦

導入後、コードレビュー効率が 4 倍 に向上したそうです。機械的なチェックが自動化され、人間はビジネスロジックとアーキテクチャ設計に集中できます。

Slack 統合:スマートワークアシスタント

Slack 統合の例。MCP Server 経由で AI アシスタントは以下が可能です。

  • 毎日の会議議事録の自動整理
  • メッセージの自動分類と優先度付け
  • 議論内容に基づく ToDo の自動作成
  • 重要な議論で関係者へ能動的にリマインド

あるチームは情報処理効率が 60% 向上したと報告しています。反復的な整理作業が自動化され、浮いた時間をより価値ある仕事に使えるようになったためです。

エンタープライズ:業務システム連携

企業シーンではさらに実用的です。

  • Google Drive 統合:社内ドキュメントの検索・要約
  • Postgres 統合:SQL なしの自然言語クエリ
  • CRM 統合:顧客情報の自動更新、営業レポート生成

共通点は、AI と既存データシステムをつなぎ、業務データにアクセス・処理させる こと。おもちゃではなく、本物の生産性ツールになります。

まとめ

MCP の価値を一言で言えば、「AI ツールとデータソースの接続を、積み木のようにシンプルにする」 こと。

以前は AI ツール × データソースごとにアダプターコード——重複多く、保守コストも高い。今は MCP Server を提供すれば、MCP 対応 AI ツールすべてが使えます。これが標準化の力です。

MCP に興味があれば:

  1. 手を動かす:本文の天気照会コードをコピーし、パラメータを変えて Claude Desktop で動かす
  2. 既存リソースを探す:GitHub の awesome-mcp-servers に 3000 以上のサーバー
  3. 自作 Server:特定ニーズがあれば MCP Server を開発
  4. コミュニティ参加:実践知を共有し、他の開発者を助ける

さあ、最初の MCP Server を作る準備はできましたか?


FAQ

MCP プロトコルとは何ですか?
MCP(Model Context Protocol)は、Anthropic が発表したオープンな AI ツール相互運用標準プロトコルです。AI ツールとデータソースの接続を標準化し、シンプルにします。

例えるなら:
• USB ポートが PC 周辺機器の接続を統一したように
• MCP は AI ツールのデータ接続方式を統一します
なぜ OpenAI と Anthropic の両方が MCP を支持するのですか?
MCP は AI ツール統合の断片化という、業界の切実な課題を解決するからです。

メリット:
• 独自プロトコルではなくオープン標準
• AI ツールごとに個別のアダプターコードを書く必要がない
• 統合の複雑さを大幅に低減
MCP Server はどんな機能を提供しますか?
MCP Server は 3 つのコア機能を提供します:

1) Resources(リソース):
• データアクセスを提供

2) Tools(ツール):
• 操作能力を提供

3) Prompts(プロンプト):
• 事前定義されたタスクテンプレートを提供

これらにより、AI ツールはデータを読み取り、操作を実行し、タスクを理解できます。
MCP 開発を素早く始めるには?
FastMCP フレームワークを使うのが最短です。

手順:
1) fastmcp パッケージをインストール
2) サーバーコードを書く(本文の天気照会例を参照)
3) Claude Desktop の JSON ファイルを設定
4) 再起動して利用開始

全体で 5〜10 分です。
MCP の実際の活用シーンは?
MCP は 20+ 分野で使われています:
• GitHub コードレビュー自動化
• Slack スマートアシスタント
• 企業 CRM/ERP 統合
• データベースの自然言語クエリ
• ドキュメント検索・要約
• IoT デバイス制御など

AI がデータにアクセスしたり操作を実行したりする必要があるあらゆるシーンに適用できます。

4分で読めます · 公開日: 2025年11月25日 · 更新日: 2026年6月8日

関連記事

コメント

GitHubアカウントでログインしてコメントできます