king-county-permit-status
Live permit history + status for any King County, WA address, parcel or permit number. Read-only.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"king-county-permit-status": {
"url": "https://permits-api.secondlandings.ai/mcp"
}
}
}Remote-Endpunkte
https://permits-api.secondlandings.ai/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (1)
🟢king_county_permit_status(query, limit, since, types)
Look up building permit history and status for any King County, WA property. Accepts a street address, 10-digit parcel number, or permit number. Live sources: MyBuildingPermit (14 cities + unincorporated King County), Seattle and Bellevue open data, Renton EnerGov, Redmond Civic Access, Shoreline eTRAKiT, Woodinville + King County Accela, Normandy Park and Carnation SmartGov, SeaTac LAMA, WA State L&I (electrical), plus the King County Assessor's issued-permit index for every parcel (covers the 19 cities without a public portal; history only, no status). Jurisdiction is derived from the city-limits polygon, not the mailing city. Returns all matching permits sorted newest-first. Use for due diligence, permit tracking, or verifying contractor pull history.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "One of: street address ('1817 Morris Ave S, Renton WA 98055'), 10-digit parcel number (plain '7222000353' or formatted '722200-0353'), or permit number ('B25000947', 'ADDC21-0275', '23-127651-LP', '6145915-CN'). Input type is auto-detected."
},
"limit": {
"type": "integer",
"minimum": 0,
"default": 50,
"description": "Max permits to return (newest first). summary always covers the whole matched set, so start small and raise only if you need the rows."
},
"since": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only permits applied/issued on or after this date (YYYY-MM-DD)."
},
"types": {
"type": "array",
"items": {
"type": "string"
},
"description": "Case-insensitive substrings matched against each permit's type, e.g. ['electrical', 'mechanical']."
}
},
"required": [
"query"
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"found",
"none",
"refine",
"reject"
],
"description": "found — permits[] is populated; none — no permits found; refine — connection issue, retry; reject — bad input"
},
"permit_count": {
"type": "integer",
"description": "Unique permits found before any since/types filter (= summary.total)"
},
"summary": {
"type": "object",
"description": "Computed over every permit matching since/types (not just the returned rows): total, matched, returned, truncated, open, closed, status_unknown, by_type, by_status, by_year, years [oldest, newest], latest {permit_number,type,status,date,jurisdiction}. Answer from this; drill into permits only when you need rows."
},
"filters": {
"type": "object",
"description": "The limit/since/types that produced this response"
},
"permits": {
"type": "array",
"description": "Up to `limit` permit records, newest first (applied_date, else issued_date).",
"items": {
"type": "object",
"properties": {
"permit_number": {
"type": "string"
},
"type": {
"type": "string",
"description": "Permit category (e.g. 'Residential Electrical Permit')"
},
"status": {
"type": "string",
"description": "e.g. Issued, Complete, On Hold, Withdrawn, Expired"
},
"description": {
"type": "string",
"description": "Scope of work"
},
"address": {
"type": "string"
},
"jurisdiction": {
"type": "string"
},
"applied_date": {
"type": [
"string",
"null"
],
"description": "YYYY-MM-DD"
},
"issued_date": {
"type": [
"string",
"null"
],
"description": "YYYY-MM-DD"
},
"finaled_date": {
"type": [
"string",
"null"
],
"description": "YYYY-MM-DD"
},
"expires_date": {
"type": [
"string",
"null"
],
"description": "YYYY-MM-DD"
},
"portal": {
"type": [
"string",
"null"
],
"description": "Source permit or portal URL when available"
},
"record_url": {
"type": [
"string",
"null"
],
"description": "URL of this specific permit record when the source exposes one; null when portal is only a search page"
},
"is_open": {
"type": [
"boolean",
"null"
],
"description": "Normalized across vendor status vocabularies: false when finaled/closed/expired/withdrawn/etc., null when the source exposes no status"
}
}
}
},
"trust_level": {
"type": "string",
"enum": [
"live",
"partial",
"fallback"
],
"description": "live — every applicable source answered; partial — a source errored or hit its result cap (see errors); fallback — nothing searchable, use next_step. A city needing manual follow-up (next_step) does not by itself lower trust."
},
"fetched_at": {
"type": "string",
"description": "UTC ISO-8601 timestamp of this query; records are live, not cached"
},
"parcel_id": {
"type": [
"string",
"null"
],
"description": "County-namespaced parcel id, e.g. 'king:7222000353' or 'pierce:5985002900', when the query was or resolved to a parcel"
},
"jurisdiction": {
"type": "object",
"description": "Which authority the query was routed to and why. basis: city-limits (geocoded point inside the city's polygon — authoritative), geocoder-city (locator's city, outside King County's polygon layer), address-text (the mailing city in the query), null (none). unincorporated=true means county permits only.",
"properties": {
"city": {
"type": [
"string",
"null"
]
},
"basis": {
"type": [
"string",
"null"
],
"enum": [
"city-limits",
"geocoder-city",
"address-text",
null
]
},
"county": {
"type": [
"string",
"null"
]
},
"unincorporated": {
"type": [
"boolean",
"null"
]
}
}
},
"address_resolution": {
"type": "object",
"description": "How well the geocoder matched an address query. match_type: point (exact address point), interpolated (number placed along the street; no parcel), street (street only). partial_match is true for anything but point; street_number_snapped when the matched house number differs from the one given.",
"properties": {
"matched_address": {
"type": [
"string",
"null"
]
},
"score": {
"type": "number"
},
"match_type": {
"type": "string",
"enum": [
"point",
"interpolated",
"street"
]
},
"partial_match": {
"type": "boolean"
},
"street_number_snapped": {
"type": "boolean"
},
"parcel_basis": {
"type": [
"string",
"null"
],
"enum": [
"address-point",
"parcel-polygon",
"nearby-parcel",
null
],
"description": "How the parcel was found: the locator's address point; the parcel polygon under an interpolated point; or the nearest parcel within 40 ft (check candidate_parcels)"
},
"candidate_parcels": {
"type": "array",
"items": {
"type": "string"
},
"description": "Present when several parcels sit within 40 ft of an interpolated point; the first was used"
}
}
},
"cite_as": {
"type": "string",
"description": "One-line attribution string for generated text"
},
"searched": {
"type": "array",
"items": {
"type": "string"
},
"description": "Jurisdictions searched (e.g. ['King County', 'Renton (EnerGov)'])."
},
"separate_portal": {
"type": "object",
"description": "Present when manual follow-up at a city portal is needed, including when a live city search is incomplete. Includes city, portal URL, note."
},
"next_step": {
"type": "object",
"description": "Structured twin of separate_portal: the exact follow-up an agent can take. kind=manual_portal_search; reason in no_feed|electrical_only|parcel_resolution_failed|source_incomplete; portal_url (the portal's search page when known); vendor; search_by (inputs that page accepts, empty when login-gated); query/query_type to re-use; covers_electrical; hint.",
"properties": {
"kind": {
"type": "string",
"enum": [
"manual_portal_search"
]
},
"reason": {
"type": "string",
"enum": [
"no_feed",
"electrical_only",
"parcel_resolution_failed",
"source_incomplete"
]
},
"city": {
"type": [
"string",
"null"
]
},
"portal_url": {
"type": [
"string",
"null"
]
},
"vendor": {
"type": [
"string",
"null"
]
},
"search_by": {
"type": "array",
"items": {
"type": "string",
"enum": [
"address",
"permit",
"parcel"
]
}
},
"query": {
"type": "string"
},
"query_type": {
"type": "string",
"enum": [
"address",
"parcel",
"permit"
]
},
"covers_electrical": {
"type": "boolean"
},
"hint": {
"type": "string"
}
}
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Source errors when a search is incomplete; may accompany permits from sources that succeeded."
},
"message": {
"type": "string"
}
},
"required": [
"action",
"message"
]
}Community
Nachweis