ReelQuoteAI Survey Tool
ReelQuoteAI: видеоопросы для оценки переезда, детальная опись вещей и точная смета для клиентов
Что умеет
- Создавать заявку на переезд и собирать видеообзор жилья
- Формировать опись предметов и уточнять пробелы в данных
- Рассчитывать предварительную и итоговую стоимость перевозки
- Проверять доступность дат и цены на них
- Оформлять бронирование и передавать данные в CSV
Какие данные видит
Ассистент видит данные конкретной заявки — видео, опись, контакты клиента и историю по API-ключу компании.
Нужен ли аккаунт
Нужен API-ключ из настроек сервиса
ReelQuoteAI Survey Tool — MCP-сервер для транспортных компаний, занимающихся переездами. Ассистент принимает видеообзор жилья, формирует опись предметов, считает объём и стоимость перевозки, оформляет бронирование на конкретную дату. Подходит для автоматизации первого контакта с клиентом без выезда специалиста.
Как подключить
Как подключить ReelQuoteAI Survey Tool к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://widget.reelquoteai.com/mcp
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить ReelQuoteAI Survey Tool к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://widget.reelquoteai.com/mcp
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить ReelQuoteAI Survey Tool к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://widget.reelquoteai.com/mcp
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (32)
Технические названия из tools/list. Нужны только разработчикам.
| get_session | Resolve the key to its mover (name, branding, config). Scope: quote. |
| list_home_profiles | Home sizes for the ballpark step (2br_apt, 3br_house, …). Scope: quote. |
| ballpark_estimate | Instant estimate range from home size + addresses. Free; never bookable. Scope: quote. |
| create_job | Start a job (the survey container). Contact details are NOT accepted here — funnel rule. Send `Idempotency-Key` so a retry cannot create a second job. Scope: jobs:write. |
| list_jobs | List jobs for the tenant, newest first. Secret key only. Paged: pass `limit` (1–100, default 25), optional `status`, and `cursor` from the previous page's `next_cursor` (null on the last page; a bad cursor is a 400). Scope: jobs:read. |
| get_job | Full job state: status, inventory, quote, access, terms, move_date. Scope: jobs:read. |
| set_contact | Store customer email + optional name + move date. Sends NOTHING — required before upload-url. Scope: jobs:write. |
| create_upload_url | Presigned upload for the walkthrough video. Requires stored contact email. Body: { content_type, consent, size }. Send the byte size: at or above 16 MB the response carries `multipart` (an upload_id, a part_size and a presigned PUT per part) instead of `upload`, and each part is retried on its own rather than restarting the whole video. Report each part's ETag to /upload-complete. Below the threshold, or if opening a multipart upload fails, the response is a single `upload`. Scope: jobs:write. |
| complete_upload | Assemble a chunked upload. Body: { upload_id, parts: [{ part_number, etag }] }. Only after every part has been PUT; then call /submit. Scope: jobs:write. |
| submit_job | Queue the uploaded video for analysis. Poll GET /jobs/{id} for status. Scope: jobs:write. |
| hand_off_video | Server-side handoff: give us a public https URL of the walkthrough instead of uploading it from a browser. Secret key only. We fetch it (up to 500 MB, streamed) and the job runs exactly as an upload would — poll GET /jobs/{id}. Needs the stored contact email and consent, like /upload-url. Replaces /upload-url, /upload-complete and /submit for a caller that already holds the file. A job whose fetch failed (`error`) may be handed a new URL. Counts toward the mover's daily analysis cap (429). Scope: jobs:write. |
| confirm_access | Confirm floors / elevator / stairs / carry distance for both ends. Scope: jobs:write. |
| edit_items | Edit inventory (quantity, exclude, add by item_key). Response carries the re-priced quote. Scope: jobs:write. |
| approve_inventory | Customer sign-off on the inventory, plus free-text notes. Scope: jobs:write. |
| acknowledge_gaps | Record the customer's answer to the capture-gap prompts (inventory.gaps on GET /jobs/{id}). Body: { acknowledged: true } stamps "nothing is missing"; false clears it. The prompts themselves are recomputed from the current inventory on every read, so fixing a gap removes its prompt without this call. Scope: jobs:write. |
| send_resume_link | Email the customer their resume link. Only on explicit request. Scope: jobs:write. |
| request_booking | Request the booking. Idempotent per job; requires approve:true (types-name-as-signature approval of the inventory + quote, stored with a quote snapshot) and accept_terms when the mover has terms. Scope: jobs:write. |
| report_outcome | Report actuals (hours, final cents, crew). Secret key only. Scope: outcomes. |
| get_cube_sheet_csv | Itemized cube sheet as CSV (Excel-ready): rooms, volumes, weights, exclusions. Secret key only. Scope: jobs:read. |
| get_date_prices | This job's quote priced across a ~2-week window from the mover's date rules. flat=true means every day prices the same. Scope: jobs:read. |
| set_move_date | Set or clear the move date; invalidates and recomputes the quote. Refused after a booking is requested. Scope: jobs:write. |
| quote_inventory | Direct pricing for agents: items or total_cuft in, firm quote out. Secret key only. Scope: quote. |
| get_availability | Which days the mover has marked off, before a job exists. Soft: a marked day can still be requested — the mover confirms and calls first — so steer to an open day when the customer has a choice. Scope: quote. |
| list_keys | List the account's API keys — live and test, active and revoked. Never a raw secret. Secret key with the `keys` scope. Scope: keys. |
| create_key | Mint a key. The raw secret is in THIS response only. A key can never mint one broader than itself; a test key mints only test keys; a live secret key may mint the sandbox pair. Scope: keys. |
| rotate_key | Replace a key with its twin (same kind, mode, scopes, label). The old key keeps working until `replaced.expires_at` so a deploy can swap values without a gap. Needs the `keys` scope even to rotate itself — rotate a scoped key with a full key or from the dashboard. A key is rotated once: rotating it again is a 409 `key_already_rotated`, and during its grace the old key cannot mint, rotate, revoke or read deliveries (403 `key_rotated`). A test key cannot rotate a live key (403 `mode_mismatch`). Scope: keys. |
| revoke_key | Revoke a key immediately. The only live publishable key is refused (409) — rotate it instead. A test key cannot revoke a live key (403 `mode_mismatch`). Scope: keys. |
| list_webhook_deliveries | The delivery log: every webhook POST for 30 days, newest first, with its outcome and the exact body sent. Secret key with the `keys` scope. A key reads the deliveries of its own mode: live keys the live log, test keys the sandbox log. Scope: keys. |
| replay_webhook_delivery | Re-send one delivery to its endpoint: the same body byte for byte (same envelope id, so your dedupe still works) under a fresh signature, with the usual retries. Returns the replay's own delivery record. Deliveries of the other mode are not found (404). Scope: keys. |
| search_catalog | Search the cube-sheet catalog (?q=sofa). Scope: quote. |
| suggest_addresses | Address autocomplete (proxied; send session_token). Scope: quote. |
| resolve_address | Resolve a suggestion to a full address (same session_token). Scope: quote. |