Цей репозиторій містить Python-реалізацію Model Context Protocol (MCP), що демонструє, як створити серверний та клієнтський додатки, які взаємодіють за стандартом MCP.
Реалізація MCP складається з двох основних компонентів:
-
MCP Сервер (
server.py) – сервер, який надає:- Інструменти: функції, які можна викликати віддалено
- Ресурси: дані, які можна отримати
- Підказки: шаблони для генерації підказок для мовних моделей
-
MCP Клієнт (
client.py) – клієнтський додаток, який підключається до сервера та використовує його можливості
Ця реалізація демонструє кілька ключових функцій MCP:
completion– генерує текстові доповнення від AI-моделей (імітація)add– простий калькулятор, що додає два числа
models://– повертає інформацію про доступні AI-моделі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?"
- Список доступних AI-моделей
- Персоналізоване привітання для "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. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.