
King County Permit Status
io.github.chaoz23v1.0.0Updated Oct 9, 2026
Live permit history + status for any King County, WA address, parcel or permit number. Read-only.
Overview
Looks up live building permit history and status for King County, WA addresses, parcels, or permit numbers.
- What it does
- Exposes one read-only tool, king_county_permit_status, that takes a street address, 10-digit parcel number, or permit number and returns matching permits with type, status, dates, jurisdiction, and portal links. Addresses are geocoded and routed by city-limits geometry rather than mailing city, and parcel searches query every supported portal. Results include a trust level, the jurisdictions searched, and a next_step fallback pointing to a municipal portal when no live feed exists.
- When to use it
- Useful when an assistant needs permit history or current permit status for a specific King County, WA property, for example during due diligence, renovation planning, or contractor research. Coverage is live for 20 of 39 cities plus unincorporated King County; the remaining cities return Assessor-indexed issued-permit history without status.
- Requirements
- Remote Streamable HTTP endpoint at permits-api.secondlandings.ai; no authentication, API key, or environment variable is declared. Running the lookup locally instead needs Python 3.10+ (standard library only) and network access to the municipal permit sources.
Installation
In SourceWeft
- Open King County Permit Status in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"king-county-permit-status": {
"type": "http",
"url": "https://permits-api.secondlandings.ai/mcp"
}
}
}README
King County Permit Status
Look up building permit history and status across King County, WA jurisdictions — county-level permits (septic, critical areas, grading) and city-level permits (building, mechanical, electrical) can all apply to the same address. Coverage is live where a jurisdiction offers an open permit feed, and falls back to the correct municipal portal link everywhere else.
Coverage today: 🟢 20/39 cities live (status + history) · 🟠 19/39 indexed (issued-permit history from the King County Assessor; current status needs the city portal, which next_step names) · plus unincorporated King County. See the coverage scorecard below for the per-city breakdown.
Hosted API + MCP (no install)
The same lookup is served read-only, no auth, from permits-api.secondlandings.ai
(server.py, zero dependencies; see deploy/README.md):
Results are live; the server caches each query for 15 minutes and rate-limits
per client (30/min) to protect the municipal portals. Run it yourself with
python3 server.py or docker compose up — server.json is the MCP Registry manifest.
Parcel-number searches query every supported MyBuildingPermit and live city portal because a bare parcel number does not identify its city jurisdiction.
Address searches are routed by geometry, not the mailing city: the address
is geocoded with King County's four-county locator and the point is tested
against the city-limits polygons. A "Kent, WA" address that sits in
unincorporated King County is searched as county, not Kent; an address with no
city in it is routed correctly instead of fanning out to every jurisdiction; and
Pierce-side addresses of Milton/Pacific/Auburn get a pierce: parcel id. The
mailing city is only used when geocoding fails (jurisdiction.basis says which).
What you get
Per permit: permit_number, type, status, is_open (normalized across vendor status vocabularies; null when the source exposes no status), description, address, jurisdiction, applied_date, issued_date, finaled_date, expires_date, portal, record_url (the specific record's URL when the source exposes one).
Multi-jurisdiction coverage
Coverage scorecard
Auto-generated from routing_data.json (python3 scripts/gen_scorecard.py --write). One row per King County city.
Legend — ✅ live (status + history) · 🗂️ index (valuation-reported building history from the King County Assessor's parcel index — no status, no sub-permits, dense since ~2023) · ➖ L&I electrical only (2020+) · ⚠️ gap (city self-runs electrical, not yet integrated)
Health = last weekly live probe of the city's source (scripts/source_health.py, 2026-10-09): ✅ answered with records · ⚪ answered, zero rows for a known-good query · ⛔ blocked (403) · ❌ down · ❔ unchecked · — no live source
Coverage: 20/39 live · 19/39 indexed (issued history via the Assessor; status needs the city portal). Plus King County (unincorporated) for county-level permits (septic, critical areas, grading).
⚠️ Electrical gaps: Des Moines, Milton, Tukwila. These cities self-run their electrical program (so L&I is skipped) and are not on MyBuildingPermit, leaving their electrical permits in no feed we search. MBP cities that self-run electrical (Burien, Federal Way, Kirkland, Mercer Island, Sammamish) are not gaps — verified 2026-07-15 that MBP carries their electrical history. Closing the remaining gaps is tracked in the coverage epic.
ℹ️ Split-county cities: Milton (mostly Pierce), Pacific and Auburn straddle the King/Pierce line. Each city issues its own permits for the whole city, so the row above applies to both sides; only county-level permits (septic, critical areas) differ — Pierce County's portal is not searched. Parcel ids are county-namespaced (
king:…) for this reason.
All 39 incorporated King County cities are recognized. Cities outside the searchable sources are flagged with their municipal portal URL rather than being treated as unincorporated King County.
For comma-separated addresses, the locality component takes precedence over
city names that also appear in streets (for example, Kent Kangley Rd, Covington). If a Renton address cannot be resolved to a parcel for its live
EnerGov search, the result retains Renton's portal as an actionable fallback.
Seattle address and exact permit-number searches query all four official SDCI
Open Data datasets; parcel-only Seattle lookup is not yet supported.
Kent's official permit-status page currently requires users to sign in to the
city portal, so Kent results include that page as a manual fallback.
Exit codes
For agents
tool.json at the repo root contains the full tool definition in Anthropic/OpenAI tool-call format. An agent can load it directly or fetch the live version:
Pipeline pattern:
Related tools in this series:
king-county-address-to-parcel-number— resolve an address to its parcel numberwa-contractor-license— verify WA contractor license status and violationsking-county-property-tax-appeal— build a filing-ready tax appeal packet
Requirements
- Python 3.10+ (stdlib only, no dependencies)
- Network access to
permitsearch.mybuildingpermit.com,services1.arcgis.com,permitting.rentonwa.gov,secure.lni.wa.gov
Development
Run the network-free regression suite with:
License
MIT
Source: README.md at commit 9daf7e3
Tools
0Version history
1- v1.0.0LatestOct 9, 2026
