io.github.jdw2111/propraven
Property intelligence: 180M+ US parcels — lookup, search, owners, hazards, permits, deeds.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
claude mcp add --transport http propraven 'https://propraven.com/mcp' --header 'Authorization: <Bearer pz_... — your PropRaven API key. Get one at https://propraven.com/settings/api-keys.>'
{
"mcpServers": {
"propraven": {
"type": "http",
"url": "https://propraven.com/mcp",
"headers": {
"Authorization": "<Bearer pz_... — your PropRaven API key. Get one at https://propraven.com/settings/api-keys.>"
}
}
}
}
@propraven/mcpclaude mcp add propraven -e 'PROPRAVEN_API_KEY=<your propraven_api_key>' -- npx -y @propraven/mcp@0.2.0
{
"mcpServers": {
"propraven": {
"command": "npx",
"args": [
"-y",
"@propraven/mcp@0.2.0"
],
"env": {
"PROPRAVEN_API_KEY": "<your propraven_api_key>"
}
}
}
}
Variables d'environnement
PROPRAVEN_API_KEYobligatoire secret Your PropRaven API key (pz_...). Get one at https://propraven.com/settings/api-keys.
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
@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):
{
"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):
{
"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).
| Tool | Purpose | Backed by |
|---|---|---|
parcel_lookup | Resolve one parcel by ID, address, or APN | GET /api/v1/parcels/{id} (ID) or GET /api/v1/search/full (address / APN) |
parcel_search | Text search by owner, address fragment, APN or city (+ state/city filters, keyset cursor) | GET /api/v1/search/full |
parcel_compare | Free card (+ hazards) for 2–25 parcels, for agent-side ranking | GET /api/v1/parcels/{id} (+ /risks) × N |
owner_pierce | Parcels titled under an owner name (optional state filter, best-effort ticker) | GET /api/v1/owners/{name}/portfolio (+ /owners/search for ticker) |
hazard_score | Flood / wildfire / seismic / windstorm / air-quality / crime blocks | GET /api/v1/parcels/{id}/risks |
valuation_estimate | Market value, AVM, assessed values, last sale, $/sqft | GET /api/v1/parcels/{id} |
permits_history | Permit timeline (≤100 newest, with true-count basis) | GET /api/v1/parcels/{id}/permits?shape=envelope |
sales_history | Deed / transfer timeline | GET /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
| Variable | Default | Purpose |
|---|---|---|
PROPRAVEN_API_KEY | (required) | Bearer token, format pz_... |
PROPRAVEN_BASE_URL | https://propraven.com | API host (every path starts with /api/v1). |
PROPRAVEN_TIMEOUT_MS | 30000 | Per-request timeout in ms. |
Requests carry User-Agent: @propraven/mcp/<version>.
Develop / inspect
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
Questions fréquentes
Qu'est-ce que io.github.jdw2111/propraven ?
Property intelligence: 180M+ US parcels — lookup, search, owners, hazards, permits, deeds.
Comment installer io.github.jdw2111/propraven ?
Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http propraven 'https://propraven.com/mcp' --header 'Authorization: <Bearer pz_... — your PropRaven API key. Get one at https://propraven.com/settings/api-keys.>'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour io.github.jdw2111/propraven ?
Oui. Il attend PROPRAVEN_API_KEY, Authorization, à renseigner dans sa configuration.
io.github.jdw2111/propraven est-il open source ?
Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.
Qui maintient io.github.jdw2111/propraven ?
Il est publié par jdw2111. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.