Разбор Model Context Protocol
Если вы подключаете LLM к базе данных или API, вам приходится писать «связующий» код (glue code). Вы пишете его для одной модели, а затем снова для следующей. Это создает хаос из интеграций.
Model Context Protocol (MCP) решает эту проблему. Он работает как порт USB-C для ИИ. Вместо того чтобы использовать кастомные кабели для каждого устройства, все используют один стандартный разъем.
MCP меняет математику интеграций с M x N на M + N. • Авторы инструментов пишут один MCP-сервер. • Авторы приложений добавляют один MCP-клиент. • Любой хост, поддерживающий MCP, может использовать любой сервер.
В архитектуре выделяют три роли:
• Host: ИИ-приложение, которое вы используете, например Claude Code или IDE. Оно решает, к каким серверам подключаться. • Client: коннектор внутри хоста. Он поддерживает соединение с сервером. • Server: программа, которую вы создаете. Она предоставляет инструменты, данные или промпты.
Вы используете три основных примитива:
- Tools: функции, которые модель вызывает для совершения действий, например, отправки письма или запроса к базе данных.
- Resources: данные только для чтения, которые приложение подтягивает в контекст, например, файл или лог.
- Prompts: многоразовые шаблоны, которые помогают пользователям запускать определенные задачи.
Вы можете создать сервер на Python, используя FastMCP SDK. Вот простой пример:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-tools")
@mcp.tool()
def word_count(text: str) -> int:
"""Count the words in a text."""
return len(text.split())
@mcp.resource("notes://team")
def team_notes() -> str:
"""Expose team notes."""
return "Release freeze starts Friday."
@mcp.prompt()
def code_review(language: str, code: str) -> str:
"""Template for reviewing code."""
return f"Review this {language} code: {code}"
if __name__ == "__main__":
mcp.run()
При создании серверов учитывайте следующие правила:
- Security: используйте подтверждение пользователя для деструктивных инструментов. Валидируйте все аргументы.
- Context: делайте описания инструментов короткими. Длинные описания съедают ваш бюджет токенов.
- Errors: возвращайте четкие сообщения, чтобы модель могла сама исправлять свои ошибки.
MCP превращает инструменты в многоразовый актив. Напишите его один раз — и пусть любая модель его использует.
Источник: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian
Дополнительное сообщество для обучения: https://t.me/GyaanSetuAi