MCP server: One MCP server.

Propraven

@jdw2111MCP server · External

Property intelligence: 180M+ US parcels — lookup, search, owners, hazards, permits, deeds.

Real estate datav0.2.0TypeScript
Freeno charge per call

One address for any MCP client. You sign in at propraven.com once, after adding it.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

None listed · checked 7 Oct 2026

Odel could not list its tools without signing in.

Try it in the Inspector
README4 min read

@propraven/mcp

Model Context Protocol server for PropRaven — gives Claude, ChatGPT, Cursor, and any MCP-compatible agent canonical access to 191.3M US parcels (110.0M mapped) with ownership, valuation, permits, deeds, hazard, and market data.

Hosted endpoint: https://propraven.com/mcp (Streamable HTTP, no install — docs: https://propraven.com/docs/mcp · agents + x402: https://propraven.com/docs/agents). Or run the stdio server locally (below).


Hosted (no install)

Point any HTTP-transport MCP client at https://propraven.com/mcp with your API key as a bearer header. Claude Desktop / Cursor (claude_desktop_config.json, ~/.cursor/mcp.json):

json
{
  "mcpServers": {
    "propraven": {
      "url": "https://propraven.com/mcp",
      "headers": { "Authorization": "Bearer pz_your_real_key_here" }
    }
  }
}

Claude Code: claude mcp add --transport http propraven https://propraven.com/mcp --header "Authorization: Bearer pz_your_real_key_here". The claude.ai web connector uses OAuth instead — add a custom connector with the same URL and sign in.


Local stdio server (npx @propraven/mcp)

Requirements: Node ≥18, a PropRaven API key (pz_…) from https://propraven.com/settings/api-keys (free, no card).

Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{
  "mcpServers": {
    "propraven": {
      "command": "npx",
      "args": ["-y", "@propraven/mcp"],
      "env": { "PROPRAVEN_API_KEY": "pz_your_real_key_here" }
    }
  }
}

Cursor (~/.cursor/mcp.json) takes the same block. Claude Code: claude mcp add propraven --env PROPRAVEN_API_KEY=pz_your_real_key_here -- npx -y @propraven/mcp.

Restart the client. The 8 PropRaven tools appear in the tool list.

Quick test

Look up parcel 37:119:12104406 and tell me the owner.

The agent should pick parcel_lookup and return the canonical parcel card with the owner.

ChatGPT: Custom GPT → Actions → OpenAPI URL https://api.propraven.com/openapi.json with API-key (Bearer) auth; native MCP-in-ChatGPT can use the hosted endpoint https://propraven.com/mcp (OAuth 2.1 + PKCE).


Tools

Names match the hosted server (^[a-zA-Z0-9_-]{1,64}$, as MCP clients and the Anthropic API require).

ToolPurposeBacked by
parcel_lookupResolve one parcel by ID, address, or APNGET /api/v1/parcels/{id} (ID) or GET /api/v1/search/full (address / APN)
parcel_searchText search by owner, address fragment, APN or city (+ state/city filters, keyset cursor)GET /api/v1/search/full
parcel_compareFree card (+ hazards) for 2–25 parcels, for agent-side rankingGET /api/v1/parcels/{id} (+ /risks) × N
owner_pierceParcels titled under an owner name (optional state filter, best-effort ticker)GET /api/v1/owners/{name}/portfolio (+ /owners/search for ticker)
hazard_scoreFlood / wildfire / seismic / windstorm / air-quality / crime blocksGET /api/v1/parcels/{id}/risks
valuation_estimateMarket value, AVM, assessed values, last sale, $/sqftGET /api/v1/parcels/{id}
permits_historyPermit timeline (≤100 newest, with true-count basis)GET /api/v1/parcels/{id}/permits?shape=envelope
sales_historyDeed / transfer timelineGET /api/v1/parcels/{id}/deeds?shape=envelope

Parcel IDs. The canonical form is state_fips:county_fips:parcel_id, e.g. 37:119:12104406. The legacy 5-digit form (37119:12104406) and PropRaven parcel UUIDs are also accepted. parcel_search and parcel_lookup's address search add a lookup_id to every result (search rows carry the PropRaven UUID in parcel_id), which parcel_lookup / parcel_compare accept.

No tool spends money. The client only issues GETs to the seven free / metered read endpoints above, refuses every other path before a request is sent (the paid parcel report, comp pack, risk score, owner report, leads, storefront, …), and never sends a payment header. If the API ever answers with an x402 402 Payment Required, the tool returns 402 payment required — this tool never pays. Calls still count against your plan's monthly quota. To buy a dossier, use the hosted server's explicit buy_* tools or propraven.com.

Errors are RFC 7807 problem details, surfaced as <status> <code>: <detail> (e.g. 404 not_found: …). A 429 or 503 is retried once when Retry-After is ≤ 10 s.

Tool descriptions call out when not to use each tool, which is the biggest determinant of agent selection accuracy.


Environment

VariableDefaultPurpose
PROPRAVEN_API_KEY(required)Bearer token, format pz_...
PROPRAVEN_BASE_URLhttps://propraven.comAPI host (every path starts with /api/v1).
PROPRAVEN_TIMEOUT_MS30000Per-request timeout in ms.

Requests carry User-Agent: @propraven/mcp/<version>.


Develop / inspect

bash
npm ci
npm run build
npm test          # node:test suite — no network, no API key needed

# Live-reloading dev (TypeScript, no build step):
PROPRAVEN_API_KEY=pz_test... npm run dev

# Or open the MCP Inspector UI:
PROPRAVEN_API_KEY=pz_test... npm run inspect

The inspector at https://modelcontextprotocol.io/legacy/tools/inspector lets you call each tool manually and see request/response payloads.


Why this exists

Every Claude / ChatGPT / Cursor workflow that touches property data needs an authoritative parcel-lookup tool. There is no canonical property-data MCP today. PropRaven aims to be it before the first-mover window closes (~12–18 months).


License

Apache-2.0

Similar modules

Browse Real estate data