TL;DR

npx -y @repull/mcp — 18 read-only tools for reservations, properties, listings, guests and conversations, plus starting a Connect flow. Works with Claude Code, Cursor, Claude Desktop, and any MCP-compatible AI.

Model Context Protocol server — makes Repull a native tool in Claude Desktop, Cursor, Claude Code, and any MCP-compatible AI agent. 18 tools covering reservations, properties, listings, guests and conversations, plus discovery, introspection and Connect.

It is read-only by design: it does not cancel or modify reservations, change prices, or message guests. The only writes start a Connect flow. Write tools will be added one at a time, each behind an explicit opt-in. If you need writes today, call the API directly or use an SDK.

How do I set up Repull in Cursor?

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in your project):

{
  "mcpServers": {
    "repull": {
      "command": "npx",
      "args": ["-y", "@repull/mcp"],
      "env": {
        "REPULL_API_KEY": "sk_live_YOUR_KEY"
      }
    }
  }
}

How do I set up Repull in Claude Code?

Run once in your terminal:

claude mcp add repull --env REPULL_API_KEY=sk_live_YOUR_KEY -- npx -y @repull/mcp

To share it with your team, commit a .mcp.json at the project root with the same mcpServers block as the Cursor config above. The server only reads REPULL_API_KEY (and optionally REPULL_API_BASE_URL).

What tools are available?

18 tools, grouped as discovery, introspection, reads and Connect:

repull_list_endpointsSummary of every Repull REST endpoint, filterable by tag or text
repull_get_docsFetch a docs page by slug, or list available docs
repull_whoamiWorkspace snapshot: plan, usage and connected channels
repull_health_checkConnectivity check
repull_list_reservationsCursor-paginated reservations; filter by status, platform, listing and check-in dates
repull_get_reservationFull reservation detail: guest, dates, pricing, payment
repull_list_propertiesCursor-paginated PMS properties, filterable by provider
repull_get_propertyFull property detail: address, amenities, photos, capacity
repull_list_listingsCursor-paginated native Repull listings
repull_list_airbnb_listingsListings on the connected Airbnb account
repull_list_guestsCursor-paginated guest profiles
repull_get_guestSingle guest profile with contacts and history
repull_list_conversationsGuest message threads across every channel
repull_list_conversation_messagesMessages inside one thread, oldest first
repull_list_connectionsActive PMS and OTA connections with status
repull_list_connect_providersEvery channel you can connect, with required credentials
repull_create_connect_sessionStart a Connect flow for one provider (accepts idempotency_key)
repull_create_connect_picker_sessionStart a multi-channel picker session (accepts idempotency_key)

Example Usage

Once configured, ask Claude naturally:

“What's connected to my Repull account, and what can I do with it?”
“Show me all confirmed reservations from Airbnb”
“Find the latest guest message thread for reservation 1042 and summarize it”
“Connect my Hostaway account. Here is the API key”
“What does the error invalid_param mean and how do I fix it?”
AI