Разбор 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