Model Context Protocol の解説
同じ統合コードを何度も繰り返し書くのは、もうやめましょう。
LLMをデータベースやAPIに接続する場合、新しいモデルが登場するたびにカスタムのグルーコード(接着剤となるコード)を書かなければならないことがよくあります。これは混乱を招きます。結局、多くのツールに対して多くの接続を管理することになってしまいます。
Model Context Protocol (MCP) はこれを解決します。これはAIにとってのUSB-Cポートのようなものです。一度ツールを構築すれば、あらゆるモデルがそれを利用できます。
アーキテクチャは3つの要素で構成されています:
• Host(ホスト):Claude CodeやIDEなど、あなたが使用するアプリ。 • Client(クライアント):ホスト内にあるコネクタ。 • Server(サーバー):データやツールを公開するために構築するプログラム。
MCPサーバーは、主に3つのプリミティブを使用して構築できます:
- Tools(ツール):メール送信など、モデルが作業を実行するために呼び出す関数。
- Resources(リソース):ログファイルなど、アプリが取り込む読み取り専用データ。
- Prompts(プロンプト):特定のタスクのための再利用可能なテンプレート。
以下は、FastMCP SDKを使用してPythonで基本的なサーバーを構築する方法です:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-tools")
@mcp.tool()
def word_count(text: str) -> int:
"""Count words in a text."""
return len(text.split())
@mcp.resource("notes://team")
def team_notes() -> str:
"""Expose team notes."""
return "Release freeze starts Friday."
@mcp.prompt()
def code_review(language: str, code: str) -> str:
"""Template for code reviews."""
return f"Review this {language} code: {code}"
if __name__ == "__main__":
mcp.run()
このコードが複雑な通信を代行してくれます。あなたが書いたdocstringが、モデルへの指示となります。
本番環境に向けた3つのヒント:
- セキュリティ:データを変更するツールを実行する前には、必ずユーザーの承認を求めてください。
- コンテキスト:ツールの説明は簡潔に保ちましょう。説明が長すぎるとトークンを浪費します。
- エラー:明確なメッセージを返してください。モデルは「User not found」というエラーは修正できますが、生のコードのクラッシュを修正することはできません。
特注のコネクタを作るのはやめましょう。MCPサーバーを一度構築すれば、あらゆるモデルがそれを使えるようになります。
出典: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian