このリポジトリには、Model Context Protocol (MCP) のPython実装が含まれており、MCP標準を使って通信するサーバーとクライアントアプリケーションの作成方法を示しています。
MCPの実装は主に2つのコンポーネントで構成されています:
-
MCPサーバー (
server.py) - 以下を提供するサーバー:- Tools:リモートで呼び出せる関数
- Resources:取得可能なデータ
- Prompts:言語モデル用のプロンプトテンプレート
-
MCPクライアント (
client.py) - サーバーに接続し、その機能を利用するクライアントアプリケーション
この実装では、MCPの主要な機能をいくつか示しています:
completion- AIモデルからテキスト補完を生成(シミュレーション)add- 2つの数字を加算するシンプルな計算機
models://- 利用可能なAIモデルの情報を返すgreeting://{name}- 指定した名前に対するパーソナライズされた挨拶を返す
review_code- コードレビュー用のプロンプトを生成
このMCP実装を使うには、必要なパッケージをインストールしてください:
pip install mcp-server mcp-client別のターミナルでサーバーを起動します:
python server.pyMCP CLIを使って開発モードでサーバーを起動することもできます:
mcp dev server.pyまたは、Claude Desktopにインストールして起動することも可能です(利用可能な場合):
mcp install server.py別のターミナルでクライアントを起動します:
python client.pyこれによりサーバーに接続し、利用可能なすべての機能を実演します。
クライアント (client.py) はMCPの全機能を示しています:
python client.pyこれによりサーバーに接続し、tools、resources、promptsを含むすべての機能を利用します。出力には以下が表示されます:
- 計算機ツールの結果(5 + 7 = 12)
- 「What is the meaning of life?」に対するcompletionツールの応答
- 利用可能なAIモデルの一覧
- 「MCP Explorer」へのパーソナライズされた挨拶
- コードレビュー用のプロンプトテンプレート
サーバーはFastMCP APIを使って実装されており、MCPサービスを定義するための高レベルの抽象化を提供します。以下はツールの定義例です:
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers together
Args:
a: First number
b: Second number
Returns:
The sum of the two numbers
"""
logger.info(f"Adding {a} and {b}")
return a + bクライアントはMCPクライアントライブラリを使ってサーバーに接続し、呼び出します:
async with stdio_client(server_params) as (reader, writer):
async with ClientSession(reader, writer) as session:
await session.initialize()
result = await session.call_tool("add", arguments={"a": 5, "b": 7})MCPの詳細については、以下を参照してください: https://modelcontextprotocol.io/
免責事項:
本書類はAI翻訳サービス「Co-op Translator」を使用して翻訳されました。正確性を期しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。原文の言語による文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じた誤解や誤訳について、当方は一切の責任を負いかねます。