king-county-permit-status について
King County, WAの住所、地番、許可番号から建築許可の状況と履歴を調べる読み取り専用サービスです。郡と市のデータソースを組み合わせ、ライブデータがない管轄区域では該当ポータルと次の手順を案内します。
主な機能
- 01住所、地番、許可番号で検索
- 02許可状況、種類、期間の集計
- 03日付と許可種類による絞り込み
- 04検索した管轄区域とデータソースの表示
- 05ライブデータがない場合のポータル案内
活用シーン
- 01住所から建築許可履歴を確認
- 02地番に関連する許可と未完了状況の確認
- 03ライブデータがない管轄区域で市のポータルを利用
MCP 対応
ホスト型サービスは、Streamable HTTP経由で読み取り専用ツール `king_county_permit_status` を提供します。MCPクライアントは `https://permits-api.secondlandings.ai/mcp` に接続できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://permits-api.secondlandings.ai/mcpclaude mcp add --transport http chaoz23-king-county-permit-status https://permits-api.secondlandings.ai/mcp{"mcpServers":{"chaoz23-king-county-permit-status":{"type":"http","url":"https://permits-api.secondlandings.ai/mcp"}}}Cursor で開く{"servers":{"chaoz23-king-county-permit-status":{"type":"http","url":"https://permits-api.secondlandings.ai/mcp"}}}VS Code で開く{"mcpServers":{"chaoz23-king-county-permit-status":{"type":"http","url":"https://permits-api.secondlandings.ai/mcp"}}}{"mcpServers":{"chaoz23-king-county-permit-status":{"serverUrl":"https://permits-api.secondlandings.ai/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
1| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 返す許可の最大数(新しい順)。summary は常に一致する全件を対象とするため、まず小さな値を指定し、行データが必要な場合にのみ増やしてください。 |
| query | string | いいえ | 次のいずれか:住所('1817 Morris Ave S, Renton WA 98055')、10 桁の区画番号(通常形式 '7222000353' または書式付き '722200-0353')、許可番号('B25000947'、'ADDC21-0275'、'23-127651-LP'、'6145915-CN')。入力タイプは自動検出されます。 |
| since | string | いいえ | この日付以降に申請/発行された許可のみ(YYYY-MM-DD)。 |
| types | array | いいえ | 各許可のタイプに対し、大文字と小文字を区別せず部分文字列で照合します。例:['electrical', 'mechanical']。 |
| license | string | いいえ | WA L&I の請負業者ライセンス番号。同じ検索をライセンス番号で行います。query の代わりに使用します。 |
| contractor | string | いいえ | 請負業者の会社名(部分文字列)。MyBuildingPermit 対象都市で申請した許可を返します。query の代わりに使用します。 |
詳細
King County の許可状況
ワシントン州 King County の各管轄区域における建築許可の履歴と状況を確認できます。郡レベルの許可(浄化槽、重要区域、造成)と市レベルの許可(建築、機械、電気)は、同じ住所に適用される場合があります。管轄区域が許可情報を公開フィードで提供している場合は最新情報を確認でき、それ以外の場所では適切な自治体ポータルへのリンクに切り替わります。
現在の対応状況: 🟢 20/39 市で最新情報に対応(状況+履歴) · 🟠 19/39 市でインデックスを提供(King County Assessor の発行済み許可履歴。現在の状況は市のポータルで確認する必要があり、そのポータルは next_step に記載) · さらに、法人化されていない King County にも対応しています。市ごとの内訳は、以下の対応状況一覧をご覧ください。
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 --limit 10 --since 2020-01-01 --type electrical "27927 E Main St" # shape: newest 10 electrical since 2020
python3 lookup.py --all "27927 E Main St" # every permit (default is the 50 newest + a summary of all)
python3 lookup.py --schema # print tool definition
ホステッド API + MCP(インストール不要)
同じ検索機能を、認証不要の読み取り専用 API として permits-api.secondlandings.ai
(server.py、依存関係ゼロ。deploy/README.md を参照)から利用できます。
| MCP(Streamable HTTP) | POST https://permits-api.secondlandings.ai/mcp — ツール king_county_permit_status、引数 query |
| REST | GET https://permits-api.secondlandings.ai/api/lookup?q=1817+Morris+Ave+S,+Renton+WA — limit、since=YYYY-MM-DD、types=electrical,mechanical は任意 |
| ベンダーマップ | /vendor-map(および /vendor-map.json)— 39 市それぞれが利用している許可システム、その検索方法または検索できない理由、電気工事の管轄機関、種類ごとのルーティング。アダプター設定から生成されます(scripts/gen_vendor_map.py、docs/vendor-map.md にも記載) |
| OpenAPI 3.1(型付き) | /openapi.json · エージェント向けガイド /llms.txt · CLI 定義 /tool.json · /healthz |
結果は最新情報です。サーバーは各クエリを 15 分間キャッシュし、自治体ポータルを保護するため、クライアントごとにレート制限(30 回/分)を適用します。既知のホステッド環境限定の制約: Tyler のホステッド Civic Access(Redmond)はデータセンターの IP アドレスに 403 を返します。そのため、ホステッドエンドポイントから Redmond を検索すると、最新の Redmond 記録の代わりに Assessor のインデックスと reason: source_blocked を含む next_step が返されます。この場合は lookup.py をローカルで実行してください。その他のすべての情報源は droplet から応答します。python3 server.py または docker compose up で自分で実行できます。server.json は MCP Registry のマニフェストです。
区画番号による検索では、区画番号だけでは市の管轄区域を特定できないため、対応しているすべての MyBuildingPermit と最新情報を提供する市のポータルを検索します。
住所検索は郵送先の市ではなく地理情報を基準にルーティングされます。住所は King County の 4 郡ロケーターでジオコーディングされ、地点が市域ポリゴンと照合されます。「Kent, WA」と記載された住所が法人化されていない King County にある場合は、Kent ではなく郡として検索されます。市名を含まない住所も、すべての管轄区域に一斉に問い合わせるのではなく、正しくルーティングされます。Milton、Pacific、Auburn の Pierce County 側の住所には pierce: 区画 ID が付与されます。郵送先の市が使用されるのは、ジオコーディングに失敗した場合のみです(jurisdiction.basis でどちらが使用されたか確認できます)。
取得できる情報
{
"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)"
}
| フィールド | 説明 |
|---|---|
action | found(許可証が返された)、none(一致なし)、refine(接続に関する問題) |
permit_count | フィルター適用前に見つかった一意の許可証の数(=summary.total) |
summary | まずこの情報から回答してください。 返された行だけでなく、since/types に一致するすべての許可証を対象に算出されます:total、matched、returned、truncated、open、closed、status_unknown、by_type、by_status、by_year、years [oldest, newest]、latest |
permits | 最大 limit 件のレコード(デフォルトは 50)、新しい順 — 商業用地の許可証356件は整形なしで約56kトークンになります。概要で全体像を把握できます |
filters | このレスポンスの生成に使われた limit/since/types |
searched | 検索対象となった管轄区域 |
separate_portal | 市が未対応のポータルを利用している場合:市名+URL+説明文 |
next_step | エージェント向けの separate_portal の構造化版:kind: manual_portal_search、reason(no_feed/electrical_only/parcel_resolution_failed/source_incomplete/source_blocked — 市のライブシステムがこのクライアントに403を返した場合)、portal_url(判明している場合はポータルの実際の検索ページ — PermitTrax、LAMA、OpenGov、Kent)、vendor、search_by(そのページで受け付ける入力。ログインが必要な場合は空)、query、query_type、covers_electrical、hint |
errors | 検索が不完全な場合のソースエラー。正常に応答したソースの許可証が含まれることもあります |
trust_level | live(該当するすべてのソースが応答)、partial(ソースでエラーが発生した、または結果上限に達した — errors を参照)、fallback(検索可能なものがなかった)。手動でポータルを開く必要がある市(next_step)は対象範囲に関する情報であり、信頼性を損なうものではないため、これを理由に評価を下げることはありません |
fetched_at | クエリのUTCタイムスタンプ — レコードはライブデータで、キャッシュされません |
parcel_id | 郡名を含む地番。例:クエリが地番に対して行われた場合、または地番に解決された場合の king:7222000353 や pierce:5985002900 |
jurisdiction | クエリの振り分け先とその理由:city、basis(city-limits = ジオコーディングされた地点が市の境界ポリゴン内にある — 信頼できる判定;geocoder-city;address-text = クエリ内の郵送先の市。ジオコーディングに失敗した場合のみ使用)、county、unincorporated(true → 郵送先の市が「Kent」となっていても、郡の許可証のみ) |
routing_by_type | 解決された場所における各種許可証の所在 — building、mechanical_plumbing、electrical、land_use、engineering_row、fire、grading、septic → {system, portal, live, note}。live: true はこのツールがそのシステムを検索したことを示します。それ以外の場合、portal が検索先です(例:浄化槽は常にKing County Public Health、電気工事は市が独自運営していない限りL&I) |
address_resolution | ジオコーダーによる住所の照合精度:matched_address、score、match_type(point = 正確な住所地点;interpolated = 通り沿いに番号を配置;street)、partial_match、street_number_snapped、parcel_basis(補間された地点の下または近くにある区画レイヤーからPINを取得した場合は address-point、parcel-polygon、nearby-parcel のいずれか — この場合、candidate_parcels に候補が列挙されます) |
cite_as | 生成テキストに付記する1行の出典表記 |
許可証ごとの項目:permit_number、type、status、is_open(週次で国勢調査データを使って検証されるヒューリスティック。ソースがステータスを公開していない場合は null)。これには is_open_basis(finaled_date = 確実、status-vocabulary = ベンダーのステータス表記に対する正規表現、null = 不明)、description、address、jurisdiction、applied_date、issued_date、finaled_date、expires_date、portal、record_url(ソースが公開している場合は個別レコードのURL)が含まれます。
複数の管轄区域をカバー
| ソース | 対象都市/範囲 |
|---|---|
| MyBuildingPermit.com | Auburn、Bellevue、Bothell、Burien、Edmonds、Federal Way、Issaquah、Kenmore、King County(未編入地域)、Kirkland、Mercer Island、Mill Creek、Newcastle、Sammamish、Snoqualmie |
| Bellevue Open Data(ライブ ArcGIS API) | Bellevue の許可情報の日次スナップショット(1998 年以降)。住所、地番、許可番号で検索できます |
| Seattle Open Data(ライブ Socrata API) | Seattle の住所と許可番号で、建築、電気、業種別工事、土地利用の許可を検索できます。地番での検索は、Assessor のサイト上の住所を介して行われます(データセットに地番の列はありません) |
| Renton EnerGov(ライブ API) | 電気工事を含む、Renton のすべての許可種別 |
| Redmond EnerGov Civic Access(ライブ API) | 電気工事を含む、Redmond のすべての許可種別。住所、地番、許可番号で検索できます |
| Accela Citizen Access(ライブ) | Woodinville、および未編入地域の住所を管轄する King County 自身の機関。住所、地番、許可番号で検索できます(MyBuildingPermit にはない古い履歴、取締記録、電気工事記録を含みます) |
| SmartGov(ライブ) | Normandy Park と Carnation。住所、地番、許可番号で検索できます |
| King County Assessor の地番インデックス | King County 内のすべての地番について、発行済み許可の履歴(番号、種別、説明、発行日、金額、発行した市)を確認できます。公開ポータルがない 19 市を対象とする唯一のソースです。市が評価額として報告した情報です。建築/改築/増築の許可(電気工事を含む場合あり)は 2023 年頃以降の情報が充実しており、それ以前は少なく、1990 年代後半まで遡ります。業種別工事の下位許可や検査は含まず、ステータスもありません。住所での検索にはジオコード化された地番を使用し、地番での検索には地番を直接使用します |
| LAMA(ライブ) | SeaTac。住所と許可番号で検索できます(SeaTac が独自に運営する電気工事の許可を含みます。ポータルでは地番検索を利用できません。クエリごとに新しいものから最大 200 件まで) |
| Shoreline eTRAKiT(ライブ) | Shoreline の住所、地番、許可番号で、建築、機械/配管、土地利用の許可を検索できます(ポータルの検索ではステータス/説明は公開されません) |
| WA State L&I | 独自に対応していない市の電気工事許可(2020 年以降) |
対応状況一覧
routing_data.json から自動生成されます(python3 scripts/gen_scorecard.py --write)。King County 内の各市につき 1 行です。
凡例 — ✅ ライブ(ステータス+履歴) · 🗂️ インデックス(評価額として報告された建築履歴。Building 欄の ✅/🗂️ の後の数値は、その市の QC 住所(qc_addresses.json を参照)における記録件数を示します。King County Assessor の地番インデックスに実際に含まれる記録の量を表します。ステータスなし、下位許可なし、2023 年頃以降の情報が充実) · ➖ L&I の電気工事のみ(2020 年以降) · ⚠️ 対応の空白(市が電気工事を独自に運営しており、まだ統合されていません)
稼働状況 = 各市のソースに対する直近の週次ライブプローブ(scripts/source_health.py、2026-10-26):✅ レコードを含む応答あり · ⚪ 既知の有効なクエリに対して 0 件の応答あり · ⛔ ブロック(403) · ❌ ダウン · ❔ 未確認 · — ライブソースなし
| 市 | 状態 | ソース | 健康 | 建築 | 電気 | 機械/配管 | 土地利用 |
|---|---|---|---|---|---|---|---|
| Algona | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 2 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Auburn | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 133 | ➖ L&I | ✅ | ✅ |
| Beaux Arts Village | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 5 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Bellevue | 🟢 稼働中 | Bellevue (Open Data) | ✅ | ✅ 360 | ✅ | ✅ | ✅ |
| Black Diamond | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 2 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Bothell | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 117 | ➖ L&I | ✅ | ✅ |
| Burien | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 27 | ✅ | ✅ | ✅ |
| Carnation | 🟢 稼働中 | Carnation (SmartGov) | ✅ | ✅ 2 | ➖ L&I | ✅ | ✅ |
| Clyde Hill | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 3 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Covington | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 24 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Des Moines | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 17 | ⚠️ 欠落 | 🗂️ インデックス | 🗂️ インデックス |
| Duvall | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 1 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Enumclaw | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 3 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Federal Way | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 120 | ✅ | ✅ | ✅ |
| Hunts Point | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 2 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Issaquah | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 57 | ➖ L&I | ✅ | ✅ |
| Kenmore | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 77 | ➖ L&I | ✅ | ✅ |
| Kent | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 7 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Kirkland | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 2 | ✅ | ✅ | ✅ |
| Lake Forest Park | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 1 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Maple Valley | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 8 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Medina | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 5 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Mercer Island | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 12 | ✅ | ✅ | ✅ |
| Milton | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 0 | ⚠️ 欠落 | 🗂️ インデックス | 🗂️ インデックス |
| Newcastle | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 85 | ➖ L&I | ✅ | ✅ |
| Normandy Park | 🟢 稼働中 | Normandy Park (SmartGov) | ✅ | ✅ 22 | ✅ | ✅ | ✅ |
| North Bend | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 2 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Pacific | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 8 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Redmond | 🟢 稼働中 | Redmond (EnerGov Civic Access) | ✅ | ✅ 32 | ✅ | ✅ | ✅ |
| Renton | 🟢 稼働中 | Renton (EnerGov) | ✅ | ✅ 24 | ✅ | ✅ | ✅ |
| Sammamish | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 11 | ✅ | ✅ | ✅ |
| SeaTac | 🟢 稼働中 | SeaTac (LAMA) | ✅ | ✅ 178 | ✅ | ✅ | ✅ |
| Seattle | 🟢 稼働中 | Seattle (SDCI Open Data) | ✅ | ✅ 131 | ✅ | ✅ | ✅ |
| Shoreline | 🟢 稼働中 | Shoreline (eTRAKiT) | ✅ | ✅ 53 | ➖ L&I | ✅ | ✅ |
| Skykomish | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 3 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| Snoqualmie | 🟢 稼働中 | MyBuildingPermit | ✅ | ✅ 57 | ➖ L&I | ✅ | ✅ |
| Tukwila | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 6 | ⚠️ 欠落 | 🗂️ インデックス | 🗂️ インデックス |
| Woodinville | 🟢 稼働中 | Woodinville (Accela) | ✅ | ✅ 9 | ➖ L&I | ✅ | ✅ |
| Yarrow Point | 🟠 インデックス済み | KC Assessor インデックス | ✅ | 🗂️ インデックス 1 | ➖ L&I | 🗂️ インデックス | 🗂️ インデックス |
| King County (未編入地域) | 🟢 稼働中 | MyBuildingPermit (King County) + KC Accela | ✅ | ✅ | ➖ L&I | ✅ | ✅ |
カバレッジ: 稼働中 20/39 · インデックス済み 19/39(Assessor 経由で発行履歴を確認可能。ステータスの確認には市のポータルが必要です)。さらに、郡レベルの許可(浄化槽、重要区域、造成)については King County(未編入地域) が対象です。
⚠️ 電気関連の空白地域: Des Moines、Milton、Tukwila。これらの都市は電気関連プログラムを独自に運営しているため(L&I は対象外)、MyBuildingPermit にも登録されておらず、電気関連の許可情報を検索できるフィードがありません。電気関連を独自に運営している MyBuildingPermit 対応都市(Burien、Federal Way、Kirkland、Mercer Island、Sammamish)は空白地域ではありません。2026-07-15 に、MyBuildingPermit に電気関連の履歴が登録されていることを確認済みです。残る空白地域への対応は、カバレッジエピックで管理されています。
ℹ️ 郡境にまたがる都市: Milton(大部分が Pierce)、Pacific、Auburn は King/Pierce 郡の境界にまたがっています。各都市は市域全体の許可を発行するため、ライブの行は両側に適用されます。ただし、🗂️ Assessor のインデックスは King 郡のものなので、インデックス登録済みの境界都市(Milton)では、King 郡側の土地だけにインデックス行があります。Pierce 郡側の住所にはポータルの案内のみが表示されます。Pierce 郡のポータルは検索対象ではありません。このため、土地 ID は郡ごとの名前空間(
king:…/pierce:…)を使用します。
King 郡内の法人化された全 39 都市を識別します。検索可能な情報源の対象外の都市は、未編入の King 郡として扱わず、自治体ポータルの URL を示します。
カンマ区切りの住所では、地域名の部分を、道路名にも含まれる都市名より優先します(例:Kent Kangley Rd, Covington)。Renton の住所からライブの EnerGov 検索に使う土地を特定できない場合、結果には実用的な代替手段として Renton のポータルが残ります。Seattle の住所検索と正確な許可番号検索では、公式の SDCI Open Data データセット 4 件すべてを検索します。土地のみを指定した Seattle の検索には、まだ対応していません。
Kent の公式な許可状況ページでは、現在、市のポータルへのサインインが必要なため、Kent の検索結果には手動で確認するための代替手段としてこのページが含まれます。
終了コード
| コード | アクション | 意味 |
|---|---|---|
| 0 | found | permits[] に値が設定されています |
| 1 | none / refine | 許可情報がないか、接続に問題があります |
| 2 | reject | 入力が不正です |
エージェント向け
リポジトリのルートにある tool.json には、Anthropic/OpenAI のツール呼び出し形式によるツール定義の全体が含まれています。エージェントはこれを直接読み込むか、最新バージョンを取得できます。
python3 lookup.py --schema
{
"name": "king_county_permit_status",
"description": "Look up building permit history and status for any King County, WA property...",
"input_schema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Street address, 10-digit parcel number, or permit number..."
}
},
"required": ["query"]
},
"output_schema": { ... },
"invocation": {
"command": "python3 lookup.py --pipe \"{query}\"",
"exit_codes": {
"0": "action=found — permits[] is populated",
"1": "action=none or refine — no permits or connection issue",
"2": "action=reject — bad input"
}
}
}
パイプラインのパターン:
# Get all permits at an address, extract open ones
python3 lookup.py --pipe "1817 Morris Ave S, Renton WA" \
| python3 -c "
import sys, json
d = json.load(sys.stdin)
open_statuses = {'Issued', 'In Review', 'On Hold', 'Pending'}
open_permits = [p for p in d.get('permits', []) if p['status'] in open_statuses]
print(json.dumps(open_permits, indent=2))
"
このシリーズの関連ツール:
king-county-address-to-parcel-number— 住所から土地番号を特定しますwa-contractor-license— WA の請負業者ライセンス状況と違反を確認しますking-county-property-tax-appeal— 申請にそのまま使える固定資産税異議申立書類一式を作成します
要件
- Python 3.10 以降(標準ライブラリのみ。依存関係なし)
- 上記のソーステーブルにある自治体および郡のホストへのネットワークアクセス(MyBuildingPermit、Tyler/Accela/SmartGov/eTRAKiT/LAMA のポータル、Seattle と Bellevue のオープンデータ、
gismaps.kingcounty.gov、blue.kingcounty.com、secure.lni.wa.gov)
開発
ネットワークを使わない回帰テストスイートは、次のコマンドで実行します。
python3 -m unittest discover -s tests -v
請負業者の検索
python3 lookup.py --contractor "Brambila" # what a contractor has pulled
python3 lookup.py --license BRAMBSL123AA # same, by L&I license number
MyBuildingPermit の People インデックスを、対象となるすべての管轄区域(Auburn、Bellevue、
Bothell、Burien、Edmonds、Federal Way、Issaquah、Kenmore、King County、Kirkland、Mercer
Island、Mill Creek、Newcastle、Sammamish、Snoqualmie)にわたって並行検索します。検索頻度の高い請負業者については、申請日で期間を分割して検索します。スキーマと summary は同じです。coverage_note には、請負業者を検索しない都市(Seattle、Renton、Redmond、Shoreline、SeaTac、
Woodinville、Normandy Park、Carnation)が記載されています(これらのポータルの請負業者検索は実装されていません)。ライセンス/保証金/保険の確認には、wa-contractor-license と組み合わせてください。ホスト型 API では ?contractor=/?license=、MCP ツールでは contractor/license 引数も利用できます。
品質チェック
4つのレイヤーが、それぞれ異なる問いに答えます。
| チェック | 問い | 実行タイミング |
|---|---|---|
python3 -m unittest discover -s tests | コードは引き続きこれまでどおり動作しますか?(モックを使用、オフライン) | プッシュごとの CI と毎週月曜日 |
python3 scripts/qc_scorecard.py | スコアカードの各行は、実際に主張どおり動作しますか? 各都市につき実在する住所を1件使用します(qc_addresses.json)。期待値は、スコアカードの表示に使うものと同じ分類から導き出されます。ライブの行では、その都市独自のソースからレコードが返される必要があります。インデックス済みの行では、Assessor の履歴と next_step が返される必要があります。また、電気の列は検索対象と一致する必要があります | 毎週月曜日(ブロックなし)、または手動 |
python3 scripts/qc_smoke.py | 実在する入力、架空の入力、エッジケースの入力は、エンドツーエンドで適切に振り分けられますか? | 毎週月曜日(ブロックなし) |
python3 scripts/source_health.py | 各アダプターは、正常な応答が確認済みのクエリーに引き続き応答しますか? また、どのステータス語彙を返しますか? | 毎週月曜日 → source_health.json → スコアカードの Health 列 |
ライセンス
MIT — LICENSE を参照してください。許可データは、上記に記載した自治体および郡の公開ソースから取得しています。結果を引用する際は、cite_as フィールドを使用してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。