Перейти к содержанию

MCP Python SDK

Машинный перевод

Эта страница переведена с английской документации автоматически, и основной версией остаётся английская страница. Если что-то читается неправильно, на странице Переводы объясняется, как об этом сообщить.

Это документация v2 — текущей стабильной ветки релизов

Впервые работаете с v2 или переходите с v1? Что нового в v2 — пятиминутный обзор изменений, а Руководство по миграции описывает каждое несовместимое изменение. Всё ещё на 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, и один шаблонный ресурс, greeting://{name}.

Запуск

uv run mcp dev server.py

Эта команда запускает сервер и открывает MCP Inspector — интерактивный интерфейс, в котором можно его исследовать. Откройте URL, который она выведет.

Note

Inspector — приложение на Node.js, поэтому для mcp dev нужен npx в PATH.

Попробуйте сами

В Inspector перейдите на вкладку Tools и вызовите add с параметрами a=1, b=2.

В ответ приходит 3. ✨

Inspector построил эту форму (обязательное целочисленное поле для a и ещё одно для b) по аннотациям типов. Так же поступит Claude и любой другой MCP-хост.

Теперь перейдите на вкладку Resources и прочитайте greeting://World:

Hello, World!

Итоги

Посмотрите ещё раз, чего писать не пришлось:

  • Никакой JSON Schema. a: int, b: int и есть схема.
  • Ни разбора запросов, ни сериализации, ни кода валидации.
  • Вообще никакой обработки протокола.

Вы написали две функции на Python с аннотациями типов и строкой документации. Остальное делает SDK.

Что дальше