アーパボー(ARPABLE)
アープらしいエンジニア、それを称賛する言葉・・・アーパボー
AI

Anthropic MCPで拓く!AI連携とビジネス活用の第一歩

Anthropic MCPで拓く!AI連携とビジネス活用の第一歩

 

Model Context Protocol(MCP) は、AIシステムと外部のデータやツールを統合し、シームレスな情報交換を可能にするプロトコルです。Anthropic社が2024年11月25日に発表 し、異なるツールやデータベース間の通信を統一することで、AIの文脈理解を向上させることを目的としています。

MCPはオープンソース(MITライセンス)として提供されており、開発者や企業は自由にカスタマイズや拡張が可能です(※1) これにより、標準で対応していないシステムとも柔軟に連携でき、より幅広いAI活用が実現します。

また、MCPの主な機能として、LLM(大規模言語モデル)やAIアシスタントが、ファイルストレージ、データベース、クラウドサービスなどの外部情報を活用できる ことが挙げられます。これにより、AIはより精度の高い回答を提供し、業務効率の向上に貢献することが期待されています。

では、具体的にMCPはどのような仕組みで動作し、どのようなツールと連携できるのでしょうか?以下で詳しく解説していきます。

(※1)オープンソースライセンスに関しては以下の記事を参考にしてください。
オープンソース講座(4):OSSとは何か?基本を徹底解説
オープンソース講座(5):OSSライセンスのリスク

MCPの仕組みと構成要素

MCPの基本的なアーキテクチャは、図1に示すように、MCPクライアント、MCPサーバー、外部データソースの3つの主要な要素で構成されています。これらの要素が連携することで、AIシステムと外部データソース間のシームレスな情報交換が実現されます。

図1 CPクライアントサーバー関係図

補足事項:図1は、MCPの基本的なアーキテクチャを示すものであり、実際のシステム構成は、具体的な要件や実装によって異なる場合があります。


CPクライアントの役割と対応ツール

MCPクライアントは、ユーザーがMCPの機能を利用するためのインターフェースとなるものです。
図1では、Claude Desktop(Anthropic)、VSCode、ReplitなどのツールがMCPクライアントの例として挙げられています。
これらのツールは、ユーザーからのリクエストを受け取り、MCPサーバーに伝達する役割を担います。具体的には、AIアシスタントや開発環境などが、外部データやアプリケーションと統合する際の窓口として機能します。

MCPサーバーの機能と接続可能なサービス

MCPサーバーは、MCPクライアントからのリクエストを処理し、必要なデータや情報を外部データソースから取得する役割を担います。
図1では、MCPサーバーがGoogle Drive、GitHub、Slack、PostgreSQLなどの外部サービスと統合されている様子が示されています。
MCPサーバーは、これらの外部サービスとの間でデータの送受信を行い、クライアントからの要求に応じた処理を実行します。MCPサーバーは、異なるシステム間のデータ交換を円滑にするための中心的な役割を果たします。

MCPと連携する外部データソース

外部データソースは、MCPサーバーがアクセスするデータや情報を提供するサービスやシステムです。
図1では、Google Drive、GitHub、Slack、PostgreSQLなどが外部データソースの例として挙げられています。
これらのサービスは、ファイルストレージ、データベース、クラウドサービスなど、様々な形態のデータを提供します。
MCPサーバーは、これらの外部データソースから必要な情報を取得し、クライアントに提供することで、AIの文脈理解を向上させ、より精度の高い回答や機能を提供することを可能にします。

MCPクライアントとサーバーの通信プロセス

MCPの通信はJSON-RPC 2.0形式で行われ、クライアントが構造化されたリクエストを生成し、サーバーが認証・処理後にレスポンスを返します

主な機能:

  • JSON-RPC 2.0形式による統一された通信。
  • 多様な通信手段(HTTP、WebSocketなど)のサポート。
  • 非同期通信。
  • セキュリティ機能(OAuth 2.0など)。

利点:

  • 開発者は、複数のツールやデータソースへのアクセスを効率的かつ安全に行うことができます。
  • AIの能力を最大限に引き出すための重要な役割を果たします。

プロトコル例:

クライアントはmethod(操作名)やparams(パラメータ)を含むリクエストを送信し、サーバーはデータソースへのアクセスや処理結果を統一フォーマットで返却します。
以下はこれらをイメージできるように作成した簡単なコード例です。

サーバー例(Flask)
@app.route('/mcp', methods=['POST'])
def mcp_server():
    data = request.get_json()
    if data.get("method") == "getData":
        return jsonify({"jsonrpc": "2.0", "result": {"message": f"Query: {data['params']['query']}"}, "id": data["id"]})
    return jsonify({"jsonrpc": "2.0", "error": {"code": -32601, "message": "Method not found"}, "id": data["id"]})
