Shisha Market MCP
# Shisha Market MCP
Подключите ИИ-помощника к своему аккаунту [Shisha Market](https://shisha-market.com): создавайте объявления с фотографиями, следите за модерацией, исправляйте и снимайте свои публикации.
**Node.js 22+ · stdio · 11 инструментов · MIT · без runtime-зависимостей**
[Обзор](https://sonicxboy.dev/products/shisha-market-mcp/) · [Подключение](https://sonicxboy.dev/products/shisha-market-mcp/install/) · [Правила площадки](https://shisha-market.com/legal/rules)
## Установка
Скачайте `user.mjs` из [последнего релиза](https://github.com/vixkosla/shisha-market-mcp/releases/latest) в постоянную папку или клонируйте репозиторий:
```bash
git clone https://github.com/vixkosla/shisha-market-mcp.git
cd shisha-market-mcp
node --version
```
Для запуска не нужны `npm install` или ключ администратора. Добавьте локальный сервер в настройки MCP вашего помощника:
```json
{
"mcpServers": {
"shisha-market": {
"command": "node",
"args": ["/absolute/path/to/shisha-market-mcp/user.mjs"]
}
}
}
```
Замените путь своим; пример для Windows — `C:/Users/name/shisha-market-mcp/user.mjs`. Формат настроек зависит от приложения, команда и аргумент остаются теми же. Нужен клиент с поддержкой локальных MCP-серверов через stdio. Прямое скачивание также доступно [на сайте](https://shisha-market.com/mcp/user.mjs).
## Подключение аккаунта
1. Попросите помощника: «Подключи мой аккаунт Shisha Market».
2. `connect_account` вернёт ссылку и код из восьми символов. Откройте ссылку самостоятельно, войдите по почте, введите код и подтвердите доступ.
3. Вернитесь к помощнику и попросите завершить подключение (`finish_connection`).
4. Проверьте подключённую почту через `get_account`.
Ссылка действует 10 минут. Если подтверждение ещё не завершено, сервер отвечает `pending`; повторять запрос следует не чаще раза в 5 секунд. Почтовый код входа не нужно передавать агенту.
## Объявления
Передайте описание вещи и выбранные фотографии. Агент читает текущие правила через `get_publication_rules`, показывает итоговый текст, цену, город, контакт и фото. После ваших отдельных согласий для этого объявления отправляет его на модерацию. Подключение аккаунта само по себе не разрешает публикацию.
Новые и исправленные объявления проходят обычную модерацию. Доступны 1–6 локальных фотографий JPG, PNG или WebP, суммарно до 8 МБ. При правке нужен текущий `revision`; после неопределённого ответа на создание сначала проверьте список своих объявлений, чтобы не создать дубликат.
## Инструменты
| Инструмент | Действие |
| --- | --- |
| `connect_account` | Начать подключение личного аккаунта |
| `finish_connection` | Завершить подключение после подтверждения в браузере |
| `get_account` | Проверить подключённый аккаунт |
| `disconnect_account` | Отозвать доступ этого подключения |
| `get_publication_rules` | Получить правила и отдельные согласия |
| `list_my_listings` | Список своих объявлений и статусов |
| `get_listing` | Карточка, замечания модератора и текущая версия |
| `get_listing_photo` | Фотография своего объявления, включая закрытое |
| `create_listing` | Отправить новое объявление на модерацию |
| `update_listing` | Исправить своё объявление и отправить на повторную проверку |
| `archive_listing` | Снять своё объявление с публикации |
## Доступ и настройки
Личный ключ хранится в `~/.config/shisha-market/user-auth.json`, привязан к адресу сервиса и действует до 90 дней. На POSIX-системах файл создаётся с правами `0600`. Ключ не возвращается в ответах инструментов. Отозвать подключение можно в [личном кабинете](https://shisha-market.com/account/mcp) или через `disconnect_account`.
| Переменная | Назначение |
| --- | --- |
| `SHISHA_APP_URL` | Адрес сервиса; по умолчанию `https://shisha-market.com`. Разрешён HTTPS; HTTP — только для локальной разработки на loopback. |
| `SHISHA_USER_AUTH_FILE` | Другой путь для файла подключения; задайте отдельный для каждого агента или аккаунта. |
Не добавляйте файл подключения в Git. Агент получает права обычного пользователя: работает со своими объявлениями, не может модерировать или читать чужие закрытые данные. Авторизация и модерация выполняются сервером Shisha Market.
## Разработка и проверка
```bash
npm ci
npm run check
```
Dev-зависимость — официальный MCP SDK. Проверки запускают клиент настоящим subprocess, используют временный локальный HTTP-сервер и синтетические данные. Они не обращаются к рабочим аккаунтам и не публикуют объявления. CI выполняет их на Node.js 22 и 24.
`user.mjs` версии 1.0.0 совпадает с клиентом, опубликованным на Shisha Market 8 ноября 2026 года. Проверить файл релиза можно по `SHA256SUMS`. Реализация серверного API и служебный операторский клиент в этот репозиторий не входят. Удалённый HTTP/OAuth MCP по одному URL в этой версии не реализован.
Исправления можно предложить через Issues и Pull Requests. Не включайте в обращения личные ключи, фотографии или данные аккаунта. Лицензия кода и документации — [MIT](LICENSE).
## English
A local stdio MCP server for your own Shisha Market account. Requires Node.js 22+; no runtime packages or operator key. Download `user.mjs` from Releases, configure `node` with its absolute path, then use `connect_account` and approve access in your browser. Call `finish_connection` after approval. All 11 tools are listed above. Listings require explicit publication consent and moderation. English service documentation: https://shisha-market.com/en/mcp.
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose: account connection lifecycle tools target connection state, while listing tools target specific listing actions. The two-step connect_account/finish_connection pair is explicitly distinguished by descriptions, and read-only tools like list_my_listings, get_listing, and get_listing_photo have non-overlapping scopes.
All tool names follow a consistent snake_case verb_noun pattern: connect_account, finish_connection, get_listing, create_listing, update_listing, archive_listing. The naming is predictable and easy to map to operations.
The 11 tools are well-scoped for a personal account and listing management server. Each tool covers a meaningful operation across account connection, listing lifecycle, and publication rules without excessive granularity.
The surface covers the essential account connection flow and listing CRUD lifecycle, including soft deletion via archive_listing, photo inspection, and publication rules. Minor gaps exist, such as no hard-delete capability and no public listing discovery, but these appear intentional for the server's scoped purpose.