Data and integrations

Get started with MCP

Connect Codex, Claude Code, Cursor, or another MCP client to your PropertyDataLabs Cloud jobs and results.

Connect an AI assistant to PropertyDataLabs to inspect and manage existing Cloud jobs, analyze normalized property records, start a run after you approve its credit estimate, and create JSON or NDJSON exports. It can also search the public product documentation and cite the page it used when answering questions about Cloud Jobs or the browser extension. MCP access is included with Solo Lifetime, the Pro plan, and every higher eligible plan.

PropertyDataLabs uses a remote Streamable HTTP MCP server and a scoped personal access token. The token controls which operations the client may use and can be revoked independently from your account password.

Before you connect

You need:

  • Solo Lifetime or an active Pro, Ultra, or eligible legacy Team or Enterprise subscription
  • At least one completed Cloud run if you want the assistant to inspect property results
  • An MCP client that supports remote Streamable HTTP servers and bearer authentication

1. Create a personal access token

  1. Open Account settings → Agent access.
  2. Under Create a credential, enter a name that identifies the client, such as Codex on MacBook.
  3. Select only the scopes the client needs. For analysis, start with Read jobs and Results.
  4. Select Create token.
  5. Copy the pdl_pat_ value immediately. PropertyDataLabs shows the complete token only once.

Create a separate token for every client. Tokens expire after 90 days and can be revoked at any time from the same settings page.

2. Copy the MCP server URL

The Agent access status card shows the MCP URL for the current PropertyDataLabs environment. Copy that exact value. The examples below use <MCP URL shown in Agent access> as a placeholder.

3. Add PropertyDataLabs to your client

Choose the instructions for your MCP client.

Codex

Make the token available in the environment that starts Codex, then add the remote server:

export PDL_AGENT_TOKEN="pdl_pat_..."

codex mcp add propertydatalabs \
  --url "<MCP URL shown in Agent access>" \
  --bearer-token-env-var PDL_AGENT_TOKEN

Run codex mcp list to confirm the server is configured. In the Codex terminal interface, use /mcp to inspect the active connection.

Claude Code

Set the token variable, then replace the MCP URL placeholder before running the command:

export PDL_AGENT_TOKEN="pdl_pat_..."

claude mcp add --transport http propertydatalabs \
  "<MCP URL shown in Agent access>" \
  --header "Authorization: Bearer ${PDL_AGENT_TOKEN}"

Open /mcp in Claude Code to inspect the connection. Because this form places the token in the client configuration, keep that file private and revoke the token if it is exposed.

Cursor

Make PDL_AGENT_TOKEN available in Cursor's environment and add this entry to mcp.json:

{
  "mcpServers": {
    "propertydatalabs": {
      "url": "<MCP URL shown in Agent access>",
      "headers": {
        "Authorization": "Bearer ${env:PDL_AGENT_TOKEN}"
      }
    }
  }
}

For another compatible client, create a remote Streamable HTTP connection with the MCP URL and send the token in an Authorization: Bearer … header.

4. Try the connection

Start a conversation with PropertyDataLabs enabled and ask:

List my Cloud jobs, then show the most recent completed run. Summarize the available property records and ask before creating an export.

The assistant should first call pdl_get_capabilities, then use only tools allowed by the token's scopes. Read operations and agent exports do not consume Cloud collection credits. Starting a job does consume credits and always requires a separate estimate and your explicit approval.

Available tools

