king-county-permit-status
Live permit history + status for any King County, WA address, parcel or permit number. Read-only.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"king-county-permit-status": {
"url": "https://permits-api.secondlandings.ai/mcp"
}
}
}远程端点
https://permits-api.secondlandings.ai/mcpstreamable-http它能做什么
工具清单
工具(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.
输入模式
{
"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"
]
}输出模式
{
"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"
]
}社区
证据