コンテンツにスキップ

MCP Python SDK

このページは機械翻訳です

このドキュメントの翻訳版は英語版のページから自動的に生成されており、正式な内容はこのページの英語版です。

翻訳におかしな点を見つけましたか?翻訳の仕組みと問題の報告方法を参照してください。

このドキュメントは現在の安定版リリースラインである v2 を対象としています

v2 をはじめて使う場合、または v1 から移行する場合は、v2 の新機能 で変更点を 5 分で把握できます。破壊的変更のすべては 移行ガイド にまとめてあります。 まだ v1.x を使っている場合は、v1.x のドキュメント を参照してください。 分かりにくい点や不十分な点があれば、お知らせください

Model Context Protocol (MCP) は、LLM にコンテキストを提供するための標準的な方法を定め、コンテキストを 提供する という関心事を LLM とのやり取りそのものから切り離します。

これはその公式 Python SDK です。これを使うと、次のことができます。

  • あらゆる MCP ホストに対してツール、リソース、プロンプトを公開する MCP サーバーを構築する
  • あらゆる MCP サーバーに接続する MCP クライアントを構築する
  • 標準のトランスポートをすべて扱う:stdio、Streamable HTTP、SSE。

要件

Python 3.10 以上。

インストール

uv add "mcp[cli]"
pip install "mcp[cli]"

[cli] エクストラを入れると mcp コマンドが使えるようになります。開発時には必要になるはずです。 各依存関係が何のためにあるかは インストール を参照してください。

作成する

server.py というファイルを作成します。

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:
    """Greet someone by name."""
    return f"Hello, {name}!"

これで完全な MCP サーバーです。

ツール add を 1 つと、テンプレート化された リソース greeting://{name} を 1 つ公開しています。

実行する

uv run mcp dev server.py

これでサーバーが起動し、MCP Inspector が開きます。サーバーを対話的に試せる UI です。表示された URL を開いてください。

Note

Inspector は Node.js のアプリなので、mcp dev を使うには PATHnpx が必要です。

試してみる

Inspector で Tools を開き、a=1b=2 を指定して add を呼び出してみてください。

3 が返ってきます。✨

Inspector がそのフォーム(a に必須の整数フィールド、b にもう 1 つ)を組み立てたのは、型ヒントからです。Claude も、ほかのあらゆる MCP ホストも同じように動作します。

続いて Resources を開き、greeting://World を読み取ってみましょう。

Hello, World!

まとめ

書かなかったものをもう一度見てみましょう。

  • JSON Schema はありません。a: int, b: intそのまま スキーマです。
  • リクエストの解析も、シリアライズも、バリデーションのコードもありません。
  • プロトコルの処理は一切ありません。

書いたのは、型ヒントと docstring の付いた Python の関数 2 つだけです。残りは SDK が引き受けます。

次に読むもの

  • はじめに では、インストールからテスト済みの動くサーバーまでを案内します。
  • MCP サーバーを 利用する アプリケーションを作るなら、クライアント から始めてください。
  • すでに FastAPI や Starlette のアプリがあるなら、既存のアプリに追加する でその中に MCP サーバーをマウントできます。
  • 特定のエラーメッセージを探しているなら、トラブルシューティング がそのままの文面で引けるようになっています。
  • v2 での変更点が気になるなら、v2 の新機能 で 5 分で把握できます。
  • v1 から移行するなら、移行ガイド から始めてください。
  • 正確なシグネチャを探しているなら、API リファレンス がソースから生成されています。
  • LLM と一緒に読む場合、このドキュメントは llms.txt 形式でも公開されています。 llms.txt はページの索引で、 llms-full.txt には全ページが 1 つのファイルにまとめられています。