Объяснение 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 становятся инструкциями для модели.

Три совета для продакшена:

  1. Безопасность: Всегда запрашивайте подтверждение пользователя перед запуском инструмента, который изменяет данные.
  2. Контекст: Делайте описания инструментов короткими. Длинные описания тратят токены впустую.
  3. Ошибки: Возвращайте понятные сообщения. Модель может исправить ошибку «User not found», но она не сможет исправить критический сбой в коде.

Хватит создавать кастомные коннекторы. Создайте MCP-сервер один раз, и пусть его использует любая модель.

Источник: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian