Skip to content

Latest commit

 

History

History
121 lines (81 loc) · 5.77 KB

File metadata and controls

121 lines (81 loc) · 5.77 KB

Протокол Контекста Модели (MCP) — реализация на Python

В этом репозитории представлена реализация протокола Model Context Protocol (MCP) на Python, демонстрирующая, как создать серверное и клиентское приложение, которые взаимодействуют по стандарту MCP.

Обзор

Реализация MCP состоит из двух основных компонентов:

  1. MCP Server (server.py) — сервер, который предоставляет:

    • Инструменты: функции, вызываемые удалённо
    • Ресурсы: данные, доступные для получения
    • Подсказки: шаблоны для генерации подсказок для языковых моделей
  2. 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

Это подключится к серверу и выполнит все функции, включая инструменты, ресурсы и подсказки. В выводе будет показано:

  1. Результат работы калькулятора (5 + 7 = 12)
  2. Ответ инструмента completion на запрос «What is the meaning of life?»
  3. Список доступных ИИ-моделей
  4. Персонализированное приветствие для «MCP Explorer»
  5. Шаблон подсказки для обзора кода

Детали реализации

Сервер реализован с использованием 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. Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.