About permits
permits is a read-only MCP server for AddressIntel’s San Francisco Peninsula permit and parcel-buildability data. It helps property professionals investigate SB 9, ADU, redevelopment, and property signals.
Key features
- 01Search permits by address or city
- 02Find parcels eligible for SB 9
- 03Locate ADU development leads
- 04Identify redevelopment opportunities
- 05Review property scores and comparable sales
Use cases
- 01Find demolition permits in Menlo Park
- 02Screen listings for SB 9 eligibility
- 03Assess a parcel’s ADU capacity
- 04Compare properties for redevelopment potential
MCP support
The read-only MCP server exposes tools for permit searches, parcel screening, market signals, and property intelligence. All tools make GET requests to the AddressIntel API and cannot write data.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y addressintel-mcpADDRESSINTEL_API_KEYSecretAddressIntel API key. Optional: without one the server uses the public demo tier (10 requests/minute, 5 rows per call). Free keys at https://addressintel.co/developersLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
6Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | No | Keyword matched against address, project type, scope description, contractor, architect and permit number, e.g. 'demolition' or '123 Main St'. |
| city | string | No | City name, e.g. 'Menlo Park'. Partial matches allowed. |
| limit | number | No | Max rows to return. Clamped to your API key's tier ceiling. |
| offset | number | No | Row offset for paging. |
| minValuation | number | No | Only permits valued at or above this dollar amount. |
Details
From the project READMEAddressIntel MCP server
A read-only Model Context Protocol server that puts SF Peninsula building-permit and parcel-buildability data inside Claude, ChatGPT, or any other MCP-capable agent.
It is a thin client over the public AddressIntel API, so it inherits that API's auth,
rate limits and tier ceilings. Every tool is a GET. Nothing here can write.
Tools
| Tool | What it answers |
|---|---|
search_permits | What construction has actually been permitted at an address or in a city? Filters on city, keyword (address, project type, scope description, contractor, architect, permit number) and minimum valuation. |
list_sb9_inventory | Which active listings can be split or duplexed under SB 9, and what blocks the ones that can't? |
list_adu_leads | Which parcels have room for an ADU, and how many units / how much square footage? |
list_redevelopment_leads | Which parcels are underbuilt against their allowable envelope (scrape-and-rebuild or expansion)? |
list_market_signals | Which listings score highest for teardown or flip potential? |
get_property_intelligence | Full scores and comparable sales for one property id. |
The permit and parcel tools are the differentiated half: permit-level detail and parcel-level buildability for the Peninsula, rather than a nationwide owner list.
Install
No install step: npx fetches it on demand.
Claude Code
claude mcp add addressintel \
-e ADDRESSINTEL_API_KEY=your_key \
-- npx -y addressintel-mcp
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"addressintel": {
"command": "npx",
"args": ["-y", "addressintel-mcp"],
"env": {
"ADDRESSINTEL_API_KEY": "your_key"
}
}
}
}
From source
For working on the server itself:
git clone https://github.com/RantumBits/addressintel-mcp.git
cd addressintel-mcp
npm install
npm run build # emits dist/index.js
Then point the client at node /absolute/path/to/addressintel-mcp/dist/index.js instead of
the npx command above.
Restart the client, then ask it something like "what demolition permits were issued in Menlo Park this year?" or "which Palo Alto listings are SB 9 eligible?"
Configuration
| Variable | Default | Notes |
|---|---|---|
ADDRESSINTEL_API_KEY | demo | Without a key the server uses the public demo tier: 10 requests/minute, 5 rows per call. Grab a free key at https://addressintel.co/developers for 30/min and 25 rows; the key is emailed to the address you enter. |
ADDRESSINTEL_API_BASE | https://addressintel.co/api | Point at a local dev server (http://localhost:3000/api) when working on the API. |
Development
npm run dev # run from source over stdio
node test_mcp.mjs # smoke test: connect, list tools, call one
Tools are declared in one table in src/index.ts. Each entry carries its zod schema and
its advertised JSON Schema side by side, so adding a tool means adding one entry, and the
two shapes cannot drift apart.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.