Combo Engine MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Combo Engine MCP ServerBest combo from Dodo for 1000₽ for 2 people"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Combo Engine MCP Server
Расчёт выгодных комбо по сетям доставки Воронежа. MCP-сервер + библиотека парсеров.
Всё изолировано в venv: зависимости и браузер Playwright лежат внутри .venv\ (система не затрагивается).
Структура
├── combo_mcp\ # пакет MCP-сервера
│ ├── server.py # точка входа (stdio)
│ ├── config.py # конфиг сетей (config\chains_config.json)
│ ├── cache.py # дисковый кэш + stale-if-error
│ ├── http_client.py # requests-обёртка (UA, ретраи, куки)
│ ├── playwright_client.py # ленивый браузер (фолбэк dodo)
│ ├── weights.py # справочник расчётных весов (config\estimated_weights.json)
│ ├── engines\ # dp.py (комбо), taste.py (вкусность), drinks.py (напитки)
│ ├── chains\ # 1 файл = 1 сеть (@chain("id"))
│ └── tools\ # 1 файл = 1 инструмент MCP
├── scripts\ # selftest.py, autotest.py, smoke_test.py, gen_expected.py
├── tests\expected.json # эталоны для autotest
├── config\chains_config.json
├── config\estimated_weights.json # веса позиций без веса на сайте (с источником)
├── cache\ # создаётся автоматически
└── archive\ # старые файлы + референсы разведки (recon\)Related MCP server: yandex-eda-mcp
Запуск
# MCP-сервер (регистрируется opencode через opencode.json)
.\.venv\Scripts\python.exe combo_mcp\server.py
# Selftest: все сети + эталоны Ла Пиццы (3000₽ → 4400/2950, 4850/3000, 5100/2800)
.\.venv\Scripts\python.exe scripts\selftest.py
# Автотесты: эталоны комбо + инварианты + контрольные блюда + health_check
.\.venv\Scripts\python.exe scripts\autotest.py
# Smoke-тест реального MCP-протокола (10 инструментов)
.\.venv\Scripts\python.exe scripts\smoke_test.py
# Очистка кэша
.\.venv\Scripts\python.exe scripts\clear_cache.pyИнструменты MCP (10)
list_chains()— сети и их доступностьparse_menu(chain_id, category=, min_weight=, sort_by=, limit=, refresh=)— менюbest_combo(chain_id, budget, persons=1, variations=3, refresh=)— варианты комбо: во всех вариациях ровноpersonsнапитков (1 на персону), порядок: Оптимум → Без повторов → Макс. вес → доп. стратегии (при variations > 3)compare(budget)— все сети по выгодности (₽/100г)status()— конфиг, возраст кэша, ошибкиverify_chain(chain_id)— качество данных (веса, дубликаты, аномалии)check_price(chain_id, item_name, expected_price=)— сверка цены позицииdiff_menu(chain_id)— изменения меню с прошлой загрузкиcheck_config()— валидация конфига и доступность ссылокhealth_check(refresh=False)— HTTP + парсинг + кол-во позиций по всем сетям (refresh=true — реальный прогон, иначе быстрый ответ по кэшу)
Автотесты
tests\expected.json — фиксированные эталоны (комбо по сетям/бюджетам, контрольные блюда).
Без record-режима: scripts\autotest.py сверяет фактический результат с эталоном,
расхождение → FAIL + дифф. Эталон обновляется только осознанным коммитом.
Конфиг сетей
config\chains_config.json — per-chain: url, enabled, ttl_minutes, headers, cookies.
Смена URL/куки не требует правки кода.
Добавление новой сети
Скопировать
combo_mcp\chains\_template.py→combo_mcp\chains\my_chain.pyРеализовать класс с методом
parse()(возвращает список позиций:{name, weight_g, price_rub, is_from_price, description, category, product_url, in_stock, extra})Указать
urlвchains_config.json— сервер подхватит автоматически при старте.
Добавление нового инструмента
Положить файл с функцией-хендлером в combo_mcp\tools\ и зарегистрировать декоратором
(см. существующие инструменты) — server.py не трогается.
Правила данных
Вес позиции: с сайта/API (weight_source
site), из названия размера (size_name, pizza_kuba), из справочникаconfig\estimated_weights.json(reference, полеsource— откуда взят вес) или отсутствует (none).Позиции без веса исключаются из расчёта комбо (мерч, палочки — намеренно).
Недоступные сети честно помечаются в
list_chains/compareс причиной.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceMCP server for VkusVill grocery store, enabling product search, details retrieval, and cart link creation.2
- AlicenseAqualityBmaintenanceMCP server for Yandex Eda (food delivery) that allows checking authorization, setting delivery address, searching restaurants, viewing menus, managing cart, and placing orders with safety features.1844MIT
- Alicense-qualityBmaintenanceMCP server to search for routes in the Moscow metro and calculate the duration of the trip.MIT
- Flicense-qualityBmaintenanceMCP server for iiko restaurant management system REST API, providing 39 tools to manage products, employees, entities, documents, payments, reports, and raw API access.1
Related MCP Connectors
MCP server for Meitre restaurant reservations.
MCP server for Blockscout
An MCP server for deep research or task groups
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/1artik1/ComboPizzaSushiMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server