modelcontextprotocol/python-sdk
The official Python SDK for Model Context Protocol servers and clients
What it is
MCP Python SDK – Model Context Protocol (MCP) を実装する Python ライブラリです。MCP は、大規模言語モデル (LLM) アプリケーションが、Web API のようなプロトコルを介して外部サービス (ツール、リソース、プロンプト) と通信するための標準化された方法です。
What you can do with it
- Write MCP servers:わずか数行の Python コードで MCP サーバーを記述できます。型ヒント付きの関数をデコレータで修飾することで、LLM が呼び出せる tools (アクション) または resources (テンプレート化された URL) として公開できます。
- Write MCP clients:サポートされている転送方式 (stdio, Streamable HTTP, Server-Sent Events) を介して、それらのツール/リソースを呼び出す MCP クライアントを記述できます。クライアントは、スキーマ生成、リクエスト/レスポンスのエンコード、構造化された結果の返却を行います。
- Use the bundled CLI (
mcp dev,mcp run,mcp install):迅速な開発、ローカルテスト、および MCP パッケージのインストールに使用します。
How it works (high-level)
- Server side –
MCPServerインスタンスを作成し、関数を@mcp.tool()または@mcp.resource()でデコレータとして使用します。SDK は Python の型ヒントと docstrings を抽出し、自動的に JSON-Schema 記述を作成し、選択した転送方式で提供します。 - Transport layer – MCP は 3 つの標準的な転送方式をサポートしています:
- stdio – サブプロセスとしてサーバーを組み込む場合に便利です。
- Streamable HTTP – メッセージをストリーミングする軽量な HTTP エンドポイントです。
- SSE – Server-Sent Events によるプッシュ型の通信です。
- Client side –
Clientオブジェクトがサーバー URL (または stdio サブプロセス) に接続し、call_tool(name, args)のようなメソッドを提供します。これにより、レスポンスとしてstructured_contentを含むオブジェクトが返されます。
Who might use it
- LLM application developers:カスタムツール (例:計算機、データベース検索) を LLM に公開するための、クリーンで型付けされたインターフェースが必要な開発者。
- Platform builders:再利用可能な LLM 互換サービスのマートプレイスを作成している構築者。
- Researchers:LLM と外部コード間の新しいインタラクションパターンをプロトタイプ化する研究者。
Getting started (quick example)
# server.py
from mcp.server import MCPServer
mcp = MCPServer("Demo")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
return f"Hello, {name}!"
ローカルで実行:
uv run mcp dev server.py # starts a dev server (streamable-http by default)
クライアント側:
import asyncio
from mcp import Client
async def main():
async with Client("http://localhost:8000/mcp") as client:
res = await client.call_tool("add", {"a": 1, "b": 2})
print(res.structured_content) # → {'result': 3}
asyncio.run(main())
Documentation & resources
- 完全なドキュメント:https://py.sdk.modelcontextprotocol.io/
- スタートガイド、API リファレンス、移行ガイド (v1 → v2)。
- プロトコル仕様:https://modelcontextprotocol.io/specification/latest
- CLI リファレンス:
mcp dev,mcp run,mcp install。
License
MIT – 自由に使用、修正、および配布可能です。
All details are taken directly from the repository's README.
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト