Реализация Python Model Context Protocol (MCP)
Этот проект реализует функционирующий сервер и клиент Model Context Protocol (MCP) на Python, следуя спецификации Anthropic MCP. Он демонстрирует ключевые шаблоны протокола MCP на простом интерактивном примере.
Что такое МКП?
Model Context Protocol (MCP) — это открытый стандарт, созданный на основе JSON-RPC 2.0 для подключения моделей ИИ к внешним источникам данных и инструментам. Он определяет архитектуру клиент-сервер, в которой приложение ИИ взаимодействует с одним или несколькими серверами MCP, каждый из которых предоставляет такие возможности, как:
Инструменты : исполняемые функции, которые выполняют действия.
Ресурсы : источники данных, предоставляющие информацию
Подсказки : Предопределенные шаблоны или рабочие процессы
MCP стандартизирует способ обнаружения и вызова этих возможностей, выступая в качестве «USB-C для ИИ», позволяющего моделям структурированно взаимодействовать с внешними системами.
Related MCP server: MCP Server Python Template
Структура проекта
server/: Реализация сервера MCPserver.py: сервер WebSocket, который обрабатывает запросы MCP и предоставляет примеры инструментов/ресурсов
client/: Реализация клиента MCPclient.py: Демонстрационный клиент, который подключается к серверу и использует все возможности MCP
Демонстрируемые возможности
Эта реализация демонстрирует основной поток протокола MCP:
Согласование возможностей : клиент-серверное рукопожатие через
initializeОбнаружение возможностей : список доступных инструментов и ресурсов
Вызов инструмента : вызов инструмента
add_numbersс параметрамиДоступ к ресурсам : Чтение текстового содержимого ресурса
Настраивать
Создайте виртуальную среду:
python3 -m venv .venv source .venv/bin/activateУстановить зависимости:
pip install -r requirements.txt
Использование
Запустите MCP-сервер (в одном терминале):
python server/server.pyЗапустите клиент MCP (в другом терминале):
python client/client.py
Клиент подключится к серверу, выполнит рукопожатие MCP, обнаружит возможности и продемонстрирует вызов инструментов и доступ к ресурсам с помощью форматированного вывода.
Как это работает
MCP-сервер
Сервер:
Принимает соединения WebSocket
Отвечает на запросы JSON-RPC в соответствии со спецификацией MCP
Предоставляет пример инструмента (
add_numbers)Предоставляет пример ресурса (
example.txt)Поддерживает MCP-рукопожатие и обнаружение возможностей
Клиент МСР
Клиент:
Подключается к серверу через WebSocket
Выполняет рукопожатие MCP
Обнаруживает доступные инструменты и ресурсы
Демонстрирует вызов инструмента и чтение ресурса.
Представляет результаты в отформатированном виде
Подробности протокола
MCP реализует следующие ключевые методы:
Метод | Описание |
| Рукопожатие для установления полномочий |
| Список доступных инструментов |
| Вызов инструмента с аргументами |
| Список доступных ресурсов |
| Прочитать содержание ресурса |
| Список доступных подсказок |
Расширение проекта
Эту реализацию можно расширить следующим образом:
Добавление большего количества инструментов с различными возможностями
Добавление динамических ресурсов, которые изменяются при каждом чтении
Внедрение шаблонов подсказок для управляемого взаимодействия
Создание более интерактивных клиентских приложений