Look up building permit status for King County, WA — searches across city + county jurisdictions. Agent-friendly: --pipe, --schema, tool.json.
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
- !No standard license detected
claude mcp add king-county-permit-status -- uvx king-county-permit-status{
"mcpServers": {
"king-county-permit-status": {
"command": "uvx",
"args": ["king-county-permit-status"]
}
}
}MCP Servers overview
# 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.
<!-- BEGIN COVERAGE (generated by scripts/gen_scorecard.py) -->
**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.
<!-- END COVERAGE -->
```bash
python3 lookup.py "27927 E Main St" # by address
python3 lookup.py "7222000353" # by parcel number
python3 lookup.py "B25000947" # by permit number
python3 lookup.py "23-127651-LP" # Bellevue permit number
python3 lookup.py "6145915-CN" # Seattle SDCI permit number
python3 lookup.py --pipe "27927 E Main St" # agent pipeline mode
python3 lookup.py --schema # print tool definition
```
### 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`):
| | |
|---|---|
| **MCP** (Streamable HTTP) | `POST https://permits-api.secondlandings.ai/mcp` — tool `king_county_permit_status`, arg `query` |
| **REST** | `GET https://permits-api.secondlandings.ai/api/lookup?q=1817+Morris+Ave+S,+Renton+WA` |
| **OpenAPI 3.1** (typed) | `/openapi.json` · agent orientation `/llms.txt` · CLI definition `/tool.json` · `/healthz` |
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
```json
{
"action": "found",
"permit_count": 2,
"searched": ["Renton (EnerGov)"],
"permits": [
{
"permit_number": "E26000458",
"type": "Residential Electrical Permit",
"status": "Issued",
"description": "Electrical Work (Garage & Garage Exterior): ...",
"address": "1817 Morris Ave S Renton WA 98055",
"jurisdiction": "Renton",
"applied_date": "2026-01-28",
"issued_date": "2026-01-28",
"finaled_date": null,
"expires_date": "2027-07-27",
"portal": "https://permitting.rentonwa.gov",
"record_url": null,
"is_open": true
}
],
"trust_level": "live",
"fetched_at": "2026-10-08T19:02:11+00:00",
"parcel_id": "king:7222000353",
"cite_as": "King County Permit Status (github.com/chaoz23/king-county-permit-status), queried 2026-10-08 via Renton (EnerGov)"
}
```
| Field | Description |
|---|---|
| `action` | `found` (permits returned), `none` (no matches), `refine` (connection issue) |
| `permit_count` | Number of unique permits found |
| `permits` | Array sorted newest `applied_date` first |
| `searched` | Which jurisdictions were searched |
| `separate_portal` | If the city has an unsupported portal: city name + URL + prose note |
| `next_step` | Structured twin of `separate_portal` for agents: `kind: manual_portal_search`, `reason` (`no_feed` / `electrical_only` / `parcel_resolution_failed` / `source_incomplete`), `portal_url` (the portal's actual search page when known — PermitTrax, LAMA, OpenGov, Kent), `vendor`, `search_by` (inputs that page accepts; empty when login-gated), `query`, `query_type`, `covers_electrical`, `hint` |
| `errors` | Source errors when a search is incomplete; may accompany permits from successful sources |
| `trust_level` | `live` (every applicable source answered), `partial` (a source errored or a portal needs manual follow-up), `fallback` (nothing searchable) |
| `fetched_at` | UTC timestamp of the query — records are live, never cached |
| `parcel_id` | County-namespaced parcel, e.g. `king:7222000353` or `pierce:5985002900`, when the query was or resolved to a parcel |
| `jurisdiction` | Where the query was routed and why: `city`, `basis` (`city-limits` = the geocoded point falls inside that city's polygon — authoritative; `geocoder-city`; `address-text` = the mailing city in the query, used only when geocoding fails), `county`, `unincorporated` (true → county permits only, even if the mailing city says "Kent") |
| `address_resolution` | How well the geocoder matched an address: `matched_address`, `score`, `match_type` (`point` = exact address point; `interpolated` = number placed along the street, no parcel; `street`), `partial_match`, `street_number_snapped` |
| `cite_as` | One-line attribution string for generated text |
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
| Source | Cities / scope |
|---|---|
| [MyBuildingPermit.com](https://permitsearch.mybuildingpermit.com/) | Auburn, Bellevue, Bothell, Burien, Edmonds, Federal Way, Issaquah, Kenmore, **King County** (unincorporated), Kirkland, Mercer Island, Mill Creek, Newcastle, Sammamish, Snoqualmie |
| Bellevue Open Data (live ArcGIS API) | Daily Bellevue permit snapshot (1998+) for address, parcel, and permit-number searches |
| Seattle Open Data (live Socrata APIs) | Building, electrical, trade, and land-use permits for Seattle address and permit-number searches |
| Renton EnerGov (live API) | All Renton permit types including electrical |
| Redmond EnerGov Civic Access (live API) | All Redmond permit types including electrical, for address, parcel, and permit-number searches |
| Accela Citizen Access (live) | Woodinville, and King County's own agency for unincorporated addresses (older history, enforcement and electrical records that MyBuildingPermit lacks), for address, parcel, and permit-number searches |
| SmartGov (live) | Normandy Park and Carnation, for address, parcel, and permit-number searches |
| King County Assessor parcel index | Issued-permit history (number, type, description, issue date, value, **issuing city**) for every King County parcel — the only source for the 19 cities without a public portal. It is what cities report for *valuation*: building/remodel/addition permits (some electrical), dense since ~2023 and thin before, back to the late 1990s; never trade sub-permits or inspections, and no status. Address queries use the geocoded parcel, parcel queries use it directly |
| LAMA (live) | SeaTac, for address and permit-number searches (incl. SeaTac's self-run electrical; parcel search not offered by the portal; capped at 200 newest per query) |
| Shoreline eTRAKiT (live) | Building, mechanical/plumbing, and land-use permits for Shoreline address, parcel, and permit-number searches (status/description not exposed by the portal's search) |
| WA State L&I | Electrical permits for cities not handling their own (2020+) |
<!-- BEGIN SCORECARD (generated by scripts/gen_scorecard.py) -->
### 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
| City | Status | Source | Health | Building | Electrical | Mech/Plumb | Land Use |
|---|---|---|---|---|---|---|---|
| Algona | 🟠 Indexed | KC Assessor index | ✅ | 🗂️ index | ➖ L&I | 🗂️ index | 🗂️ index |
| Auburn | 🟢 Live | MyBuildingPermit | ✅ | ✅ | ➖ L&I | ✅ | ✅ |
| Beaux Arts Village | 🟠 Indexed | KC Assessor index | ✅ | 🗂️ index | ➖ L&I | 🗂️ index | 🗂️ index |
| Bellevue | 🟢 Live | Bellevue (Open Data) | ✅ | ✅ | ✅ | ✅ | ✅ |
| Black Diamond | 🟠 Indexed | KC Assessor index | ✅ | 🗂️ index | ➖ L&I | 🗂️ index | 🗂️ index |
| Bothell | 🟢 Live | MyBuildingPermit | ✅ | ✅ | ➖ L&I | ✅ | ✅ |
| Burien | 🟢 Live | MyBuildingPermit | ✅ | ✅ | ✅ | ✅ | ✅ |
| Carnation | 🟢 Live | Carnation (SmartGov) | ✅ | ✅ | ➖ L&I | ✅ | ✅ |
| Clyde Hill | 🟠 Indexed | KC Assessor index | ✅ | 🗂️ index | ➖ L&I | 🗂️ index | 🗂️ index |
| Covington | 🟠 Indexed | KC Assessor index | ✅ | 🗂️ index | ➖ L&I | 🗂️ index | 🗂️ index |
| Des Moines | 🟠 Indexed | KC Assessor index | ✅ | 🗂️ index | ⚠️ gap | 🗂️ index | 🗂️ index |
| Duvall | 🟠 Indexed | KC Assessor index | ✅ | 🗂️ index | ➖ L&I | 🗂️ index | 🗂️ index |
| Enumclaw | 🟠 Indexed | KC Assessor index | ✅ | 🗂️ index | ➖ L&I | 🗂️ index | 🗂️ index |
| Federal Way | 🟢 Live | MyBuildingPermit | ✅ | ✅ | ✅ | ✅ | ✅ |
| HuntWhat people ask about king-county-permit-status
What is chaoz23/king-county-permit-status?
+
chaoz23/king-county-permit-status is mcp servers for the Claude AI ecosystem. Look up building permit status for King County, WA — searches across city + county jurisdictions. Agent-friendly: --pipe, --schema, tool.json. It has 1 GitHub stars and its last recorded update is dated 2026-10-09.
How do I install king-county-permit-status?
+
You can install king-county-permit-status by cloning the repository (https://github.com/chaoz23/king-county-permit-status) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is chaoz23/king-county-permit-status safe to use?
+
Our security agent has analyzed chaoz23/king-county-permit-status and assigned a Trust Score of 70/100 (tier: OK). See the full breakdown of passed checks and flags on this page.
Who maintains chaoz23/king-county-permit-status?
+
chaoz23/king-county-permit-status is maintained by chaoz23. The last recorded GitHub activity is dated 2026-10-09, with 12 open issues.
Are there alternatives to king-county-permit-status?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy king-county-permit-status to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/chaoz23-king-county-permit-status)<a href="https://claudewave.com/repo/chaoz23-king-county-permit-status"><img src="https://claudewave.com/api/badge/chaoz23-king-county-permit-status" alt="Featured on ClaudeWave: chaoz23/king-county-permit-status" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
The fastest path to AI-powered full stack observability, even for lean teams.