
Как я собрал MCP-коннектор для Claude за вечер: FastMCP, Streamable HTTP и грабли деплоя
timzinin только что Как я собрал MCP-коннектор для Claude за вечер: FastMCP, Streamable HTTP и грабли деплоя 4 мин 0 Python * MCP (Model Context Protocol) называют «USB-C для ИИ-агентов»: один протокол, и к модели...
Значимый прорыв формирует отрасль ИИ: timzinin только что Как я собрал MCP-коннектор для Claude за вечер: FastMCP, Streamable HTTP и грабли деплоя 4 мин 0 Python * MCP (Model Context Protocol) называют «USB-C для ИИ-агентов»: один протокол, и к модели подключаются десятки готовых интеграций без костылей. Звучит красиво, но настоящее понимание приходит только когда соберёшь сервер руками — где протокол реально экономит, а где придётся повозиться, видно лишь на практике. Я собрал свой за вечер и рассказываю по шагам.
Коннектор отдаёт Claude мою базу знаний — словарь из 90 ИИ-терминов и блок частых вопросов. Спрашиваешь в диалоге «что такое RAG» — и Claude достаёт определение из моей базы, со ссылкой на источник. Дальше — стек, код, деплой за nginx и три грабли, на которых я залип.
Технические детали
Зачем бизнесу свой MCP-серверЧтобы данные и инструменты жили прямо внутри ИИ-ассистента, там, где идёт работа, без выгрузки в отдельную систему. Что я вижу у клиентов:внутренний справочник, доступный в Claude без копипасты;доступ к CRM или таблицам «только на чтение» — аналитика прямо в диалоге;каталог, прайс, документация — то, что сотрудник иначе ищет руками. У меня случай простой — база знаний по ИИ.
Стек: FastMCP и Streamable HTTPСервер на Python, фреймворк — FastMCP (версия 2. Главное решение тут — транспорт. Старый SSE в спецификации MCP уже депрекейтнут, живой вариант — Streamable HTTP.
Хотите удалённый коннектор, который подключается по URL, — берите его. В FastMCP это одна строка:mcp. run(transport="streamable-http", host="0.
Отраслевые последствия
0", port=8000)Endpoint — /mcp, и именно без слэша. /mcp/ отдаёт 307-редирект, а голый GET ловит 406 (нужен заголовок Accept: text/event-stream). Эта мелочь ещё аукнется на healthcheck.
Инструменты: тонкие обёртки с аннотациямиИнструментов четыре, все — только на чтение. Вот регистрация одного:@mcp. tool( annotations={ "readOnlyHint": True, "destructiveHint": False, "openWorldHint": False, } ) def search_glossary(query: str, limit: int = 8) -> str: """ Search the AI glossary (90 terms) by keyword.
Returns matching terms with short definitions and source URL. annotations тут работают на дело: они сообщают клиенту, что инструмент делает — читает данные или меняет, опасное ли действие, лезет ли наружу. По ним клиент решает, спрашивать ли у пользователя подтверждение.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.



