СЛУЖЕБНОЕ
MCP для объявлений
Локальный MCP-сервер площадки: создаёт объявления и ведёт очередь модерации через служебный API. Работает только с токеном оператора и сам во ВКонтакте не публикует: при включённой автопубликации одобренное объявление уходит в сообщество проекта автоматически на стороне сервера.
Что понадобится
- Node.js 22 или новее.
- Один раз войдите на сайт настроенной почтой оператора и примите текущие документы. MCP использует отдельный служебный ключ, а не вход по коду для продавца.
- Токен оператора — 64 символа, его выдаёт владелец площадки. Токен даёт полный доступ к очереди и созданию объявлений; не публикуйте его.
- Файл клиента listings.mjs — тот же файл лежит в репозитории проекта как
mcp/listings.mjs.
Токен читается из файла ~/.config/shisha-market/operator.token (права 0600). Путь можно переопределить переменной SHISHA_OPERATOR_TOKEN_FILE, а сам токен передать через SHISHA_OPERATOR_TOKEN. Адрес площадки по умолчанию — https://shisha-market.com; для локальной проверки задайте SHISHA_APP_URL.
Подключение
Клиент сам запускает процесс и общается с ним по stdio (JSON-RPC 2.0, стандартный newline-delimited транспорт, MCP 2025-11-25 с согласованием старых версий). Пример для Claude Desktop — добавьте сервер в конфигурацию MCP:
{
"mcpServers": {
"shisha-market": {
"command": "node",
"args": ["/полный/путь/к/listings.mjs"]
}
}
}macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json. Другие клиенты (Cursor, собственные агенты) запускают ту же команду node listings.mjs.
Инструменты
create_listing
Создаёт объявление от имени оператора. Обязательные поля: заголовок, описание, категория, город, цена в рублях, ссылка для связи и 1–6 фотографий (локальные JPG/PNG/WebP, до 8 МБ суммарно). Категории: кальяны, чаши, аксессуары. Табак, никотин и вейпы не принимаются. По умолчанию объявление остаётся на модерации; publish: true просит опубликовать сразу — проверки правил площадки выполняются в обоих случаях. Ответ: id и status.
list_pending
Возвращает очередь на модерацию: до 50 записей, старые сверху. Каждая запись содержит id, заголовок, город, категорию, номер версии revision и даты. Номер версии — обязательный параметр решения.
get_listing и get_listing_photo
По id получите полный текст, цену, статус, комментарий, актуальный revision и список фото. Затем запросите каждое фото по id и photoId: оно придёт как изображение MCP, даже если карточка ещё закрыта. Email входа и ФИО согласия не выдаются.
update_listing и archive_listing
Работают только с собственными объявлениями оператора и требуют актуальный revision. Правка принимает изменяемые поля, новые фото и при необходимости keepPhotoIds; остальное сохраняется. Любая правка снова отправляет карточку на проверку. Снятие закрывает публикацию на сайте, но не стирает данные и существующий пост ВК. Архивную карточку так восстановить нельзя.
Рекомендуемый путь: создать без публикации → открыть карточку и все фото → после человеческой проверки одобрить или вернуть на исправление. При сетевой ошибке сначала проверьте очередь — не создавайте дубликат вслепую.
moderate_listing
Публикует или отклоняет объявление. Нужны id, decision (published или rejected), revision из очереди и, для отказа, причина не короче трёх символов. Если автор успел изменить объявление, номер не совпадёт и решение будет отклонено: получите очередь заново и проверьте текст и фотографии. Ответ: id и status.
Для ИИ-агентов
Машиночитаемые ресурсы: /llms.txt, /llms-full.txt и JSON-статус /ai/status с состоянием аналитики и поисковой видимости.
Страница открыта для ИИ-краулеров, но закрыта от индексации поисковиками.
Безопасность и ограничения
- Без настроенного на сервере токена служебные адреса отвечают 404, при неверном токене — 401. Все запросы идут по HTTPS.
- При подозрении на утечку токен меняется на сервере, после чего старый перестаёт действовать.
- Площадка не принимает платежи и не сопровождает сделки. Автопубликация одобренных объявлений в сообществе ВК включается ключом сообщества на сервере и по умолчанию выключена.
- Отклонённое объявление владелец может исправить и подать заново; архивные объявления этой формой не восстанавливаются.
Страница служебная: поисковики её не индексируют.