В этом репозитории представлена реализация протокола Model Context Protocol (MCP) на Python, демонстрирующая, как создать серверное и клиентское приложение, которые взаимодействуют по стандарту MCP.
Реализация MCP состоит из двух основных компонентов:
-
MCP Server (
server.py) — сервер, который предоставляет:- Инструменты: функции, вызываемые удалённо
- Ресурсы: данные, доступные для получения
- Подсказки: шаблоны для генерации подсказок для языковых моделей
-
MCP Client (
client.py) — клиентское приложение, подключающееся к серверу и использующее его возможности
Эта реализация демонстрирует несколько ключевых функций MCP:
completion— генерация текстовых дополнений с помощью ИИ-моделей (симуляция)add— простой калькулятор, складывающий два числа
models://— возвращает информацию о доступных ИИ-моделяхgreeting://{name}— возвращает персонализированное приветствие для указанного имени
review_code— шаблон подсказки для обзора кода
Чтобы использовать эту реализацию MCP, установите необходимые пакеты:
pip install mcp-server mcp-clientЗапустите сервер в одном окне терминала:
python server.pyСервер также можно запустить в режиме разработки с помощью MCP CLI:
mcp dev server.pyИли установить в Claude Desktop (если доступно):
mcp install server.pyЗапустите клиент в другом окне терминала:
python client.pyЭто подключится к серверу и продемонстрирует все доступные функции.
Клиент (client.py) демонстрирует все возможности MCP:
python client.pyЭто подключится к серверу и выполнит все функции, включая инструменты, ресурсы и подсказки. В выводе будет показано:
- Результат работы калькулятора (5 + 7 = 12)
- Ответ инструмента completion на запрос «What is the meaning of life?»
- Список доступных ИИ-моделей
- Персонализированное приветствие для «MCP Explorer»
- Шаблон подсказки для обзора кода
Сервер реализован с использованием API FastMCP, который предоставляет высокоуровневые абстракции для определения MCP-сервисов. Вот упрощённый пример определения инструментов:
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers together
Args:
a: First number
b: Second number
Returns:
The sum of the two numbers
"""
logger.info(f"Adding {a} and {b}")
return a + bКлиент использует библиотеку MCP client для подключения и вызова сервера:
async with stdio_client(server_params) as (reader, writer):
async with ClientSession(reader, writer) as session:
await session.initialize()
result = await session.call_tool("add", arguments={"a": 5, "b": 7})Для получения дополнительной информации о MCP посетите: https://modelcontextprotocol.io/
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.