npm reel-estate-mcpstdioMITupdated 2mo ago
Turn real-estate listing photos into cinematic property videos from your AI assistant. reel-estate-mcp is a Model Context Protocol (MCP) server that connects Claude, Cursor, and other AI assistants to your Reel Estate account โ so you can generate motion clips, AI-edit photos (virtual staging, twilight, seasonal), add voiceover, and render finished listing videos, all in plain language.
What can you do with Reel Estate MCP?
reel-estate-mcp
Turn real-estate listing photos into cinematic property videos from your AI
assistant. reel-estate-mcp is a Model Context Protocol
(MCP) server that connects Claude, Cursor, and other AI assistants to your
Reel Estate account โ so you can generate motion
clips, AI-edit photos (virtual staging, twilight, seasonal), add voiceover, and
render finished listing videos, all in plain language.
Reel Estate is the AI real-estate video platform that turns property photos into scroll-stopping listing videos. Create a free account at tryreelestate.com.
You sign in once through your browser (OAuth + PKCE โ no API keys, no secrets),
and every call is proxied through the backend's /mcp endpoint, which stays the
single authority for auth, plans, and permissions. This bridge's one superpower on
top of that: it can read local image files and stream them straight into a
project โ something a purely remote server can't do.
- ๐ฌ Generate real-estate videos โ animate photos into clips, then render the movie
- ๐ผ๏ธ AI photo editing โ virtual staging, twilight, upscale, seasonal, replace/remove/add
- ๐๏ธ Voiceover & timeline โ narration, music, overlays, reordering
- ๐ค Local uploads โ push photos from disk into a project
- ๐ Browser sign-in โ public OAuth client + PKCE; nothing secret stored
- ๐ค Works with Claude Code, Claude Desktop, and Cursor
Requirements
- Node.js 18+
- A Reel Estate account (a paid plan is required to create/generate/render; free accounts are read-only over the MCP)
- An MCP-compatible client: Claude Code, Claude Desktop, or Cursor
Install
Nothing to clone or build โ your MCP client launches it on demand via npx. You
only need Node.js โฅ 18. (Prefer a global command? npm install -g reel-estate-mcp,
then use reel-estate-mcp in place of npx -y reel-estate-mcp below.)
Connect your assistant
Zero config โ the bridge connects to Reel Estate and handles browser sign-in for you. There's nothing to set up.
Claude Code
claude mcp add reel-estate -- npx -y reel-estate-mcp
Claude Desktop / Cursor
Add to your client's MCP config (claude_desktop_config.json, ~/.cursor/mcp.json):
{
"mcpServers": {
"reel-estate": {
"command": "npx",
"args": ["-y", "reel-estate-mcp"]
}
}
}
First run โ sign in
The first tool call opens your browser to sign in with your Reel Estate account
(Clerk OAuth, authorization code + PKCE). After you approve, the browser returns to
http://localhost:8765/callback, tokens cache under ~/.reel-estate-mcp, and
you're in โ you won't log in again until the token expires.
Start with whoami to confirm auth and see your plan, then just ask:
- "List my recent projects."
- "Create a project for 123 Main St and upload the photos in ./listing."
- "Virtually stage the living room photo, generate a drone clip, then render in 9:16."
- "How many credits and exports do I have left?"
To switch users or re-authorize, run logout (revokes server-side + clears
the cache) or delete ~/.reel-estate-mcp.
Tools
All API tools proxy through the backend's /mcp api_request, so the backend's
own authorization and plan rules apply.
| Tool | What it does |
|---|---|
help |
Guided, always-current walkthrough (also the getting_started prompt) |
whoami |
Confirm auth; reports plan, canWrite, and a writeAccess reason. Run first. |
login / logout |
Start browser sign-in / clear the session (server revoke + local cache) |
list_projects ยท get_project ยท project_stats |
Browse projects |
list_clips ยท list_movies ยท list_voices |
Browse clips, rendered movies, TTS voices |
resolve_address |
Geocode a free-text address โ ranked candidates (for real-listing projects) |
add_image_from_file |
Upload a local image into a project (presigned upload โ no storage creds) |
generate_clip ยท get_clip_status |
Animate a photo into a video clip (Runway); poll the job |
edit_image |
AI photo edit โ virtual staging, twilight, upscale, seasonal, replace/remove/add, manual |
add_timeline_audio ยท add_timeline_overlay |
Place voiceover/music/audio or an image/text overlay |
move_timeline_element ยท reorder_timeline |
Retime / resequence the timeline |
render_movie |
Assemble the timeline into the final listing video |
list_endpoints ยท api_request |
Discover the API catalog / call any route โ the escape hatch |
Paid vs free
Writes and generation over the MCP require a paid plan โ free accounts are
read-only (browse projects, clips, and movies). whoami reports this up front;
a blocked write returns 403 MCP_PAID_PLAN_REQUIRED. See plans at
tryreelestate.com.
How auth works
first tool call
โ StreamableHTTP client โโโบ backend /mcp (401, needs auth)
โผ
opens your browser โโโบ Clerk OAuth (authorization code + PKCE, public client)
โ โ
โผ โผ
loopback http://localhost:8765/callback?code=โฆ access + refresh tokens
โ โ
โโโโโโโโโโโโโโบ finishAuth(code) โโโบ tokens cached โโโ (~/.reel-estate-mcp)
every later call: callTool("api_request", โฆ) over the authed /mcp connection
- No secrets to distribute โ public client + PKCE, browser login per user.
- Prod-capable โ uses the same OAuth the backend serves at
/mcp. - The backend is the single auth authority โ this bridge never mints tokens.
Troubleshooting
| Problem | Fix |
|---|---|
| No login prompt / "not authenticated" | Run any tool (or login), open the printed URL, and approve. |
| Switch accounts / re-authorize | Run logout, or delete ~/.reel-estate-mcp. |
Writes blocked (403 MCP_PAID_PLAN_REQUIRED) |
Creating/generating/rendering needs a paid plan; free accounts are read-only. See tryreelestate.com. |
Architecture
src/config.tsโ validated env (loaded from this package's folder); derives the/mcpURL, OAuth store dir, callback port, read-only flag, and default client id.src/oauth.tsโOAuthClientProvider: uses the publicclient_id, caches tokens + the PKCE verifier, opens the system browser.src/upstream.tsโ the single OAuth'd MCP client connection to/mcp(with the loopback callback server);callTool/callApiRequestproxies.src/api-client.tsโApiClientovercallApiRequest; enforces read-only.src/catalog.tsโ the endpoint catalog surfaced bylist_endpoints.src/tools.tsโ tools as plain functions (smoke-testable).src/index.tsโ registers the tools as MCP tools over stdio.
Adding a tool
- Add
async function fooBar(api, args)insrc/tools.ts(useapi.get(...)/api.request(...), which proxy through/mcp). - Register it in
src/index.tswith a ZodinputSchema. - Add it to
scripts/smoke.tsif it's a GET.
Everything is already reachable through api_request; convenience tools just make
the common paths first-class.
About Reel Estate
Reel Estate helps real-estate agents and marketers turn ordinary listing photos into professional property videos โ AI virtual staging, twilight conversion, motion/drone clips, voiceover narration, and one-click rendering for Instagram, TikTok, and YouTube. This MCP server brings that workflow into your AI assistant. Get started at tryreelestate.com โ
Keywords: real estate video generator, AI listing video, virtual staging, MCP server, Model Context Protocol, Claude, Cursor, property video marketing, drone real estate video, twilight photo editing.
Install
Add Reel Estate MCP to your client. Pick the one you use.
claude mcp add reel-estate-mcp -- npx -y reel-estate-mcpcodex mcp add reel-estate-mcp -- npx -y reel-estate-mcpamp mcp add reel-estate-mcp -- npx -y reel-estate-mcp{
"mcpServers": {
"reel-estate-mcp": {
"command": "npx",
"args": [
"-y",
"reel-estate-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"reel-estate-mcp": {
"command": "npx",
"args": [
"-y",
"reel-estate-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"reel-estate-mcp","command":"npx","args":["-y","reel-estate-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"reel-estate-mcp": {
"command": "npx",
"args": [
"-y",
"reel-estate-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"reel-estate-mcp": {
"command": "npx",
"args": [
"-y",
"reel-estate-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"reel-estate-mcp": {
"command": "npx",
"args": [
"-y",
"reel-estate-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"reel-estate-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"reel-estate-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"reel-estate-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"reel-estate-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y reel-estate-mcpRun `goose configure`, choose **Add Extension โ Command-line Extension**, and paste this command.
4 tools
Reel Estate MCP exposes 4 tools to a connected agent.
- resolve_address
- Geocode a free-text address โ ranked candidates (for real-listing projects)
- add_image_from_file
- Upload a **local** image into a project (presigned upload โ no storage creds)
- edit_image
- AI photo edit โ virtual staging, twilight, upscale, seasonal, replace/remove/add, manual
- render_movie
- Assemble the timeline into the final listing video
Score
75 / 100
Good
- Documentation25/25
- Maintenance16/25
- Trust16/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 56 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 4 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.3.5Latest | Jul 3, 2026 |
| 0.3.4 | Jul 3, 2026 |