クライアント例
payload = {"jsonrpc": "2.0", "method": "getData", "params": {"query": "SELECT * FROM users"}, "id": 1}
response = requests.post("http://127.0.0.1:5000/mcp", json=payload)
print(response.json())

以上説明してきたように、MCPはJSON-RPC 2.0に基づく効率的な通信プロトコルで、AIと外部リソースの連携を実現します。統一された形式での通信により、開発者は複数のデータソースやツールへのアクセスを安全かつ効率的に管理でき、AIの能力拡張に貢献します。

MCPクライアントとサーバー間の通信手段

MCPクライアントとMCPサーバーの間では、システムの要件に応じてさまざまな通信手段が用いられます。

API(REST / GraphQL)接続

ご存じの通り、REST APIはHTTPを用いたシンプルな通信方式で、クライアントとサーバー間のリソース操作を統一的に行う仕組みです。JSONやXML形式でデータを送受信し、拡張性と互換性の高さからGoogle DriveやSlackなどのクラウドサービスに広く採用されています。

GraphQL APIは、Facebookによって開発されたクエリ言語で、クライアントが必要なデータのみをリクエストできる柔軟なAPI手法です。単一のエンドポイントを通じて複数のデータ取得を最適化できるため、通信量の削減やレスポンスの最適化に適しています。特に、リアルタイムデータの取得や複雑なデータ構造の処理に強みを持ちます。

このようなAPI技術を使用することで、クライアントとサーバー間のデータの送受信を標準化します。Google DriveやSlackなどのクラウドサービスとの連携に広く活用されています。

SQLデータベース接続

PostgreSQL、MySQL、Microsoft SQL Server、Oracle Databaseなどのリレーショナルデータベースと直接通信し、構造化されたデータの取得や更新が可能になります。

Webhook通知

を活用することで、GitHubやSlackのリアルタイムイベントをMCPサーバーに即時反映できます。これにより、特定の変更が発生した際に、自動的にクライアントへ通知が送られます。

Webhook通知というのは、サーバー側で特定のイベントが発生した際に、事前に登録されたURLへ即座にHTTPリクエストを送信する仕組みです。これにより、GitHubのコード変更やSlackのメッセージ投稿などの更新情報をリアルタイムでクライアントへ通知できます。

メッセージキュー(Kafka / RabbitMQ)

メッセージキューを導入することで、大量のデータ処理を効率化できます。
これにより、複数のシステム間でデータをスムーズにやり取りできるようになります。

Kafkaは、分散型のメッセージキューシステムで、大量のデータをリアルタイムで処理・配信するために設計されています。LinkedInやNetflixなどの大規模データ処理を行う企業で採用されています。高いスループットと耐障害性を持ち、ストリーミングデータ処理やログ管理、イベント駆動アーキテクチャに広く利用されています。

RabbitMQは、軽量で柔軟なメッセージブローカーであり、メッセージの送受信を効率的に管理します。InstagramやMozillaなどの企業が、タスクキューやイベント通知の処理に活用しています。低遅延な通信が可能で、タスクキューやイベント通知、マイクロサービス間の非同期通信などに活用され、幅広いシステムに適用されています。これにより、複数のシステム間でデータをスムーズにやり取りできるようになります。

MCPサーバーとサーバーツールの情報交換方法(まとめ)

MCPサーバーは、様々な外部ツールと連携し、AIシステムの能力を拡張します。以下に、代表的なツールと、それらがMCPサーバーとどのように情報交換を行うかの例を示します。

 表 MCPサーバーとサーバーツールの情報交換方法
使用ツール 特徴 具体的なデータ交換例
API通信 Google Drive, GitHub, Slack REST API / GraphQL API を使用 – Google Drive: ドキュメント取得・要約、レポート保存
– GitHub: リポジトリ情報取得、プルリクエスト作成
– Slack: チャンネル情報取得、AI生成メッセージの投稿
データベース接続 PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database SQLクエリを利用してデータを処理 – PostgreSQL: データ分析・取得、新規データの書き込み
ファイルストレージ Google Drive, AWS S3 クラウドストレージを通じたデータの管理 – AWS S3: ファイルの取得・保存
Webhook通知 GitHub, Slack イベント発生時にMCPサーバーへリアルタイム通知 – GitHub: イベント通知、AIによる対応処理
– Slack: チャットイベントの通知、AIによる自動返信
メッセージキュー Kafka, RabbitMQ,
AWS SQS
大量データの処理に使用 – Kafka: データ処理・分散システム間の通信

MCPを導入するメリット

MCPの導入により、次のような利点が得られます。

異なるデータソースの統合

従来、異なるツールやデータベースを統合するには、それぞれのAPIを個別に開発・管理する必要がありました。しかし、MCPを使用することで、統一されたプロトコルを介して複数のツールと連携できるため、開発工数を削減し、効率的なデータ統合が可能になります。

