Перейти до змісту

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. ✨

Цю форму (обов'язкове цілочислове поле для a та ще одне для b) Inspector побудував з ваших анотацій типів. Так само зробить 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 містить усі сторінки в одному файлі.