Reel Estate MCP
NPM · REEL-ESTATE-MCP · SCANNED AUG 3
Turn real-estate listing photos into property videos from your AI assistant.
Available components
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 →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 30 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability82
- 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 Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · reel-estate-mcp
claude mcp add com-tryreelestate-reel-estate-mcp -- npx -y reel-estate-mcp
codex mcp add com-tryreelestate-reel-estate-mcp -- npx -y reel-estate-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-tryreelestate-reel-estate-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"reel-estate-mcp"
],
"enabled": true
}
}
} openclaw mcp add com-tryreelestate-reel-estate-mcp --command npx --arg -y --arg reel-estate-mcp
mcp_servers:
com-tryreelestate-reel-estate-mcp:
command: "npx"
args: ["-y", "reel-estate-mcp"] {
"mcpServers": {
"com-tryreelestate-reel-estate-mcp": {
"command": "npx",
"args": [
"-y",
"reel-estate-mcp"
]
}
}
} 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.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Aug 26 +43
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Malware scan: unverified → pass ▲ security
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Schema quality: unverified → good ▲ functional
- Stability: unverified → 0.23 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- License: unverified → pass ▲ functional
- Licence: MIT functional
- 1 Aug 26 −17
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 +16
- Provenance: unverified → fail ▼ security
- Malware scan: pass → unverified ▼ security
- Install scripts: unverified → pass ▲ security
- Dependency health: partial → unverified ▼ functional
- Maintenance: unverified → pass ▲ functional
- Schema quality: unverified → 100 ▲ functional
- License: unverified → pass ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Licence: MIT functional
- 29 Jul 26 −24
- Schema quality: 100 → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- 27 Jul 26 50
First indexed and scored.
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 3 Aug 2026 · Analysed npm/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 96 packages
96 packages in the resolved dependency tree · 96 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
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.
add_image_from_file Add a photo to a project from a local 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.
| Name | Type | Req | Description |
|---|---|---|---|
| addToTimeline | boolean | — | Also append a video timeline element so the image is in the render. Default true. |
| caption | string | — | Optional caption stored with the image. |
| filename | string | — | Override the stored filename (defaults to the file's basename). |
| path | string | yes | Absolute path to a local image file (jpg/png/webp). |
| projectId | string | yes | Target project id. |
No output schema declared.
No examples provided.
add_timeline_audio Add an audio track to the timeline ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| duration | number | — | Seconds. Defaults to movie length, else sourceDuration, else 5. |
| fadeIn | number | — | — |
| fadeOut | number | — | — |
| projectId | string | yes | — |
| s3Key | string | — | — |
| sourceDuration | number | — | Full length of the source audio, for a fixed-length clip. |
| startTime | number | — | Seconds from the start of the movie. Default 0. |
| title | string | — | Display label for the timeline clip. |
| url | string | yes | Public URL to the audio file (mp3). |
| volume | number | — | 0-1. Default 1. |
No output schema declared.
No examples provided.
add_timeline_overlay Add an image/logo or text overlay to the timeline ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| duration | number | — | Seconds on screen. Default 5. |
| fontColor | string | — | Text color, e.g. #FFFFFF. Text overlays only. |
| fontSize | number | — | Text size in px. Text overlays only. |
| imageId | string | — | Project image id to overlay (url auto-resolved). |
| opacity | number | — | — |
| position | object | — | Percent-of-canvas position from top-left. |
| projectId | string | yes | — |
| s3Key | string | — | — |
| size | number | — | Image scale factor 0-1. Image overlays only. |
| startTime | number | — | Seconds from the start of the movie. Default 0. |
| text | string | — | Text caption — provide instead of an image for a text overlay. |
| url | string | — | Direct image url (alternative to imageId). |
No output schema declared.
No examples provided.
api_request Call any API endpoint ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| body | — | — | JSON body for non-GET requests. |
| method | string | yes | — |
| path | string | yes | Path relative to API base, e.g. /projects/123 or admin/stats |
| query | object | — | — |
No output schema declared.
No examples provided.
edit_image Edit a project image (Gemini) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| advancedParams | object | — | Required for replace/remove/add. |
| customPrompt | string | — | Required for editType='manual'. |
| editType | string | yes | — |
| imageId | string | yes | — |
| projectId | string | yes | — |
| roomType | string | — | Required for staging + advanced/interior edits. |
| style | string | — | Required for staging. |
No output schema declared.
No examples provided.
generate_clip Generate a video clip from a project image ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| aspectRatio | string | — | — |
| customMotionPrompt | string | — | Required when motion='custom'. |
| duration | number | — | Seconds, 3-10 (default 5). |
| imageId | string | yes | — |
| imageUrl | string | — | Auto-resolved from the project if omitted. |
| motion | string | yes | — |
| projectId | string | yes | — |
| resolution | string | — | — |
No output schema declared.
No examples provided.
get_clip_status Check clip generation status ~38
Poll a clip-generation job started by generate_clip (GET /clip-generation/clip-status/:jobId).
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | — |
No output schema declared.
No examples provided.
get_project Get a project ~31
GET /projects/:id — full project document for the authenticated user.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Project id. |
No output schema declared.
No examples provided.
get_usage 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 How to use this server (start-to-finish walkthrough) ~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 List clips ~69
Clips for the authenticated user. With projectId -> GET /clips/project/:projectId; otherwise GET /clips (the clip library) with paging/status.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | — |
| page | integer | — | — |
| projectId | string | — | — |
| status | string | — | — |
No output schema declared.
No examples provided.
list_endpoints List API 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 List movies ~40
Rendered movies for the user. With projectId -> GET /movies/project/:projectId; else GET /movies.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | — | — |
No output schema declared.
No examples provided.
list_projects List projects ~101
GET /projects for the authenticated user. Supports paging, sorting, search, and status filter.
| Name | Type | Req | Description |
|---|---|---|---|
| folderId | string | — | — |
| limit | integer | — | — |
| page | integer | — | — |
| search | string | — | — |
| sortBy | string | — | e.g. updatedAt, createdAt, name, lastInteractedAt |
| sortOrder | string | — | — |
| starred | boolean | — | — |
| status | string | — | — |
No output schema declared.
No examples provided.
list_voices 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 Log in ~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 Log out ~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 Retime a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| duration | number | — | New duration in seconds. |
| elementId | string | yes | — |
| projectId | string | yes | — |
| startTime | number | — | New start, seconds from the movie start. |
No output schema declared.
No examples provided.
project_stats 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 Render the final movie for a project ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| aiGeneratedLabel | boolean | — | Per-render override of the AI-disclosure label. |
| projectId | string | yes | — |
| settings | object | — | — |
No output schema declared.
No examples provided.
reorder_timeline Reorder timeline elements ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| gap | number | — | Seconds of gap to insert between elements. Default 0. |
| order | array | yes | Element ids in the desired playback order. |
| projectId | string | yes | — |
| trackId | string | — | Track to reorder. Defaults to the video track. |
No output schema declared.
No examples provided.
resolve_address Geocode a free-text 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | — |
| query | string | yes | — |
No output schema declared.
No examples provided.
whoami Who am I ~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.