さらに、MCPはオープンソースとして開発されており、カスタマイズ性に優れている点も大きな特徴です。 これにより、標準でサポートされていないツールや国内特有の業務システムとも連携することが可能になります。例えば、自社のSaaSや基幹システムとMCPを統合するための拡張開発ができ、企業ごとのニーズに柔軟に対応できます。

AIアシスタントの知識強化

MCPを通じて、AIアシスタントは企業の内部データ(ナレッジベース、CRM、コードリポジトリなど)をリアルタイムで参照できます。これにより、ユーザーの質問に対してより正確な回答が可能になります。

実際に、MCPを活用した企業の中には、独自の社内ツールやデータベースとの統合を行い、業務効率の大幅な向上を実現している事例 もあります。オープンソースであることを活かし、必要に応じたカスタマイズを行うことで、AIの活用範囲をさらに広げることができます。

セキュリティとアクセス管理

MCPは、OAuth2.0やAPIキーを用いた認証機構を備えており、安全なデータアクセスを実現します。アクセス制御を細かく設定できるため、機密情報を適切に管理できます。

また、Anthropicが提案したMCPのOSSライセンス形態はMITライセンスです。 このライセンスでは、商用利用、改変、配布が可能ですが、元の著作権表示を保持する必要があります。特許の使用についてはMITライセンスに明記されていないため、必要に応じてAnthropicに確認することが推奨されます。

MCPの具体的な活用事例

企業のデータ管理

MCPを導入することで、企業のAIシステムが外部データソースと統合され、リアルタイムでのデータ取得や分析が可能になります。​例えば、Block社やApollo社は、MCPを自社システムに統合し、AIエージェントが社内のさまざまなデータソースにアクセスできる環境を構築しています。 ​

開発者向けツールとの統合

開発者向けのプラットフォームであるZed、Replit、Codeium、Sourcegraphなどは、MCPを活用してAIエージェントがコードリポジトリにアクセスし、コードレビューやリファクタリングの提案を行う機能を提供しています。​これにより、開発効率が向上し、コード品質の維持が容易になります。

出典:Introducing the Model Context Protocol

MCPが切り拓く未来の姿

今後、MCPの標準化が進むことで、さらなるツールやプラットフォームとの統合が容易になり、AIの活用範囲が広がることが期待されます。

例えば、以下のような新しいサービスやアプリケーションが生まれる可能性があります。

パーソナライズされた学習支援

MCPを活用することで、AIチューターが学生の学習進捗や理解度をリアルタイムで把握し、個々の学生に合わせた最適な学習コンテンツや指導方法を提供できるようになります。

例えば、学生が使用している学習管理システム(LMS)やデジタル教材とAIチューターがMCPで連携することで、学生の学習データを分析し、苦手分野を特定したり、理解度に応じた問題を出題したりすることが可能になります。

高度なビジネスインテリジェンス

MCPを導入することで、企業のAIシステムが様々な部門のデータソース(CRM、ERP、会計システムなど)を統合的に分析し、より深い洞察や予測を提供できるようになります。
例えば、営業部門のデータとマーケティング部門のデータをMCPで連携させることで、顧客の購買行動をより正確に予測し、効果的なマーケティング戦略を立案したり、営業活動を最適化したりすることが可能になります。

スマートシティ

MCPを活用することで、都市の様々なシステム(交通管理システム、エネルギー管理システム、防犯システムなど)が連携し、都市全体の効率性や安全性を向上させることができます。
例えば、交通管理システムと防犯システムをMCPで連携させることで、交通事故が発生した際に、自動的に救急車を派遣したり、周辺の監視カメラの映像を警察に提供したりすることが可能になります。

これらの例は、MCPの可能性の一端を示すものです。MCPが標準化され、広く普及することで、私たちの生活や社会を大きく変えるような、革新的なサービスやアプリケーションが次々と登場することが期待されます。

まとめ

MCPは、AIと外部データソースを接続し、より高度なデータ活用を可能にする重要なプロトコルです。特に、MCPクライアントとMCPサーバーの関係を理解し、APIやデータベースとの統合方法を知ることで、AIシステムの可能性を最大限に引き出すことができます。

今後の発展 今後、MCPの標準化が進むことで、さらなるツールやプラットフォームとの統合が容易になり、AIの活用範囲が広がることが期待されます。

以上

筆者プロフィール:
ケニー狩野(中小企業診断士、PMP、ITコーディネータ)
キヤノン(株)でアーキテクト、プロマネとして多数のプロジェクトをリード。
現在、株式会社ベーネテック代表、株式会社アープ取締役、一般社団法人Society 5.0振興協会評議員ブロックチェーン導入評価委員長。
これまでの知見を活かしブロックチェーンや人工知能技術の推進に従事。趣味はダイビングと囲碁。
2018年「リアル・イノベーション・マインド」を出版。