@vprop/mcp
@vprop/mcp
MCP (Model Context Protocol) server for the vProp Public API — let AI assistants create real-estate listing videos on your behalf.
What it does
Connect Claude (or any MCP-compatible AI) to vProp so it can:
- Create and manage property listings
- Upload listing photos
- Create and manage agent profiles
- Generate AI-powered listing videos
- Poll for video completion and return the final URL
Typical flow:
create_listing → upload_listing_image (×10+) → create_agent →
upload_agent_photo → create_project → get_project_status (poll) → get_project
Prerequisites
A vProp API key (VP_…). Contact vProp to get one.
Setup
The MCP server config block is the same across all clients — only the file location differs.
{
"command": "npx",
"args": ["-y", "@vprop/mcp"],
"env": { "VPROP_API_KEY": "VP_your_key_here" }
}Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"vprop": {
"command": "npx",
"args": ["-y", "@vprop/mcp"],
"env": { "VPROP_API_KEY": "VP_your_key_here" }
}
}
}Restart Claude Desktop.
Claude Code (CLI)
claude mcp add vprop npx -e VPROP_API_KEY=VP_your_key_here -- -y @vprop/mcpCursor
Create or edit .cursor/mcp.json in your project root (or ~/.cursor/mcp.json for global):
{
"mcpServers": {
"vprop": {
"command": "npx",
"args": ["-y", "@vprop/mcp"],
"env": { "VPROP_API_KEY": "VP_your_key_here" }
}
}
}Restart Cursor or run Cursor: Reload MCP Servers from the command palette.
Windsurf
Edit ~/.codeium/windsurf/mcp_settings.json:
{
"mcpServers": {
"vprop": {
"command": "npx",
"args": ["-y", "@vprop/mcp"],
"env": { "VPROP_API_KEY": "VP_your_key_here" }
}
}
}Zed
Edit ~/.config/zed/settings.json:
{
"context_servers": {
"vprop": {
"command": {
"path": "npx",
"args": ["-y", "@vprop/mcp"],
"env": { "VPROP_API_KEY": "VP_your_key_here" }
}
}
}
}Continue (VS Code / JetBrains)
Edit .continue/config.json in your project (or ~/.continue/config.json globally):
{
"mcpServers": [
{
"name": "vprop",
"command": "npx",
"args": ["-y", "@vprop/mcp"],
"env": { "VPROP_API_KEY": "VP_your_key_here" }
}
]
}Gemini CLI
Edit ~/.gemini/settings.json:
{
"mcpServers": {
"vprop": {
"command": "npx",
"args": ["-y", "@vprop/mcp"],
"env": { "VPROP_API_KEY": "VP_your_key_here" }
}
}
}Other MCP-compatible clients
Any client that follows the MCP specification uses the same stdio transport config:
{
"command": "npx",
"args": ["-y", "@vprop/mcp"],
"env": { "VPROP_API_KEY": "VP_your_key_here" }
}Note: ChatGPT and Gemini web interfaces do not currently support MCP servers. The tools above are desktop/CLI clients that run the MCP server locally.
Available tools
Voices & Music
| Tool | Description |
|---|---|
list_voices |
List narration voices. Use the id as voice_id. |
list_bgms |
List background music tracks. Use the id as bgm_id. |
Listings
| Tool | Description |
|---|---|
create_listing |
Create a property listing (address required) |
get_listing |
Get listing details by ID |
list_listings |
List all listings (paginated) |
update_listing |
Update address, attributes, or metadata |
delete_listing |
Delete a listing |
list_listing_images |
List uploaded images for a listing |
upload_listing_image |
Upload a local JPEG/PNG/WebP to a listing |
delete_listing_image |
Remove an image from a listing |
Agents
| Tool | Description |
|---|---|
create_agent |
Create a realtor agent profile |
get_agent |
Get agent details by ID |
list_agents |
List all agents (paginated) |
update_agent |
Update agent info or default voice |
delete_agent |
Delete an agent |
upload_agent_photo |
Upload a headshot photo (enables avatar feature) |
Projects (video generation)
| Tool | Description |
|---|---|
create_project |
Start video generation (async, returns proj_…) |
get_project_status |
Lightweight status check (pending/processing/completed/failed) |
get_project |
Full project details including video_url when done |
list_projects |
List projects with optional status filter |
Webhooks
| Tool | Description |
|---|---|
register_webhook |
Register an HTTPS URL to receive project events (replaces any existing registration) |
get_webhook |
Get the current webhook registration for this API key |
delete_webhook |
Deactivate a webhook by its ID |
rotate_webhook_secret |
Roll the HMAC signing secret for a webhook |
Usage
| Tool | Description |
|---|---|
get_usage |
Get usage counts and credit balance for this API key |
Example prompts
Generate a video end-to-end:
"Create a listing for 123 Oak Ave, Austin TX 78701. Upload all photos from ~/Desktop/photos/. Create an agent named Jane Doe with email jane@realty.com. Then generate a video in modern theme and let me know when it's ready."
Check on existing projects:
"Show me all completed projects from the last run."
Try different styles:
"Generate a landscape video with bold theme and no captions for listing lst_AbCd."
Video options
When calling create_project, you can customize:
| Option | Values | Default |
|---|---|---|
theme |
modern classic bold elegant luxe basic rosewood keystone pixel editorial sketch |
modern |
background |
black white |
theme default |
resolution |
portrait (9:16) landscape (16:9) |
portrait |
caption |
none keyword description |
keyword |
language |
en es ko zh-Hans |
en |
voice_id |
ID from list_voices |
agent default |
bgm_id |
ID from list_bgms |
theme default |
background_music |
true false |
true |
narration_highlights |
free text (≤2000 chars) | — |
word_highlight |
true false |
false |
use_agent_avatar |
true false |
true |
use_lipsync |
true false |
false |
display_info |
object — per-field booleans for agent card | platform defaults |
Notes
- Image uploads require a local file path — the MCP server runs on your machine and reads files directly. Minimum 10 photos recommended for best results.
- Video generation is async —
create_projectreturns immediately. Pollget_project_statusuntilcompleted, then callget_projectfor thevideo_url. - Rate limits — project creation is capped at 10/min, 120/hour. Most other endpoints allow 120/min.