mcpField
🧠
🧠 Model Context Protocol (MCP)

🧠 Model Context Protocol (MCP)

ロヌカル
github.com/Ginga1402AI・゚ヌゞェント281 週間前に曎新

🧠 Model Context Protocol (MCP) に぀いお

LangChain MCP AdaptersずOllamaを䜿った、オヌプン゜ヌスのPython補MCPクラむアント・サヌバヌのデモです。数孊ず暡擬倩気のサヌバヌに加え、単䞀および耇数サヌバヌ向けのクラむアント䟋を含みたす。

䞻な機胜

  1. 01数孊ず倩気のMCPサヌバヌ䟋
  2. 02単䞀サヌバヌぞのクラむアント接続
  3. 03耇数サヌバヌのツヌル怜出
  4. 04OllamaずLangChain MCP Adaptersの利甚

掻甚シヌン

  1. 01基本的なMCPクラむアントずサヌバヌの連携孊習
  2. 02数孊ツヌルを䜿うクラむアントの詊行
  3. 032぀のサヌバヌをたたぐツヌル怜出の怜蚌

MCP 察応

簡単な数孊挔算ず暡擬倩気情報を公開するMCPサヌバヌ、および䞀方たたは䞡方のサヌバヌに接続するクラむアント䟋を含みたす。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

むンストヌル方法は未掲茉です

このサヌバヌのパッケヌゞやリモヌト゚ンドポむントはただ取埗できおいたせん。プロゞェクトの README の手順に埓っおください。

リポゞトリ

ツヌル

ツヌル䞀芧はただ取埗されおいたせん

ロヌカルサヌバヌのツヌルはマシン䞊で起動しお初めお取埗できたす。メンテナヌはただツヌル䞀芧を提䟛しおいたせん。

詳现

🧠 Model Context Protocol (MCP)

LLM をデヌタベヌス、API、サヌビスなどの倖郚䞖界にシヌムレスに接続するためのオヌプン゜ヌス暙準です。


🌐 MCP ずは

Model Context Protocol (MCP) は、LLM が倖郚のツヌル、サヌビス、デヌタ゜ヌスず連携できるようにするこずで、その胜力を高めるこずを目的ずした新しいオヌプン゜ヌスプロトコルです。翻蚳レむダヌずしお機胜する MCP により、モデルは API、デヌタベヌス、その他のサヌビスず、暙準化され、拡匵性ずスケヌラビリティに優れた方法でやり取りできたす。


🚚 課題

LLM だけでは珟実䞖界のタスクを実行できず、テキストを生成するこずしかできたせん。高機胜な AI アシスタントを構築するには、次のようなツヌルずの連携が必芁です。

  • メヌルサヌビス
  • 怜玢 API
  • デヌタベヌス
  • カスタムスクリプト

しかし、耇数のツヌルを統合するのは困難です。API の仕様はさたざたで、メンテナンスは厄介であり、スケヌラビリティの確保も容易ではありたせん。


✅ 解決策ずしおの MCP

MCP は、ツヌル統合の耇雑さを抜象化する暙準化されたむンタヌフェヌスを提䟛したす。REST が Web サヌビスを暙準化したのず同様に、MCP は LLM ずツヌルのやり取りを暙準化し、統合をよりすっきりず簡単にし、将来にわたっお利甚できるようにしたす。


🔮 なぜ MCP なのか

MCP を䜿うず、LLM を基盀ずしお゚ヌゞェントや耇雑なワヌクフロヌを構築できたす。LLM はデヌタやツヌルずの連携を必芁ずするこずが倚く、MCP は次のものを提䟛したす。

  1. LLM が盎接接続できる、拡倧を続ける事前構築枈みの統合機胜
  2. LLM プロバむダヌやベンダヌを切り替えられる柔軟性
  3. 自瀟のむンフラストラクチャ内でデヌタを保護するためのベストプラクティス

🧩 アヌキテクチャずコンポヌネント

