protogrid

Search / com.reelquoteai/survey-tool

ReelQuoteAI Survey Tool

R1· needs a key

Filmed moving surveys, itemized inventories, firm quotes and bookings for moving companies.

v1.1.0 · active · website · descriptor JSON · versions

An agent can connect on its own if it already holds SURVEY_TOOL_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality85good
Trust80of 100
Uptime, 30 days100%
Latency p50203 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "survey-tool": {
      "type": "http",
      "url": "https://widget.reelquoteai.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SURVEY_TOOL_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http survey-tool https://widget.reelquoteai.com/mcp --header "Authorization: Bearer ${SURVEY_TOOL_TOKEN}"
[mcp_servers.survey-tool]
url = "https://widget.reelquoteai.com/mcp"
bearer_token_env_var = "SURVEY_TOOL_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "survey-tool": {
      "type": "remote",
      "url": "https://widget.reelquoteai.com/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:SURVEY_TOOL_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "survey-tool": {
      "type": "http",
      "url": "https://widget.reelquoteai.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SURVEY_TOOL_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=survey-tool&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd2lkZ2V0LnJlZWxxdW90ZWFpLmNvbS9tY3AiLCJoZWFkZXJzIjp7IkF1dGhvcml6YXRpb24iOiJCZWFyZXIgJHtTVVJWRVlfVE9PTF9UT0tFTn0ifX0%3D"
}
{
  "servers": {
    "survey-tool": {
      "type": "http",
      "url": "https://widget.reelquoteai.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SURVEY_TOOL_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "survey-tool": {
      "httpUrl": "https://widget.reelquoteai.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SURVEY_TOOL_TOKEN}"
      }
    }
  }
}
extensions:
  "survey-tool":
    enabled: true
    name: "survey-tool"
    type: streamable_http
    uri: "https://widget.reelquoteai.com/mcp"
    headers:
      "Authorization": "Bearer ${SURVEY_TOOL_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${SURVEY_TOOL_TOKEN}. The registry never accepts secret values.

Quality 85 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations32 of 32 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_date_prices (idempotentHint); approve_inventory (idempotentHint); set_move_date (idempotentHint); …
  • pass
    tools.token_costabout 5,871 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

32 tools, about 5,871 tokens to load them all · tool set 74e65ccd5fa8 · checked 2026-10-20 18:06 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 80 / 100

no-repository
provenance55
liveness100
freshness85
hygiene80

+dns-namespace +website +reachable +uptime-100% ~updated-48d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://widget.reelquoteai.com/mcp streamable-httpapi_key ${SURVEY_TOOL_TOKEN}yes100%203 ms2025-06-182026-10-20

Tools (32)

acknowledge_gapsRecord 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.
approve_inventoryCustomer sign-off on the inventory, plus free-text notes. Scope: jobs:write.
ballpark_estimateInstant estimate range from home size + addresses. Free; never bookable. Scope: quote.
complete_uploadAssemble a chunked upload. Body: { upload_id, parts: [{ part_number, etag }] }. Only after every part has been PUT; then call /submit. Scope: jobs:write.
confirm_accessConfirm floors / elevator / stairs / carry distance for both ends. Scope: jobs:write.
create_jobStart 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.
create_keyMint 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.
create_upload_urlPresigned 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.
edit_itemsEdit inventory (quantity, exclude, add by item_key). Response carries the re-priced quote. Scope: jobs:write.
get_availabilityread-onlyWhich 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.
get_cube_sheet_csvread-onlyItemized cube sheet as CSV (Excel-ready): rooms, volumes, weights, exclusions. Secret key only. Scope: jobs:read.
get_date_pricesread-onlyThis 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.
get_jobread-onlyFull job state: status, inventory, quote, access, terms, move_date. Scope: jobs:read.
get_sessionread-onlyResolve the key to its mover (name, branding, config). Scope: quote.
hand_off_videoServer-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.
list_home_profilesread-onlyHome sizes for the ballpark step (2br_apt, 3br_house, …). Scope: quote.
list_jobsread-onlyList 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.
list_keysread-onlyList 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_deliveriesread-onlyThe 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.
quote_inventoryDirect pricing for agents: items or total_cuft in, firm quote out. Secret key only. Scope: quote.
replay_webhook_deliveryRe-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.
report_outcomeReport actuals (hours, final cents, crew). Secret key only. Scope: outcomes.
request_bookingRequest 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.
resolve_addressResolve a suggestion to a full address (same session_token). Scope: quote.
revoke_keyRevoke 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.
rotate_keyReplace 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.
search_catalogread-onlySearch the cube-sheet catalog (?q=sofa). Scope: quote.
send_resume_linkEmail the customer their resume link. Only on explicit request. Scope: jobs:write.
set_contactStore customer email + optional name + move date. Sends NOTHING — required before upload-url. Scope: jobs:write.
set_move_dateSet or clear the move date; invalidates and recomputes the quote. Refused after a booking is requested. Scope: jobs:write.
submit_jobQueue the uploaded video for analysis. Poll GET /jobs/{id} for status. Scope: jobs:write.
suggest_addressesAddress autocomplete (proxied; send session_token). Scope: quote.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.reelquoteai/survey-tool",
  "title": "ReelQuoteAI Survey Tool",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://widget.reelquoteai.com/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Bearer <ReelQuoteAI API key>, issued to moving companies from their dashboard; a test key runs the sandbox."
        }
      ]
    }
  ],
  "version": "1.1.0",
  "websiteUrl": "https://www.reelquoteai.com/developers",
  "description": "Filmed moving surveys, itemized inventories, firm quotes and bookings for moving companies."
}