Проект: Openapi to mcp  Публичный пост
4 апреля 2025  425
Openapi to mcp
https://github.com/rustho/openapi-to-mcp

Расскажите о себе и сути проекта?

Ну всем привет, я тут решил немного попилить опенсорс. Потому что нашел свою микроболь. Учитывая что у многих проектов есть b2b - api или что-нибудь похожее, я всё чаще вижу как для продуктов появляются агенты или LLM интеграции, которые взаимодействуют с этим API

Также сейчас на хайпе MCP (model context protocol) - протокол, позволяющий LLM-кам работать с внешними инструментами как с командами. Последнее что я видел и меня дико задрайвило это чувак, который создал свой mcp сервер для аблетона и генерил музычку так

Ну и я подумал, а зачем писать кастомный сервер, если обычно у продуктов есть уже описанный openapi. Так собственно и появился мой проект - генератор, который по openapi спекек делает: demo
• prompt.txt — готовый системный промпт для LLM, чтобы она понимала, какие действия доступны
• functionSchemas.json — OpenAI function calling
• templates.json — JSON-шаблоны команд
• mcp-server.ts — готовый MCP-сервер на TypeScript, совместимый с Claude Desktop
• executor.ts — универсальный исполнитель действий
• getState — автоматически извлекается из подходящего GET-эндпоинта
• Режим симуляции — можно запускать демо без настоящего API
• Экспорт .well-known/ai-plugin.json (для ChatGPT plugins)
• langchain-tools.ts — генерация совместимых инструментов для LangChain

Что вошло в прототип и сколько времени на него было потрачено?

Сделал по заветам вайб кодинга за пару дней.
Прототип генерит из openapi yaml файла:

Какой технологический стек вы использовали? Почему?

TypeScript, потому что сам больше фронтендер, zod для валидации и схем, yaml, openapi-types, и чистый fs + path для CLI.

Брал всё супер простое, чтобы не быстрее стартануть и потом дорабатывать, если кому-то действительно окажется нужным.

Как вы запускались и искали первых пользователей?

Выложил на гитхаб и зарелизил на npm. Первый пост пишу сюда, надеюсь дальше найти либо здесь первых юзеров, либо людей которым будет интересно над этим поработать и помочь куда-нибудь запостить типо твиттера, редита и хакерньюс

С какими самыми неожиданными трудностями пришлось столкнуться?

Нейронки и галлюцинации это то что не может существовать друг без друга, поэтому часто при запросах у меня получалось что в апишке есть больше возможностей для фильтрации, но mcp генерит какой-то шлак. Возможно нужно было пробовать другие модельки, но я решил пока обкатать на позитивных юзкейсах и gpt-40.

Сколько потратили и заработали? Есть идеи как это можно монетизировать?

Потратил 1 цент на тестовые запросы, заработал 0. Да и в целом для этого проекта хочется больше сделать опенсорс тулу сначала. А уже потом думать про деньги. Там можно какой-нибудь саас сделать и модельки искать которые не будут придумывать ничего лишнего.

Какие планы на будущее?

Апдейтить демку, улучшать саму генерацию. Может еще какие-нибудь экспорты добавить, если нужно, но пока так.

Нужны ли какие-то советы или помощь Клуба?

Буду рад звездочкам на гитхабе. И помощи в контрибьютинге и распространеннии тулы. Да и любым советам по туле конечно же.

Какой совет вы бы сами могли дать идущим по вашим стопам?

Фан в процессе создания туллинга - просто неописуемый, особенно когда тыкаешь промпт и он тебе возвращает действительно валидный результат

4 комментария 👇

просто огонь, как раз для будущего проекта планировал писать что-то подобное (не уверен что в моем случае будет openapi схема, но сама идея крутая!).
пара вопросов:
тестировал с 30+ эндпойнтами? у меня есть подозрение что при большом количестве документации контекст может распухнуть неконтролируемо.
может быть есть идеи как реализовать аутентификацию/авторизацию в таком подходе?

  Развернуть 1 комментарий

@sergey-zelenov, Да да, чем больше контекста тем сложнее, но в этом и плюс в целом, чем больше описано и структурированно тем лучше отвечать должно, но когда-нибудь упрется в лимиты. Мне тут даже больше тема с каким-то агентом нравится, который сможет подумать, сходить сначала получить Стейт того, что происходит сейчас и после чего пойти и сделать свои запросы. Но кажется это всё больше на стороне ллмок должно работать.

Насчёт авторизации и аутентификации - по хорошему, просто пробрасывать токены из какого-нибудь интерфейса, на подобии как в свагере сделано, в целом докрутить мои темплейты которые генерируются не сильно сложно. Так как там и класс есть и конструктор и т.д.

  Развернуть 1 комментарий

@Rustho, спасибо! да, я тоже подумал что наверное есть смысл разбить на агентов большую систему, и каждый сможет своим делом заниматься.

  Развернуть 1 комментарий

@sergey-zelenov, Ага, но вот эти агенты это уже на стороне пользователей нужно делать, а то чёт ещё если об этом думать, можно мозг сломать.

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб