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:
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.
Что дальше
- Начало работы проведёт от установки до работающего и протестированного сервера.
- Создаёте приложение, которое использует MCP-серверы? Начните со страницы Клиенты.
- Уже есть приложение на FastAPI или Starlette? На странице Добавление в существующее приложение показано, как встроить в него MCP-сервер.
- Ищете точный текст ошибки? Раздел Устранение неполадок упорядочен по дословным сообщениям.
- Интересно, что изменилось в v2? Что нового в v2 — пятиминутный обзор.
- Переходите с v1? Начните с Руководства по миграции.
- Ищете точную сигнатуру? Справочник API генерируется из исходного кода.
- Читаете вместе с LLM? Эта документация также публикуется в формате llms.txt: llms.txt — это указатель страниц, а llms-full.txt содержит все страницы в одном файле.