Skip to main content
ClaudeWave
chaoz23 avatar
chaoz23

king-county-permit-status

View on GitHub

Look up building permit status for King County, WA — searches across city + county jurisdictions. Agent-friendly: --pipe, --schema, tool.json.

MCP ServersOfficial Registry1 stars0 forks● PythonUpdated today
ClaudeWave Trust Score
70/100
· OK
Passed
  • ✓Actively maintained (<30d)
  • ✓Clear description
  • ✓Topics declared
  • ✓Documented (README)
Flags
  • !No standard license detected
Last scanned: 10/10/2026
Install in Claude Code / Claude Desktop
Method: UVX (Python) · king-county-permit-status
Claude Code CLI
claude mcp add king-county-permit-status -- uvx king-county-permit-status
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "king-county-permit-status": {
      "command": "uvx",
      "args": ["king-county-permit-status"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Package name inferred from the repository name. Verify it exists on PyPI, or clone https://github.com/chaoz23/king-county-permit-status and follow its README.
Use cases

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 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Hunt
agent-toolscivic-datacivic-techking-countymcpmcp-serverpermitstool-usewashington-state

What 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.

Featured on ClaudeWave: chaoz23/king-county-permit-status
[![Featured on ClaudeWave](https://claudewave.com/api/badge/chaoz23-king-county-permit-status)](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>