インストール
Python SDK は PyPI 上で mcp として公開されています。Python 3.10 以上が必要です。
このドキュメントは、現在の安定版リリースラインである v2 について説明しています。
uv add "mcp[cli]"
pip install "mcp[cli]"
v1 から移行する場合
v2 は破壊的変更を含むメジャーバージョンです。変更点はすべて 移行ガイド にまとめてあります。自分のパッケージが mcp に依存していて、まだ移行の準備ができていない場合は、バージョンの上限として <2 を付けておいてください(たとえば mcp>=1.28,<2)。そうすれば、バージョンを固定しない依存解決でも 1.x 系にとどまります。
インストールされるもの
SDK を使うだけなら、以下の内容を知っている必要はありません。それぞれの依存関係が何のためにあるのか気になる場合のために、まとめておきます。
mcp-types:すべてのプロトコル型(リクエスト、結果、コンテンツブロック)を独立したパッケージにしたもので、SDK と足並みをそろえてバージョン管理されます。mcpに依存するコードは、mcp.typesというエイリアス経由でこれをインポートします(このドキュメントに出てくるfrom mcp.types import ...はすべてそうです)。mcp_typesを直接インポートするのは、SDK なしでmcp-typesをインストールするプロジェクトだけにしてください。anyio:非同期ランタイムです。SDK 全体が anyio を前提に書かれているので、asyncioでもtrioでも動きます。pydantic:mcp.typesのあらゆるモデルの土台であり、スキーマの生成と検証もすべて担っています。httpx2:Streamable HTTP と SSE のクライアント側トランスポートを支える HTTP クライアントで、Server-Sent Events のサポートを内蔵しています。starlette、uvicorn、sse-starlette、python-multipart:HTTP のサーバー側トランスポートです。jsonschema:ツールの構造化出力を、宣言された出力スキーマに照らして検証します。pyjwt[crypto]:認可のための OAuth トークン処理を担います。opentelemetry-api:軽量な API だけです。そのため、OpenTelemetry の SDK とエクスポーターを自分でインストールしない限り、この SDK のトレーシングミドルウェアにコストは発生しません。typing-extensionsとtyping-inspection:Python 3.10 でも新しい型付け機能を使えるようにします。pywin32:Windows 専用で、stdioのサブプロセス管理に使われます。
オプションの extras
mcp[cli]は、mcpコマンドラインツール(mcp dev、mcp run、mcp install)のためにtyperとpython-dotenvを追加します。開発中は入れておきたいところですが、デプロイしたサーバーでは必要ないかもしれません。mcp[rich]は、サーバーのログを見やすくするためにrichを追加します。