Endpoint
https://permitdigest.app/mcp
Model Context Protocol, Streamable HTTP transport, stateless. POST JSON-RPC. GET returns 405 with a pointer here.
Auth
Authorization: Bearer pd_live_… with an API key from your account. Anonymous calls get coverage and a capped search_permits (5 results, last 7 days). permit_detail and watch_area need a key. Base includes a monthly call allowance; over-allowance calls return allowance_exceeded with the reset date.
Claude Desktop, Cursor, or any MCP client
{
"mcpServers": {
"permitdigest": {
"url": "https://permitdigest.app/mcp",
"headers": {
"Authorization": "Bearer pd_live_YOUR_KEY"
}
}
}
}
Example call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_permits",
"arguments": {
"jurisdiction": "chicago",
"trade": "roofing",
"days": 7,
"limit": 10
}
}
}
Shape of a response
{
"brief": "41 roofing permits issued in Chicago in the last 7 days, $1.2M permit-declared over 37 with a reliable value. Largest: 2112 S ARCHER AVE, $158,000. Chicago publishes no site ZIP; use community area.",
"summary": { "count": 41, "total_declared_value": 1204500, "declared_value_note": "...", "top": [ ... ], "data_quality_note": "..." },
"data": [ { "public_id": "chicago/B200517005", "address_std": "3740 N SAYRE AVE", "trade": "roofing", "trade_confidence": 0.9, "trade_method": "rule", "declared_value": 23762, "declared_value_flag": "ok", ... } ],
"coverage": { "jurisdictions": [ { "slug": "chicago", "status": "ok", "refresh_cadence": "daily", "weekly_volume": 620, ... } ], "not_included": [ "site ZIP (Chicago publishes none)" ] },
"derived": [ "address_std", "contractor_id" ],
"data_quality_note": "4 of 41 permits have no reliable declared value and are excluded from the total"
}