ReelQuoteAI Survey Tool is an MCP server with 32 tools an agent can call, among them acknowledge_gaps, approve_inventory, ballpark_estimate. It answers at https://widget.reelquoteai.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 10 September 2026; the last check, on 19 October 2026, succeeded.
Filmed moving surveys, itemized inventories, firm quotes and bookings for moving companies.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
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 Inputs: job_id, acknowledged |
approve_inventory | Customer sign-off on the inventory, plus free-text notes. Scope: jobs:write. Inputs: job_id, approved, notes |
ballpark_estimate | Instant estimate range from home size + addresses. Free; never bookable. Scope: quote. Inputs: dwelling, move_date, origin, destination, distance_miles |
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. Inputs: job_id, upload_id, parts |
confirm_access | Confirm floors / elevator / stairs / carry distance for both ends. Scope: jobs:write. Inputs: job_id, origin, destination, move_date |
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. Inputs: idempotency_key, quote_kind, dwelling, move_date, origin, destination |
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. Inputs: kind, mode, scopes, label |
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 Inputs: job_id, content_type, size, consent |
edit_items | Edit inventory (quantity, exclude, add by item_key). Response carries the re-priced quote. Scope: jobs:write. Inputs: job_id, items |
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. Inputs: from, days |
get_cube_sheet_csv | Itemized cube sheet as CSV (Excel-ready): rooms, volumes, weights, exclusions. Secret key only. Scope: jobs:read. Inputs: job_id |
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. Inputs: job_id |
get_job | Full job state: status, inventory, quote, access, terms, move_date. Scope: jobs:read. Inputs: job_id |
get_session | Resolve the key to its mover (name, branding, config). Scope: quote. |
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 st Inputs: job_id, url, content_type, consent |
list_home_profiles | Home sizes for the ballpark step (2br_apt, 3br_house, …). Scope: quote. |
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. Inputs: limit, status, cursor |
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. |
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 Inputs: webhook_id, job_id, limit, before |
quote_inventory | Direct pricing for agents: items or total_cuft in, firm quote out. Secret key only. Scope: quote. Inputs: total_cuft, items, total_weight_lbs, distance_miles, move_date, origin |
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 Inputs: id |
report_outcome | Report actuals (hours, final cents, crew). Secret key only. Scope: outcomes. Inputs: job_id, actual_hours, actual_total_cents, actual_crew, notes |
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. Inputs: job_id, name, email, phone, approve, accept_terms |
resolve_address | Resolve a suggestion to a full address (same session_token). Scope: quote. Inputs: place_id, session_token |
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. Inputs: id |
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 ke Inputs: id, grace_hours |
search_catalog | Search the cube-sheet catalog (?q=sofa). Scope: quote. Inputs: q |
send_resume_link | Email the customer their resume link. Only on explicit request. Scope: jobs:write. Inputs: job_id, email, name, consent |
set_contact | Store customer email + optional name + move date. Sends NOTHING — required before upload-url. Scope: jobs:write. Inputs: job_id, email, name, consent, move_date |
set_move_date | Set or clear the move date; invalidates and recomputes the quote. Refused after a booking is requested. Scope: jobs:write. Inputs: job_id, date |
submit_job | Queue the uploaded video for analysis. Poll GET /jobs/{id} for status. Scope: jobs:write. Inputs: job_id |
suggest_addresses | Address autocomplete (proxied; send session_token). Scope: quote. Inputs: input, session_token |
Every block below points at https://widget.reelquoteai.com/mcp. Pick your client and copy.
claude mcp add --transport http reelquoteai-survey-tool https://widget.reelquoteai.com/mcp
{
"mcpServers": {
"reelquoteai-survey-tool": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://widget.reelquoteai.com/mcp"]
}
}
}{
"mcpServers": {
"reelquoteai-survey-tool": {
"url": "https://widget.reelquoteai.com/mcp"
}
}
}{
"servers": {
"reelquoteai-survey-tool": {
"type": "http",
"url": "https://widget.reelquoteai.com/mcp"
}
}
}{
"context_servers": {
"reelquoteai-survey-tool": {
"url": "https://widget.reelquoteai.com/mcp"
}
}
}{
"mcpServers": {
"reelquoteai-survey-tool": {
"serverUrl": "https://widget.reelquoteai.com/mcp"
}
}
}{
"mcpServers": {
"reelquoteai-survey-tool": {
"url": "https://widget.reelquoteai.com/mcp"
}
}
}name: ReelQuoteAI Survey Tool
version: 0.0.1
schema: v1
mcpServers:
- name: ReelQuoteAI Survey Tool
type: streamable-http
url: https://widget.reelquoteai.com/mcp{
"mcpServers": {
"reelquoteai-survey-tool": {
"httpUrl": "https://widget.reelquoteai.com/mcp"
}
}
}{
"mcpServers": {
"reelquoteai-survey-tool": {
"type": "http",
"url": "https://widget.reelquoteai.com/mcp"
}
}
}{
"mcpServers": {
"reelquoteai-survey-tool": {
"url": "https://widget.reelquoteai.com/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fwidget.reelquoteai.com%2Fmcp&type=streamable_http&id=reelquoteai-survey-tool&name=ReelQuoteAI%20Survey%20Tool
It answered our last check on 19 October 2026 in 192 ms. Over 6 checks since 10 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by reelquoteai.com and served from widget.reelquoteai.com, the vendor's own domain: https://widget.reelquoteai.com/mcp.
32, as returned by the server's own tools/list on 11 September 2026: acknowledge_gaps, approve_inventory, ballpark_estimate, complete_upload, confirm_access, create_job, create_key, create_upload_url, and 24 more.
It answered our last check on 19 October 2026 in 192 ms. Over 6 checks since 10 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://widget.reelquoteai.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: com.reelquoteai. Endpoint host: widget.reelquoteai.com. ARD identifier: urn:air:com.reelquoteai:mcp:survey-tool.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.