Что такое Model Context Protocol, зачем он нужен и как работает архитектура клиент-сервер.
Model Context Protocol (MCP) — это открытый протокол, разработанный Anthropic для стандартизации взаимодействия между AI-моделями и внешними инструментами. Представьте, что у вас есть AI-ассистент, которому нужно работать с базой данных, файловой системой или внешним API — MCP даёт единый интерфейс для всех этих операций.
Ключевая идея: вместо того чтобы хардкодить интеграции для каждого AI-приложения, вы создаёте MCP-сервер один раз — и любой MCP-совместимый клиент (Claude Desktop, Cursor, другие IDE) может использовать ваши инструменты.
До MCP каждый AI-клиент интегрировался с инструментами по-своему. Если вы хотели дать Claude доступ к вашей базе данных, вы писали кастомный плагин. Для ChatGPT — другой. Для Cursor — третий. MCP решает эту проблему:
tools/list и получает каталог всех доступных инструментов с описаниями и схемами параметровАрхитектура MCP строится на двух сущностях: клиент и сервер.
MCP-сервер — это процесс, который регистрирует:
get_weather(city), search_database(query), send_email(to, subject, body).config://app, file:///logs/app.log, user://123/profile.analyze_data(dataset) генерирует сообщение «Проанализируй данные из {dataset} и выдели тренды».MCP-клиент — это AI-приложение (Claude Desktop, IDE, чат-бот), которое:
tools/list, resources/list, prompts/listtools/call с аргументамиresources/readprompts/getВзаимодействие происходит через JSON-RPC 2.0. Каждый запрос имеет уникальный id, метод (method) и параметры (params). Ответ содержит result или error.
┌─────────────────┐ JSON-RPC 2.0 ┌─────────────────┐
│ MCP-клиент │ ◄──────────────────────────► │ MCP-сервер │
│ (Claude, IDE) │ tools/call, resources/read │ (ваш Python) │
│ │ ◄──────────────────────────► │ │
│ AI-модель │ result, error │ tools │
│ │ │ resources │
│ │ │ prompts │
└─────────────────┘ └─────────────────┘
MCP поддерживает два режима транспорта, и выбор зависит от сценария.
stdio-транспорт — коммуникация через стандартные потоки ввода-вывода (stdin/stdout). Сервер запускается как дочерний процесс клиента.
SSE-транспорт (Server-Sent Events) — сервер работает как HTTP-сервис.
Рассмотрим типичный сценарий: пользователь спрашивает AI-ассистенту «Какая погода в Москве?».
tools/list и получает список инструментов сервера, включая get_weather с описанием параметровget_weather(city='Moscow')tools/call с name: "get_weather" и arguments: {"city": "Moscow"}get_weather, получает данные от погодного APIВесь этот процесс прозрачен для пользователя — AI просто «знает», как получить данные, потому что сервер предоставил описание инструмента.
MCP — это открытый стандарт. Anthropic опубликовала спецификацию, и сообщество создаёт серверы для всего: базы данных (PostgreSQL, MongoDB), файловые системы, веб-поиск, GitHub, Jira, Slack, Google Workspace. FastMCP — одна из самых удобных библиотек для создания своих серверов на Python, которую мы изучим в следующих темах.
Вопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.