🔌

【MCP入門】AIと世界をつなぐ「Model Context Protocol」とは?

に公開

生成AIの進化は目覚ましいものがありますが、AIモデルが「外部のデータ」や「ツール」にアクセスしようとすると、これまでは複雑な連携が必要でした。

「もっと簡単に、AIに社内データベースを見せたい」
「AIから直接、社内システムを操作させたい」

そんな願いを叶えるための新しい標準プロトコル、それが Model Context Protocol (MCP) です。

この記事では、MCPサーバーの仕組みとその可能性について、わかりやすく解説します。

MCPとは?

Model Context Protocol (MCP) は、AIモデル(LLM)と外部のシステム(データソースやツール)を接続するためのオープンな標準規格です。

一言で言えば、「AIのためのUSB」 のようなものです。

USBが登場する前は、マウスやキーボード、プリンターをパソコンに繋ぐために、それぞれ異なるポートやドライバが必要でした。しかし、USBの登場によって、あらゆる周辺機器を同じ規格で簡単に接続できるようになりました。

MCPもこれと同じことをAIの世界で実現します。

  • これまで: AIモデルごとに、データベースやAPIとの連携コードを個別に書く必要があった。
  • MCP: 一度MCPサーバーを作れば、OpenAI、Claude、その他のAIエージェントから共通の方法で接続できる。

MCPのアーキテクチャ

MCPは「クライアント・サーバー」モデルを採用しています。


MCPのアーキテクチャ概要

1. MCPクライアント (MCP Client)

AIモデルをホストするアプリケーションです。例えば、Claude Desktopアプリや、OpenAIのAPIを利用するツール、あるいはVS Codeの拡張機能などがこれに当たります。クライアントは、ユーザーの指示を受け取り、必要に応じてMCPサーバーに問い合わせを行います。

2. MCPサーバー (MCP Server)

実際の「仕事」をする部分です。外部のデータや機能へのアクセスを提供します。
MCPサーバーは、以下の3つの主要な機能を提供できます。

  • ツール (Tools): AIが実行できる関数です。例えば、「天気を調べる」「データベースにクエリを投げる」「Slackにメッセージを送る」といったアクションです。
  • リソース (Resources): AIが読み取れるデータです。ファイルの中身、データベースのレコード、APIのレスポンスなどがこれに当たります。
  • プロンプト (Prompts): ユーザーが使いやすいように事前に定義されたプロンプトのテンプレートです。

3. 通信プロトコル

クライアントとサーバーは、標準化されたプロトコルで通信します。

  • stdio: ローカル環境で動く場合、標準入出力を使って通信します(シンプルで高速)。
  • HTTP + SSE (Server-Sent Events): リモートサーバーと通信する場合に使われます。

MCPサーバーの機能詳細

MCPサーバーが提供できる3つの機能をもう少し詳しく見てみましょう。

🛠️ ツール (Tools)

AIに「手」を与える機能です。
AIはツールを使うことで、単にテキストを生成するだけでなく、現実世界に対してアクションを起こせるようになります。

例:

  • get_weather(city: string): 指定した都市の天気を取得する
  • search_database(query: string): 社内Wikiを検索する
  • create_ticket(title: string, description: string): Jiraにチケットを作成する

📂 リソース (Resources)

AIに「目」を与える機能です。
AIはリソースを通じて、現在のコンテキストに必要な情報を参照できます。

例:

  • file:///logs/app.log: アプリケーションのログファイル
  • postgres://db/users/123: 特定ユーザーのデータベースレコード
  • https://api.example.com/status: システムの稼働状況

📝 プロンプト (Prompts)

AIとの対話をスムーズにするための「テンプレート」です。
複雑な指示を毎回入力しなくても、メニューから選ぶだけでAIに適切な指示を出せるようになります。

例:

  • 「コードレビューをして」: 選択中のコードに対して、セキュリティやパフォーマンスの観点からレビューを行うプロンプト
  • 「バグ報告を作成」: エラーログを読み込んで、GitHub Issue形式のバグ報告を作成するプロンプト

MCPの利点

なぜMCPを使うべきなのでしょうか?

  1. 再利用性: 一度作ったMCPサーバーは、Claude Desktopでも、VS Codeでも、将来登場する新しいAIツールでも使えます。
  2. セキュリティ: APIキーやデータベースのパスワードなどの機密情報は、MCPサーバー側で管理します。AIクライアントには直接渡さないため、安全に連携できます。
  3. 開発の容易さ: PythonやTypeScript向けのSDKが充実しており、数行のコードでサーバーを立ち上げることができます。

ユースケース

  • 開発者のローカル環境: ローカルのデータベースやログファイルにAIからアクセスし、デバッグを効率化する。
  • 社内ナレッジ検索: 社内のドキュメントやWikiを検索できるMCPサーバーを立て、AIに質問できるようにする。
  • 運用自動化: AWSやGCPなどのクラウド環境を操作するMCPサーバーを作り、チャットベースでインフラ操作を行う。

参考リンク

まとめ

MCPは、AIと外部システムをつなぐための架け橋です。「AIのためのUSB」という例えの通り、これからのAI開発において、標準的なインターフェースとして普及していくことが予想されます。

次回は、実際にPythonを使ってシンプルなMCPサーバーを構築し、OpenAIやClaude Desktopと連携させる手順を解説します。お楽しみに!

Discussion