ToolWhat it doesRequired scope
pdl_get_capabilitiesShows plan access, granted scopes, credits, and supported operations.None
pdl_search_docsSearches public product documentation and returns canonical page references.None
pdl_read_docReads one search result as Markdown so the assistant can answer from the source.None
pdl_list_jobsLists existing Cloud jobs.jobs:read
pdl_update_jobChanges a job name or automatic schedule. Schedule changes also require jobs:run.jobs:write
pdl_archive_jobArchives a job without deleting it.jobs:write
pdl_unarchive_jobRestores an archived job without starting it immediately. A scheduled job also requires jobs:run.jobs:write
pdl_prepare_job_runEstimates credit usage and returns the approval message and short-lived token.jobs:run
pdl_start_job_runStarts the job only after explicit approval of the prepared estimate.jobs:run
pdl_list_runsLists retained runs for a Cloud job.results:read
pdl_get_runShows one run and its record and credit totals.results:read
pdl_list_propertiesPages through normalized properties from a run.results:read
pdl_get_propertyRetrieves one normalized property record.results:read
pdl_get_run_insightsRetrieves saved insights for a run.results:read
pdl_create_exportCreates a JSON or NDJSON artifact from an existing run.exports:create
pdl_get_exportChecks export status and returns a short-lived download link.exports:read

Ask product questions

For questions about Cloud Jobs, the Zillow Data Exporter browser extension, billing, or troubleshooting, the assistant can call pdl_search_docs, open the best match with pdl_read_doc, and include the returned canonical url in its answer. These operations search only public PropertyDataLabs documentation. They do not read account data, consume Cloud credits, or require a resource scope beyond a valid credential.

For example, ask:

How do I change a Cloud Importer schedule? Please answer from the PropertyDataLabs docs and link to the page you used.

Approve a job run

Starting a Cloud job is deliberately a two-step action:

  1. The assistant calls pdl_prepare_job_run.
  2. PropertyDataLabs checks the current job, available credits, the latest successful run, and a fresh estimate. Importer and Aggregator estimates use the configured Zillow search through the existing scraping-provider path when a current listing count is needed. Fetcher and Monitoring estimates use their current active-property counts.
  3. The assistant shows the returned approvalMessage without weakening or omitting its uncertainty warning.
  4. Only after you explicitly approve that message may it call pdl_start_job_run with approved: true, the short-lived approvalToken, and a new idempotencyKey.

An approval token expires after 10 minutes and is bound to the credential, account, job, estimate, and current job configuration. If the job changes or the token expires, the assistant must prepare a new estimate. The estimate is not a hard maximum: live listings and building-unit counts can change before or during collection.

Example approval message:

The last successful run used 546 credits. A fresh estimate suggests approximately 610 credits based on Zillow’s current listing count. You have 2,340 credits available. Actual usage may differ because listings can change. Do you approve starting this job?

Existing tokens keep their original scopes. To grant either new job scope, create a new token and revoke the old one after updating the client.

How access is limited

PropertyDataLabs checks the token, scope, resource ownership, current account entitlement, and service availability on every request. Supplying a job, run, or property ID is not proof of access.

MCP can edit the job name and automatic schedule, archive or unarchive a job, and start an explicitly approved run when the token grants the corresponding scopes. It cannot create or delete jobs, and job deletion remains available only in the PropertyDataLabs interface. MCP also does not expose raw provider payloads, owner names, phone numbers, or fields that require separate privacy and redistribution review. Large exports expire after 24 hours; request a fresh download link while the artifact is still available.

The service defaults to 120 requests per minute for each credential and 300 requests per minute for each user. If the client receives a 429 response, wait for the Retry-After interval before trying again.

Safety

  • Start with Read jobs and Results. Add management, run, or export permissions only when the workflow needs them.
  • Ask the assistant to cite the returned documentation URL when answering product questions.
  • Grant Run jobs only when you want the client to prepare estimates and request approval to run jobs. Never approve a run without reviewing the displayed estimate, balance, and uncertainty.
  • Never put a token in a URL, prompt, chat message, screenshot, or source repository.
  • Use a different token for each client so one connection can be revoked without disrupting others.
  • Review generated analysis against source URLs and observation times before making a property, investment, lending, or legal decision.
  • Revoke an unfamiliar or exposed credential immediately under Account settings → Agent access.

Next steps

  • Read the AI agent access reference for response fields, pagination, REST access, errors, and export manifests.
  • Review Solo Lifetime if the account uses a one-time license with separately purchased Cloud credits.
  • Review the Pro plan.
  • Contact support with the client name, approximate time, operation, and request ID if a connection fails. Never include the token or a signed download URL.