見出し画像

【話題沸騰】Model Context Protocol(MCP)とは結局何なのか?直感的に解説!

今回は、話題のMCPについて、技術者以外の人でも直感的に何をやっているのか、分かりやすく解説いたします。

MCPとは何か?

Model Context Protocol (MCP) は、Anthropicが発表したAI アシスタント(LLM)と外部データソースを接続するためのオープンな標準プロトコルです。

MCPを通じて、LLMやAIツールは外部データソースと接続できる。

従来、AIアシスタントは必要なデータにアクセスする際に様々な制約がありましたが、MCPによってこの問題を統一的なフレームワークに沿って解決することができます。

データフローはこのような形になる。

主なメリット

MCPのメリットを具体的に見ていきましょう。

  1. 統一的なデータアクセス

    • 異なるデータソースに対して個別の実装が不要

    • 1つのプロトコルで様々なシステムと接続可能

    • データの相互運用性が向上

  2. 豊富な連携オプション

    • Google Drive、GitHub、Slack、PostgreSQLなど、多数の既製サーバーが利用可能

    • 独自のデータソース用のサーバーを作成可能

    • ローカルファイルシステムへのアクセスもサポート

  3. セキュアな設計

    • アクセス制御の仕組みが組み込まれている

    • データソースごとに権限を細かく設定可能

    • セキュリティを考慮した実装が可能

具体的なユースケース

次に、開発者向けとビジネス向けに、どんなユースケースが考えられるか、一例を見ていきましょう。

1. 開発者向け機能

  • GitHubリポジトリの操作(ファイルの作成・更新、PRの作成など)

  • コードベースの検索と参照

  • イシューの作成と管理

Githubなどと連携して、既存コードを文脈に組み込んだ開発がしやすくなる。

2. ビジネスツール連携

  • Google Driveのファイル検索・参照

  • Slackでのコミュニケーション

  • データベース(PostgreSQL、SQLite)へのアクセス

ビジネスツール各種や、データベースとの連携も可能。

3. カスタム実装

  • 独自のデータソース用のサーバー作成

  • 既存システムとの統合

  • 特殊なユースケースへの対応

実装方針

ここからはどちらかというと技術者向けですが、技術解説記事は既にあふれているので、あまり深入りはせず、方針だけ示します。

例として、Typescriptを使用し、githubと連携する場合の概略を考えてみましょう。

クライアント側

デスクトップ版Claudeを使用する場合は特に実装する必要はありませんが、独自アプリを作成する場合、以下のような方向で実装を行います。

// MCPサーバーの基本的な実装例
const server = new Server({
  name: "example-server",
  version: "1.0.0",
  capabilities: {
    resources: {}
  }
});

// リソースハンドラーの設定
server.setRequestHandler(ListResourcesRequestSchema, async () => {
  // リソース一覧の返却処理
});

サーバー側

claude_desktop_config.jsonというファイルに、以下の内容を書き込みます。

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

始め方(技術者向け)

  1. 環境設定

    • Node.jsまたはPythonの開発環境を用意

    • 必要なSDKをインストール(TypeScriptまたはPython)

  2. 設定ファイルの作成 (claude_desktop_config.json)
    Windowsの場合は"C:\Users\(ユーザー名)\AppData\Roaming\Claude\claude_desktop_config.json"
    Macの場合は"~/Library/Application Support/Claude/claude_desktop_config.json"

  3. 必要な認証情報の準備

    • 各サービスのAPIキーやトークンを取得

    • 適切な権限設定を行う

開発環境SDKは、以下のレポジトリにて公開されています。

Typescript版

Python版

今後の展望

MCPはオープンソースプロジェクトとして、コミュニティからの貢献も歓迎されています。

  • コミュニティによる新しいサーバー実装の追加
    コミュニティサーバーとして、CloudflareRaygunが公開されております。

  • より多くのツールやサービスとの連携
    公式で対応するサービスも、増えていくことが見込まれます。
    最新状況はこちらからご確認可能です。

  • プロトコルの機能拡張と改善

MCPは、AIアシスタントとデータソースの連携を標準化することで、より効率的で拡張性の高いAIアプリケーションの開発を可能にします。

いいなと思ったら応援しよう!