Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Reel Estate MCP

NPM · REEL-ESTATE-MCP · SCANNED SEP 22

Turn real-estate listing photos into property videos from your AI assistant.

Available components

0 this week 84 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 97 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability85
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 2204 tokens (~95/item across 23 items; 23 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage83
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 50% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 23 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Reel Estate MCP server?

Reel Estate MCP runs locally as an npm package, launched with npx -y reel-estate-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · reel-estate-mcp

# add to Claude Code
claude mcp add com-tryreelestate-reel-estate-mcp -- npx -y reel-estate-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "com-tryreelestate-reel-estate-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "reel-estate-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-tryreelestate-reel-estate-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "reel-estate-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add com-tryreelestate-reel-estate-mcp -- npx -y reel-estate-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-tryreelestate-reel-estate-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "reel-estate-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-tryreelestate-reel-estate-mcp --command npx --arg -y --arg reel-estate-mcp
# ~/.hermes/config.yaml
mcp_servers:
  com-tryreelestate-reel-estate-mcp:
    command: "npx"
    args: ["-y", "reel-estate-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-tryreelestate-reel-estate-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "reel-estate-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add com-tryreelestate-reel-estate-mcp -t stdio -c npx -a -y reel-estate-mcp
// mcp.json
{
  "mcpServers": {
    "com-tryreelestate-reel-estate-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "reel-estate-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 22 Sept 26 0
    • Stability: 0.97 → pass security
  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 −2
    • Stability: pass → 0.80 functional
  • 15 Sept 26 0
    • Stability: 0.97 → pass security
  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 −2
    • Stability: pass → 0.80 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 22 Sept 2026 · Analysed npm/reel-estate-mcp@0.3.4

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 97 packages
Packages resolved 97
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 23 exposed · ~2,204 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_image_from_file ~188

Upload a LOCAL image file to a project. Reads the file, mints a presigned S3 URL (POST /projects/:id/images/upload-url), PUTs the bytes straight to storage (no credentials needed), then attaches it (POST /projects/:id/images). This is the credential-less upload path the remote MCP can't do. Image aspect ratio must be between 0.5:1 and 2:1. Blocked in read-only mode.

NameTypeReqDescription
addToTimelinebooleanAlso append a video timeline element so the image is in the render. Default true.
captionstringOptional caption stored with the image.
filenamestringOverride the stored filename (defaults to the file's basename).
pathstringyesAbsolute path to a local image file (jpg/png/webp).
projectIdstringyesTarget project id.

No output schema declared.

No examples provided.

add_timeline_audio ~232

Place an EXISTING audio asset (a generated voiceover, a music track, any audio URL) on the timeline at a specific point so it's in the render. duration defaults to the full movie length (ideal for background music); pass sourceDuration for a fixed clip like a voiceover. Get a voiceover url/durationSec from get_project (project.voiceover / voiceovers[]). Blocked in read-only mode.

NameTypeReqDescription
durationnumberSeconds. Defaults to movie length, else sourceDuration, else 5.
fadeInnumber
fadeOutnumber
projectIdstringyes
s3Keystring
sourceDurationnumberFull length of the source audio, for a fixed-length clip.
startTimenumberSeconds from the start of the movie. Default 0.
titlestringDisplay label for the timeline clip.
urlstringyesPublic URL to the audio file (mp3).
volumenumber0-1. Default 1.

No output schema declared.

No examples provided.

add_timeline_overlay ~259

Overlay an EXISTING image/logo OR a text caption on the timeline at a specific point. For an image, pass imageId (already in the project — url auto-resolved) or a direct url; for text, pass `text`. position is percent-of-canvas (0-100) from the top-left. Blocked in read-only mode.

NameTypeReqDescription
durationnumberSeconds on screen. Default 5.
fontColorstringText color, e.g. #FFFFFF. Text overlays only.
fontSizenumberText size in px. Text overlays only.
imageIdstringProject image id to overlay (url auto-resolved).
opacitynumber
positionobjectPercent-of-canvas position from top-left.
projectIdstringyes
s3Keystring
sizenumberImage scale factor 0-1. Image overlays only.
startTimenumberSeconds from the start of the movie. Default 0.
textstringText caption — provide instead of an image for a text overlay.
urlstringDirect image url (alternative to imageId).

No output schema declared.

No examples provided.

api_request ~120

Generic authenticated request to ANY backend route. Path is relative to the API base (e.g. '/projects' or 'admin/users'). Use list_endpoints to discover paths. Non-GET methods are blocked when MCP_READONLY is set. Returns { status, ok, request, data } including error envelopes.

NameTypeReqDescription
bodyJSON body for non-GET requests.
methodstringyes
pathstringyesPath relative to API base, e.g. /projects/123 or admin/stats
queryobject

No output schema declared.

No examples provided.

edit_image ~177

Create a non-destructive, versioned edit of a project image. editType: staging/destaging, twilight(+_interior), upscale, green_grass, bright_day, seasonal (winter/halloween/christmas +_interior), advanced replace/remove/add (need advancedParams), or manual (customPrompt). staging needs roomType+style. Async — returns a jobId; the new version appears on the image. Costs 1 credit.

NameTypeReqDescription
advancedParamsobjectRequired for replace/remove/add.
customPromptstringRequired for editType='manual'.
editTypestringyes
imageIdstringyes
projectIdstringyes
roomTypestringRequired for staging + advanced/interior edits.
stylestringRequired for staging.

No output schema declared.

No examples provided.

generate_clip ~136

Animate one still project image into a video clip (Runway Gen-4). Async — returns a jobId; poll get_clip_status. imageUrl is auto-resolved from the project if omitted. Costs credits.

NameTypeReqDescription
aspectRatiostring
customMotionPromptstringRequired when motion='custom'.
durationnumberSeconds, 3-10 (default 5).
imageIdstringyes
imageUrlstringAuto-resolved from the project if omitted.
motionstringyes
projectIdstringyes
resolutionstring

No output schema declared.

No examples provided.

get_clip_status ~38

Poll a clip-generation job started by generate_clip (GET /clip-generation/clip-status/:jobId).

NameTypeReqDescription
jobIdstringyes

No output schema declared.

No examples provided.

get_project ~31

GET /projects/:id — full project document for the authenticated user.

NameTypeReqDescription
idstringyesProject id.

No output schema declared.

No examples provided.

get_usage ~23

GET /billing/usage — credit and export usage for the authenticated user.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

help ~69

Guided, numbered walkthrough of the whole pipeline — sign in → create a project → add photos → edit → animate clips → add music/voiceover/overlays → arrange → render — with example args and the gotchas (async polling, paid gating). Call this first if you're not sure where to start.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_clips ~69

Clips for the authenticated user. With projectId -> GET /clips/project/:projectId; otherwise GET /clips (the clip library) with paging/status.

NameTypeReqDescription
limitinteger
pageinteger
projectIdstring
statusstring

No output schema declared.

No examples provided.

list_endpoints ~46

Return the curated catalog of API endpoints (grouped) so you know what `api_request` can call. Not exhaustive — every mounted route is reachable, this covers the main surface.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_movies ~40

Rendered movies for the user. With projectId -> GET /movies/project/:projectId; else GET /movies.

NameTypeReqDescription
projectIdstring

No output schema declared.

No examples provided.

list_projects ~101

GET /projects for the authenticated user. Supports paging, sorting, search, and status filter.

NameTypeReqDescription
folderIdstring
limitinteger
pageinteger
searchstring
sortBystringe.g. updatedAt, createdAt, name, lastInteractedAt
sortOrderstring
starredboolean
statusstring

No output schema declared.

No examples provided.

list_voices ~25

GET /voices — voiceover voices available to the user (stock + cloned).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

login ~63

Authenticate with the backend. If not already logged in, returns an authorization URL to open in your browser; approve the sign-in and the token is cached in the background, then retry your action. (Browser-based login can't be popped reliably from here, so you click the link.)

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

logout ~46

Clear the cached OAuth session (and best-effort revoke it server-side) so the next tool call re-authenticates via the browser. Use to switch accounts or reset a broken auth state.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

move_timeline_element ~118

Change when a single timeline element starts and/or how long it lasts (any track). Use to nudge a floating audio/overlay element to a new point. To resequence all clips, use reorder_timeline. Element ids come from get_project (timeline.tracks[].elements[].id). Blocked in read-only mode.

NameTypeReqDescription
durationnumberNew duration in seconds.
elementIdstringyes
projectIdstringyes
startTimenumberNew start, seconds from the movie start.

No output schema declared.

No examples provided.

project_stats ~24

GET /projects/stats — aggregate project counts/metrics for the authenticated user.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

render_movie ~88

Assemble the project's timeline into the final video (clips + music + watermark + overlays). Only projectId is required; settings fall back to the project. Async — returns a jobId; poll list_movies. Costs credits and an export.

NameTypeReqDescription
aiGeneratedLabelbooleanPer-render override of the AI-disclosure label.
projectIdstringyes
settingsobject

No output schema declared.

No examples provided.

reorder_timeline ~131

Rearrange a track's elements (defaults to the video/clip track) into the given order and recompute sequential startTimes so they play back-to-back. Pass element ids in the desired order; omitted elements keep their relative order and are appended after. Ids come from get_project. Blocked in read-only mode.

NameTypeReqDescription
gapnumberSeconds of gap to insert between elements. Default 0.
orderarrayyesElement ids in the desired playback order.
projectIdstringyes
trackIdstringTrack to reorder. Defaults to the video track.

No output schema declared.

No examples provided.

resolve_address ~82

Resolve a free-text address into ranked candidates (formatted, placeId, location, components). Use before creating a project for a real listing — pass the chosen candidate as the project `address` so listing facts (price/beds/baths) auto-populate. Prefer candidates with isStreetLevel=true.

NameTypeReqDescription
limitinteger
querystringyes

No output schema declared.

No examples provided.

whoami ~98

Show the upstream MCP URL, read-only flag, the account plan, whether writes are allowed (canWrite) with a plain-language writeAccess reason, and the live /users/profile response for the OAuth-authenticated user. Good first call to confirm auth and whether create/generate/render tools will work (free accounts are read-only over the MCP). If not signed in, it returns a 'run login' error — use the `login` tool.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Common questions

What is the Reel Estate MCP server?

Reel Estate MCP is listed in the public MCP registry as com.tryreelestate/reel-estate-mcp. Turn real-estate listing photos into property videos from your AI assistant. This page covers its npm package (reel-estate-mcp).

Is the Reel Estate MCP server safe to use?

Reel Estate MCP scores 84 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 22 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Reel Estate MCP server expose?

Reel Estate MCP exposes 23 tools: whoami, login, logout, list_projects, get_project, and 18 more. Their descriptions and schemas cost roughly 2,204 tokens of context every time the server is loaded.

Is the Reel Estate MCP server still maintained?

Reel Estate MCP is still listed as active in the MCP registry. We last reached this channel on 22 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Reel Estate MCP server under?

Reel Estate MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.