@rentalot/mcp-server
v0.2.2
Published
MCP server for the Rentalot API — manage rental properties, contacts, showings, and more from AI assistants
Maintainers
Readme
@rentalot/mcp-server
MCP server for the Rentalot API. Manage rental properties, contacts, showings, conversations, and more from any AI assistant.
Setup
Claude Code
claude mcp add rentalot -e RENTALOT_API_KEY=ra_your_key -- npx -y @rentalot/mcp-serverCodex (OpenAI)
codex mcp add --env RENTALOT_API_KEY=ra_your_key -- npx -y @rentalot/mcp-serverGemini CLI
gemini mcp add --transport stdio rentalot -- npx -y @rentalot/mcp-serverThen add the env var to ~/.gemini/settings.json:
{
"mcpServers": {
"rentalot": {
"command": "npx",
"args": ["-y", "@rentalot/mcp-server"],
"env": { "RENTALOT_API_KEY": "ra_your_key" }
}
}
}Claude Desktop / Cursor / Windsurf
All three use the same JSON format — just different file paths:
| Client | Config file |
|--------|-------------|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) |
| Cursor | .cursor/mcp.json (project) or ~/.cursor/mcp.json (global) |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
{
"mcpServers": {
"rentalot": {
"command": "npx",
"args": ["-y", "@rentalot/mcp-server"],
"env": {
"RENTALOT_API_KEY": "ra_your_key"
}
}
}
}OpenCode
Add to ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"rentalot": {
"type": "local",
"command": ["npx", "-y", "@rentalot/mcp-server"],
"environment": { "RENTALOT_API_KEY": "ra_your_key" },
"enabled": true
}
}
}Get Your API Key
- Go to Rentalot API Keys
- Click Create API Key
- Copy the key (starts with
ra_)
Authentication
You can provide your API key in two ways. Environment variables take priority over the config file.
Option A: Config file (recommended)
Save your key once and every MCP client picks it up automatically — no need to set RENTALOT_API_KEY in each client's config:
mkdir -p ~/.config/rentalot
cat > ~/.config/rentalot/config.yaml << 'EOF'
api_key: ra_your_key
EOF
chmod 600 ~/.config/rentalot/config.yamlThen register the server without any env var:
# Claude Code
claude mcp add rentalot -- npx -y @rentalot/mcp-server
# Codex
codex mcp add -- npx -y @rentalot/mcp-serverOption B: Environment variable
Pass RENTALOT_API_KEY in your MCP client config (shown in the setup examples above). This overrides the config file.
Config file reference (~/.config/rentalot/config.yaml):
# Required
api_key: ra_your_key
# Optional — defaults to https://rentalot.ai
# base_url: http://localhost:3000Respects
$XDG_CONFIG_HOME— if set, looks for$XDG_CONFIG_HOME/rentalot/config.yamlinstead.
Resolution order: RENTALOT_API_KEY env var > api_key in config file
AI Agent Skill
This project ships a SKILL.md following the Agent Skills open standard. Install it so your coding agent knows all 65 tools, common workflows, and API patterns.
Quick install with skills CLI (by Vercel Labs):
npx skills add ariel-frischer/rentalot-mcpClaude Code — Skills live in ~/.claude/skills/ (global) or .claude/skills/ (project-local).
# Global — available in all projects
mkdir -p ~/.claude/skills/rentalot-mcp
curl -fsSL https://raw.githubusercontent.com/ariel-frischer/rentalot-mcp/main/.skills/default/SKILL.md \
-o ~/.claude/skills/rentalot-mcp/SKILL.md
# Project-local — checked into this repo only
mkdir -p .claude/skills/rentalot-mcp
curl -fsSL https://raw.githubusercontent.com/ariel-frischer/rentalot-mcp/main/.skills/default/SKILL.md \
-o .claude/skills/rentalot-mcp/SKILL.mdCodex CLI — reads skills from ~/.codex/skills/ (global) or .codex/skills/ (project-local).
# Global
mkdir -p ~/.codex/skills/rentalot-mcp
curl -fsSL https://raw.githubusercontent.com/ariel-frischer/rentalot-mcp/main/.skills/default/SKILL.md \
-o ~/.codex/skills/rentalot-mcp/SKILL.md
# Project-local
mkdir -p .codex/skills/rentalot-mcp
curl -fsSL https://raw.githubusercontent.com/ariel-frischer/rentalot-mcp/main/.skills/default/SKILL.md \
-o .codex/skills/rentalot-mcp/SKILL.mdOr pass directly: codex --instructions .skills/default/SKILL.md
Detailed API Skill
For deeper API reference (full field lists, status enums, webhook events), there's also a comprehensive skill at skills/rentalot/SKILL.md. Symlink it for Claude Code:
ln -s "$(pwd)/skills/rentalot" ~/.claude/skills/rentalotThen invoke with /rentalot in any Claude Code session.
Tools (65)
| Resource | Tools | Access |
|----------|-------|--------|
| Properties (5) | list_properties, get_property, create_property, update_property, delete_property | Read: Starter+ / Write: Pro+ |
| Contacts (5) | list_contacts, get_contact, create_contact, update_contact, delete_contact | Read: Starter+ / Write: Pro+ |
| Showings (6) | list_showings, get_showing, create_showing, update_showing, delete_showing, check_showing_availability | Read: Starter+ / Write: Pro+ |
| Events (1) | list_events | Read: Starter+ |
| Conversations (4) | list_conversations, get_conversation, search_conversations, list_conversation_messages | Read: Starter+ |
| Messages (1) | send_message | Write: Pro+ |
| Drafts (6) | list_drafts, get_draft, create_draft, update_draft, send_draft, delete_draft | Read: Starter+ / Write: Pro+ |
| Follow-ups (4) | list_followups, get_followup, create_followup, delete_followup | Read: Starter+ / Write: Pro+ |
| Workflows (8) | list_workflows, get_workflow, create_workflow, update_workflow, delete_workflow, trigger_workflow_run, list_workflow_runs, get_workflow_run | Read: Starter+ / Write: Pro+ |
| Webhooks (7) | list_webhooks, create_webhook, get_webhook, update_webhook, delete_webhook, test_webhook, rotate_webhook_secret | Pro+ |
| Settings (4) | get_settings, update_settings, get_followup_settings, update_followup_settings | Read: Starter+ / Write: Pro+ |
| Property Images (9) | list_property_images, presign_image_upload, confirm_image_upload, delete_property_images, reorder_property_images, presign_image_batch, confirm_image_batch, import_property_images, get_image_import_job | Read: Starter+ / Write: Pro+ |
| Sessions (3) | list_sessions, get_session, review_session | Read: Starter+ / Write: Pro+ |
| Bulk Import (2) | bulk_create_properties, get_bulk_import_job | Pro+ |
Resources
docs://api-reference— Full API reference (authentication, rate limits, pagination, errors, all resource schemas)
Development
bun install
bun run build # Compile TypeScript
bun run dev # Run with --watch (hot reload)
bun run lint # ESLint
bun run typecheck # tsc --noEmit
bun run test:e2e # E2E test all 65 tools against local dev serverLicense
MIT
