About whitetape
whitetape provides U.S. building-permit data as structured rows containing permit, property, and contractor details, but no homeowner names. It is for AI assistants and developers querying permit data, with free search and counts and an MCP interface for permit records.
Key features
- 01Search permit data by area
- 02Count records by state and trade
- 03Query structured permit rows
- 04Read new rows incrementally with a cursor
Use cases
- 01Find building permits in a specific area
- 02Filter permits by trades such as roofing
- 03Retrieve new permit rows on a schedule
MCP support
The MCP installation exposes `search`, `count`, and `permits` tools for search, counts, and permit records. The MCP server does not spend from a wallet; paid rows are accessed through prepaid credit.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
uvx whitetapeWHITETAPE_CREDITSecretOptional. A prepaid link token from https://whitetape.io/credit/ so paid rows come off your balance; without it the ten free rows a month answer.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
3Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | No | |
| state | string | No |
Details
From the project READMEwhitetape
Permit data for AI assistants. Nationwide government-issued building permits as clean rows in one schema. Search free. The first ten rows a month are free with nothing asked. After that 7 cents a row, paid per call by wallet (x402, USDC on Base). No account, no key, no signup. Rows carry the permit, the property, and the contractor, never the homeowner.
pip install whitetape
from whitetape import search, count, permits
search("annapolis") # free: the areas held, with row counts
count(state="MD", trade="roofing") # free: {"count": 412, "price": 12.36, "price_per_row": 0.07}
rows = permits(state="MD", trade="roofing", since=0) # the first ten are free
rows["rows"][0]["contractor_name"] # the builder who pulled it
Daily, with no row twice:
from whitetape import rows_since
cursor = 0 # keep the last cursor between runs
for row, cursor in rows_since(state="MD", trade="roofing", cursor=cursor):
...
Paying for more than ten
By card, once: buy a prepaid link at https://whitetape.io/credit/ ($20 is 400 rows) and put its token in the environment. No account.
export WHITETAPE_CREDIT=wt_…
By wallet, per call:
pip install "whitetape[pay]"
export WHITETAPE_WALLET_KEY=<the private key of a THROWAWAY Base wallet, funded with only what you mean to spend>
export WHITETAPE_MAX_USD=5 # the most one call may spend; default 5
export WHITETAPE_MAX_USD_TOTAL=20 # the most this process may spend in all; default 20
The payment happens inside the call. The key sits in your process's environment, where any package or tool in that process can read it: never a main wallet. The API address is pinned to api.whitetape.io; a 402 from anywhere else is never paid. The 402 door, for a program with no library: https://whitetape.io/402/
As an MCP server for Claude
pip install "whitetape[mcp]"
{"mcpServers": {"whitetape": {"command": "whitetape-mcp"}}}
Three tools: search, count, permits. The MCP server never spends a wallet: paid rows come only from a prepaid link in WHITETAPE_CREDIT (its balance is the worst case), at most WHITETAPE_MCP_MAX_ROWS a session, default 500.
Command line
whitetape search annapolis
whitetape count --state MD --trade roofing
whitetape rows --state MD --trade roofing --since 0
The schema
https://whitetape.io/schema.json. Trades: roofing, hvac, plumbing, electrical, solar, pool, fence, demolition, new_construction, remodel, windows_doors, garage_adu, fire.
Built and used by Monarc Build for its home-services clients. Questions: [email protected]
Who is behind it
Monarc Build, LLC, Annapolis, Maryland, doing business as White Tape. Terms: https://whitetape.io/terms/. Privacy: https://whitetape.io/privacy/. Rows never carry the homeowner's or the applicant's name, and an owner-builder permit, where the homeowner is the contractor of record, is never sold. Calling the contractors on the rows is on you: follow the telemarketing and do-not-call rules where you call.
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.