Объяснение Model Context Protocol
Хватит писать один и тот же код интеграции снова и снова.
Если вы подключаете LLM к базе данных или API, вам часто приходится писать кастомный связующий код (glue code) для каждой новой модели. Это создает хаос. В итоге вам приходится управлять множеством соединений для множества инструментов.
Model Context Protocol (MCP) решает эту проблему. Он работает как порт USB-C для ИИ. Вы создаете инструмент один раз, и любая модель может его использовать.
Архитектура состоит из трех частей:
• Host: Приложение, которое вы используете, например Claude Code или IDE. • Client: Коннектор внутри хоста. • Server: Программа, которую вы создаете для предоставления доступа к данным или инструментам.
Вы можете создать MCP-сервер, используя три основных примитива:
- 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 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 code reviews."""
return f"Review this {language} code: {code}"
if __name__ == "__main__":
mcp.run()
Этот код берет на себя сложную коммуникацию. Ваши docstrings становятся инструкциями для модели.
Три совета для продакшена:
- Безопасность: Всегда запрашивайте подтверждение пользователя перед запуском инструмента, который изменяет данные.
- Контекст: Делайте описания инструментов короткими. Длинные описания тратят токены впустую.
- Ошибки: Возвращайте понятные сообщения. Модель может исправить ошибку «User not found», но она не сможет исправить критический сбой в коде.
Хватит создавать кастомные коннекторы. Создайте MCP-сервер один раз, и пусть его использует любая модель.
Источник: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian