Skip to content

Connect LLM Agent (MCP)

RealtyPad agents talk to your workspace over HTTP MCP at the same public host as the web app (/mcp). Prefer browser OAuth — sign in and authorize; no pasted Bearer token for normal use.

Overview

Production MCP URL https://app.realtypad.ai/mcp (no trailing slash)
Stage MCP URL https://stage.realtypad.ai/mcp
Auth Browser OAuth (preferred) · long-lived agent JWT (headless fallback)
Smoke test Ask the agent to call list_deals (limit 3) and/or get_agent_manual

You can copy the MCP URL / config from Account → Agent & API or the Getting started wizard after you sign in.

After connect: agents load procedures with search_docs then get_agent_manual(workflow=…) or read_doc("agents/workflows/….md"). Guides are on this docs site under Agents.

Fallback — static agent JWT

For headless clients that cannot complete browser OAuth:

  1. Sign in at app.realtypad.ai.
  2. Open Account → Agent & API → Mint agent JWT.
  3. Configure your client with a Bearer header against the MCP URL above.

Switch workspace in the web app before minting if the token should target a different tenant.


Cursor

  1. Open Cursor Settings → MCP (or edit MCP config).
  2. Add a server with the MCP URL only:

Production:

{
  "mcpServers": {
    "RealtyPad": {
      "url": "https://app.realtypad.ai/mcp"
    }
  }
}

Stage:

{
  "mcpServers": {
    "RealtyPad": {
      "url": "https://stage.realtypad.ai/mcp"
    }
  }
}
  1. Save and reload MCP. Cursor should prompt to authorize → browser opens app.realtypad.ai at /oauth/consent → sign in (if needed) → Authorize.
  2. Ask the agent to call list_deals (limit 3). You should see deals from your workspace only.

Cursor troubleshooting

Symptom What to try
“Protected resource … does not match expected” Clear stored OAuth state (remove/re-add the MCP server); use the URL without a trailing slash
“Authorization session ended” / browser never opens Fully quit Cursor (Cmd+Q on macOS) and reconnect, or click Needs authentication again. Open Output → MCP: RealtyPad, find the authorize URL, and paste it into a browser

JWT fallback in Cursor config:

{
  "mcpServers": {
    "RealtyPad": {
      "url": "https://app.realtypad.ai/mcp",
      "headers": {
        "Authorization": "Bearer eyJhbGciOiJIUzI1NiIs..."
      }
    }
  }
}

Claude (claude.ai / Claude Desktop)

Same MCP URL: https://app.realtypad.ai/mcp (no trailing slash).

  1. Add RealtyPad as an MCP connector / custom connector with that URL.
  2. Choose OAuth when prompted.
  3. Sign in and Authorize in the browser.
  4. Ask Claude to list a few deals and to call get_agent_manual.

Claude does not see Cursor project skills. Prefer search_docs then get_agent_manual(workflow=…) or read_doc("agents/workflows/….md"). Omit workflow for the index only. Workflow keys include ingest, research, buyers, … (investors → buyers).


ChatGPT

Same MCP URL: https://app.realtypad.ai/mcp (no trailing slash).

  1. Open Settings → Apps and turn on Developer mode.
  2. Create a connector, paste the MCP URL, and choose OAuth.
  3. Sign in and authorize.
  4. Ask ChatGPT to list a few deals and to call get_agent_manual.

ChatGPT does not see Cursor project skills. Prefer search_docs then get_agent_manual(workflow=…) or read_doc("agents/workflows/….md").


Troubleshooting

Symptom What to check
401 / no authorize prompt Re-add the MCP server; complete browser consent; confirm you are on the right host (app vs stage)
Consent opens on the wrong site Use https://app.realtypad.ai/mcp exactly (no trailing slash); clear OAuth state and reconnect
Empty deals Consent or agent JWT was minted for a different workspace — switch workspace, then re-authorize or mint again
Connection refused / TLS errors Production requires HTTPS; check network / VPN

Revoking access

Deny on the consent screen, rotate passwords, or mint a new agent JWT and drop the old one from your client config. OAuth refresh tokens are server-side and expire (~90 days).