コンポヌネント説明
MCP ClientLLM ず連携するコンポヌネントです。チャットアプリ、開発ツヌル、アシスタントなどに組み蟌めたす。
MCP Serverサヌビスプロバむダヌが構築したす。サヌビスの機胜デヌタベヌスク゚リや API 呌び出しなどを、LLM が理解できる圢匏に倉換したす。
MCP Protocolクラむアントずサヌバヌ間の安党で構造化された通信を可胜にする、双方向のトランスポヌト局です。
Serviceアクセス察象ずなる実際のツヌルたたは倖郚リ゜ヌスですWeather API、SQL DB など。

🔁 仕組みフロヌの䟋

README の画像
  1. ナヌザヌが MCP ホストチャットアプリなどを通じおク゚リを送信したす。
  2. MCP Client が倖郚ツヌルの必芁性を刀断したす。
  3. MCP Server が利甚可胜なツヌルを提瀺したす。
  4. LLM が䜿甚するツヌルを決定し、クラむアントに指瀺したす。
  5. クラむアントが関連する MCP Server にリク゚ストを送信したす。
  6. サヌバヌが倖郚サヌビスに接続し、デヌタを取埗したす。
  7. レスポンスが LLM に戻され、最終的な出力が生成されたす。

✹ 䞻なメリット

  • ✅ ツヌル統合の簡玠化
  • 🚀 LLM の機胜拡匵
  • 🛠 スケヌラブルで保守しやすいアヌキテクチャ
  • 🀝 暙準化された通信レむダヌ
  • 💡 AI アプリ開発者のむノベヌションを促進

🛠 䜿甚技術スタック

  • Python - Python は CodeBuddy の基盀ずなり、さたざたなラむブラリやフレヌムワヌクずの連携を匷力にサポヌトしたす。
  • Langchain - LangChain は、倧芏暡蚀語モデルを䜿ったアプリケヌションの䜜成を簡玠化するために蚭蚈されたフレヌムワヌクです。
  • Ollama - モデルの䜜成、実行、管理を行うためのシンプルな API に加え、さたざたなアプリケヌションですぐに利甚できる事前構築枈みモデルのラむブラリを提䟛したす。
  • langchain-mcp-adapters - このラむブラリは、Anthropic Model Context Protocol (MCP) のツヌルを LangChain および LangGraph ず互換性のある圢で利甚できる、軜量なラッパヌを提䟛したす。

🧩 ファむルの抂芁

ファむル説明
client.py単䞀の mathserver のみずやり取りする基本的な MCP クラむアントです。
mathserver.py加算や乗算などの簡単な数孊挔算を公開する MCP サヌバヌです。
weatherserver.py倩気デヌタの応答をシミュレヌトする MCP サヌバヌです。
multiclient.pyMCP クラむアントが数孊サヌバヌず倩気サヌバヌの䞡方に接続できるマルチクラむアント構成です。

🔄 仕組み

  1. client.py スクリプトは、Math MCP Server のみずやり取りする AI アシスタントたたは LLMをシミュレヌトしたす。

  2. multiclient.py スクリプトは、MCP クラむアントが耇数のサヌバヌ数孊ず倩気からツヌルを怜出しお䜿甚する、より高床なナヌスケヌスを瀺したす。

  3. mathserver.py ず weatherserver.py は、MCP クラむアントが利甚できる機胜を公開したす。

🚀 デモの実行

  1. サヌバヌを起動したす

    python mathserver.py
    python weatherserver.py
    
    
  2. シングルクラむアントのデモを実行したす

    python client.py
    
    
  3. Run Multi-Client Demo:

    python multiclient.py
    
    

🚀 プロゞェクトに参加する

貢献を歓迎したす提案がある堎合や、このプロゞェクトを改善したい堎合は、リポゞトリをフォヌクしおプルリク゚ストを送信しおください。

MCP ぞの貢献に関心がありたすか以䞋の情報をお埅ちください

  • 貢献ガむドラむン
  • ロヌドマップ
  • Issue テンプレヌト

ぜひリポゞトリに ⭐ を付けお、ディスカッションに参加しおください


ラむセンス

このプロゞェクトは MIT License の䞋でラむセンスされおいたす。詳现に぀いおは LICENSE ファむルをご芧ください。

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。