@cliwant/mcp-sam-gov 1.15.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.ja.md +11 -11
  2. package/README.ko.md +11 -11
  3. package/README.md +18 -17
  4. package/dist/bonfire.d.ts +1 -1
  5. package/dist/bonfire.d.ts.map +1 -1
  6. package/dist/bonfire.js +7 -9
  7. package/dist/bonfire.js.map +1 -1
  8. package/dist/ckan.d.ts +6 -4
  9. package/dist/ckan.d.ts.map +1 -1
  10. package/dist/ckan.js +17 -4
  11. package/dist/ckan.js.map +1 -1
  12. package/dist/courtlistener.d.ts +32 -0
  13. package/dist/courtlistener.d.ts.map +1 -1
  14. package/dist/courtlistener.js +180 -0
  15. package/dist/courtlistener.js.map +1 -1
  16. package/dist/data-map.d.ts.map +1 -1
  17. package/dist/data-map.js +56 -1
  18. package/dist/data-map.js.map +1 -1
  19. package/dist/fpds.d.ts.map +1 -1
  20. package/dist/fpds.js +3 -2
  21. package/dist/fpds.js.map +1 -1
  22. package/dist/gao.d.ts.map +1 -1
  23. package/dist/gao.js +17 -6
  24. package/dist/gao.js.map +1 -1
  25. package/dist/gsa-perdiem.d.ts +5 -0
  26. package/dist/gsa-perdiem.d.ts.map +1 -1
  27. package/dist/gsa-perdiem.js +6 -1
  28. package/dist/gsa-perdiem.js.map +1 -1
  29. package/dist/keys.d.ts.map +1 -1
  30. package/dist/keys.js +1 -0
  31. package/dist/keys.js.map +1 -1
  32. package/dist/open-checkbook.d.ts +8 -0
  33. package/dist/open-checkbook.d.ts.map +1 -1
  34. package/dist/open-checkbook.js +9 -1
  35. package/dist/open-checkbook.js.map +1 -1
  36. package/dist/pricing.d.ts +1 -0
  37. package/dist/pricing.d.ts.map +1 -1
  38. package/dist/pricing.js +135 -50
  39. package/dist/pricing.js.map +1 -1
  40. package/dist/server.d.ts.map +1 -1
  41. package/dist/server.js +93 -19
  42. package/dist/server.js.map +1 -1
  43. package/dist/socrata.d.ts +16 -1
  44. package/dist/socrata.d.ts.map +1 -1
  45. package/dist/socrata.js +31 -1
  46. package/dist/socrata.js.map +1 -1
  47. package/dist/toolsets.d.ts.map +1 -1
  48. package/dist/toolsets.js +1 -0
  49. package/dist/toolsets.js.map +1 -1
  50. package/package.json +1 -1
  51. package/src/bonfire.ts +7 -9
  52. package/src/ckan.ts +17 -4
  53. package/src/courtlistener.ts +244 -1
  54. package/src/data-map.ts +58 -1
  55. package/src/fpds.ts +3 -2
  56. package/src/gao.ts +20 -6
  57. package/src/gsa-perdiem.ts +12 -1
  58. package/src/keys.ts +1 -0
  59. package/src/open-checkbook.ts +26 -3
  60. package/src/pricing.ts +142 -48
  61. package/src/server.ts +101 -19
  62. package/src/socrata.ts +37 -1
  63. package/src/toolsets.ts +1 -0
package/README.ja.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # @cliwant/mcp-sam-gov
2
2
 
3
3
  > **最も包括的なキーレス優先の連邦データ MCP サーバー。**
4
- > SAM.gov · USAspending · SEC EDGAR · OFAC · FDIC · Federal Register · Regulations.gov · eCFR · FAR/DFARS · BLS · Treasury · NIH · NSF · ClinicalTrials · CMS · NVD/CISA · USITC · Census · FRED · BEA · DOL · FEMA · openFDA · NHTSA · CPSC · EPA Envirofacts · CourtListener · IRS-990(ProPublica) ほか **54 のデータソース、152 ツール。** キーレス優先 — Census business-patterns · FRED · BEA · DOL データエンドポイントの 4 ソースのみ無料キーが必要で、残り 50 ソースはキー不要。
5
- > 152 ツール中 147 ツールは API キー・登録・サインアップ不要。Claude Desktop, Claude Code, Codex CLI, Cursor, Continue, Gemini CLI、すべての MCP ホスト対応。
4
+ > SAM.gov · USAspending · SEC EDGAR · OFAC · FDIC · Federal Register · Regulations.gov · eCFR · FAR/DFARS · BLS · Treasury · NIH · NSF · ClinicalTrials · CMS · NVD/CISA · USITC · Census · FRED · BEA · DOL · FEMA · openFDA · NHTSA · CPSC · EPA Envirofacts · CourtListener · IRS-990(ProPublica) ほか **54 のデータソース、153 ツール。** キーレス優先 — Census business-patterns · FRED · BEA · DOL データエンドポイントの 4 ソースのみ無料キーが必要で、残り 50 ソースはキー不要。
5
+ > 153 ツール中 148 ツールは API キー・登録・サインアップ不要。Claude Desktop, Claude Code, Codex CLI, Cursor, Continue, Gemini CLI、すべての MCP ホスト対応。
6
6
  >
7
7
  > **独立プロジェクト** — SAM.gov、米国一般調達局(GSA)を含むいかなる政府機関とも提携しておらず、承認や後援も受けていません。
8
8
 
@@ -30,10 +30,10 @@
30
30
  | 🏥 **医療・研究資金** | "このテーマの NIH/NSF grant、募集中の臨床試験、この医師への業界支払" | NIH RePORTER, NSF, ClinicalTrials, CMS, NPPES |
31
31
  | 🛡 **サイバー遵守** | "この CVE は CISA KEV 必須パッチ一覧にあるか?" | NVD, CISA KEV |
32
32
  | 🌐 **貿易・地理・災害** | "この品目の HTS 関税、この住所の Census tract、この州の FEMA 宣言" | USITC HTS, Census, FEMA, Socrata, CKAN |
33
- | 🏙 **州・地方政府の調達入札 (SLED)** | "この市/郡の調達ポータルで今募集中の案件は? その checkbook・締結済み契約・ベンダー支払、州 DOT の入札/落札登録" | OpenGov Procurement (525+ 政府), Bonfire, ArcGIS (feature + Hub), Socrata (53 ホスト), Tableau Server Guest ビュー 1 件 (モンタナ州), Socrata Open Expenditures checkbook 1 件 (サウスダコタ州) |
33
+ | 🏙 **州・地方政府の調達入札 (SLED)** | "この市/郡の調達ポータルで今募集中の案件は? その checkbook・締結済み契約・ベンダー支払、州 DOT の入札/落札登録" | OpenGov Procurement (525+ 政府), Bonfire, ArcGIS (feature + Hub), Socrata (54 ホスト), Tableau Server Guest ビュー 1 件 (モンタナ州), Socrata Open Expenditures checkbook 1 件 (サウスダコタ州) |
34
34
  | 🎓 **grant・データセット** | "過去 30 日のサイバーセキュリティ grant、連邦オープンデータセット発見" | Grants.gov, data.gov |
35
35
 
36
- **54 のデータソース、合計 152 ツール — キーレス優先: Census business-patterns · FRED · BEA · DOL データエンドポイントの 4 ソースのみ無料キーが必要で、残り 50 ソースはキー不要。** (初期の 52 ツール版でおおよそ p50 ~0.25s / p95 ~0.8s を計測 — ソースや上流負荷で変動する近似値であり保証値ではありません。)
36
+ **54 のデータソース、合計 153 ツール — キーレス優先: Census business-patterns · FRED · BEA · DOL データエンドポイントの 4 ソースのみ無料キーが必要で、残り 50 ソースはキー不要。** (初期の 52 ツール版でおおよそ p50 ~0.25s / p95 ~0.8s を計測 — ソースや上流負荷で変動する近似値であり保証値ではありません。)
37
37
 
38
38
  ---
39
39
 
@@ -60,7 +60,7 @@ Claude Code (CLI) を既に使用している場合:
60
60
  /plugin install cliwant/mcp-sam-gov
61
61
  ```
62
62
 
63
- MCP サーバー + Claude が 152 ツールをいつ・どう呼ぶかを教える [SKILL.md ワークフローガイド](./skills/sam-gov/SKILL.md) を同時登録。
63
+ MCP サーバー + Claude が 153 ツールをいつ・どう呼ぶかを教える [SKILL.md ワークフローガイド](./skills/sam-gov/SKILL.md) を同時登録。
64
64
 
65
65
  ### 🔵 パス 3 — Codex / Cursor / Continue / Gemini 等の手動インストール
66
66
 
@@ -194,7 +194,7 @@ npm install --omit=dev
194
194
 
195
195
  ## ツールセットの選択 (コンテキスト削減)
196
196
 
197
- デフォルトでは全 152 ツールがロードされ、セッションあたり約 80k トークンを消費します。`MCP_SAM_GOV_TOOLSETS` 環境変数に必要なツールセット名をカンマ区切りで指定することでコンテキストを削減できます。空値または `all` で全ツールがロードされます。利用可能なツールセット: `core`(58 ツール, SAM/Grants/USAspending/FAR/eCFR/Federal Register/SBA 等), `sled`(13 ツール, 州・地方調達), `vetting`(17 ツール, OFAC/FDIC/FAC/EPA ECHO 等), `disclosure`(8 ツール, SEC EDGAR), `regulatory`(9 ツール, Regulations.gov/Congress/GovInfo), `pricing`(15 ツール, GSA/BLS/Treasury/FRED/DOL 等), `health`(17 ツール, CMS/NIH/NSF/openFDA 等), `safety`(3 ツール, NHTSA/CPSC), `geo`(9 ツール, Census geocode/FEMA/NWS 等), `cyber`(3 ツール, NVD/CISA KEV/NIST 800-53)。ロードされていないツールを呼び出すと、どのツールセットで有効化できるかを示す `tool_not_loaded` エラーが返されます。
197
+ デフォルトでは全 153 ツールがロードされ、セッションあたり約 80k トークンを消費します。`MCP_SAM_GOV_TOOLSETS` 環境変数に必要なツールセット名をカンマ区切りで指定することでコンテキストを削減できます。空値または `all` で全ツールがロードされます。利用可能なツールセット: `core`(58 ツール, SAM/Grants/USAspending/FAR/eCFR/Federal Register/SBA 等), `sled`(13 ツール, 州・地方調達), `vetting`(17 ツール, OFAC/FDIC/FAC/EPA ECHO 等), `disclosure`(8 ツール, SEC EDGAR), `regulatory`(9 ツール, Regulations.gov/Congress/GovInfo), `pricing`(15 ツール, GSA/BLS/Treasury/FRED/DOL 等), `health`(17 ツール, CMS/NIH/NSF/openFDA 等), `safety`(3 ツール, NHTSA/CPSC), `geo`(9 ツール, Census geocode/FEMA/NWS 等), `cyber`(3 ツール, NVD/CISA KEV/NIST 800-53)。ロードされていないツールを呼び出すと、どのツールセットで有効化できるかを示す `tool_not_loaded` エラーが返されます。
198
198
 
199
199
  ---
200
200
 
@@ -215,15 +215,15 @@ npm はインストール済みユーザーに新バージョンを通知しな
215
215
 
216
216
  **自動投稿は一切ありません。** サーバーにトークンもアカウントもなく、リンクを作るだけで、開いて送信するのは**あなた**です。事前入力リンクにはツール名・エラー種別・サーバーバージョンのみが含まれ、クエリ値は含まれません。公開リポジトリなので、機微な内容は削除してから送信してください。直接開く: [**New issue**](https://github.com/cliwant/mcp-sam-gov/issues/new/choose)。
217
217
 
218
- ## ツールカタログ (152)
218
+ ## ツールカタログ (153)
219
219
 
220
- ワークフロー別グループ。キーレス優先 — 大半はキー不要、Census business-patterns · FRED · BEA · DOL データエンドポイントは無料キーが必要。全 per-tool 一覧と入力 schema・誠実性 caveat の原文は [英語 README のカタログセクション](./README.md#tool-catalog-152-tools) を正とします。
220
+ ワークフロー別グループ。キーレス優先 — 大半はキー不要、Census business-patterns · FRED · BEA · DOL データエンドポイントは無料キーが必要。全 per-tool 一覧と入力 schema・誠実性 caveat の原文は [英語 README のカタログセクション](./README.md#tool-catalog-153-tools) を正とします。
221
221
 
222
222
  - **案件 + ソリシテーション — SAM.gov + Grants.gov (10)**: `sam_search_opportunities` `sam_search_shaping` `sam_get_opportunity` `sam_fetch_description` `sam_fetch_attachment_text` `sam_attachment_url` `sam_lookup_organization` `sam_lookup_notice_fields` `grants_search` `grants_get_opportunity`
223
223
  - **spending・受注・競合 — USAspending + FPDS + GAO (31)**: `usas_search_awards` `usas_search_individual_awards` `usas_get_award_detail` `usas_search_awards_by_recipient` `usas_search_subawards` `usas_search_recompetes` `usas_search_expiring_contracts`(deprecated) `usas_analyze_incumbent` `usas_search_teaming_partners` `usas_spending_over_time` `usas_search_agency_spending` `usas_search_subagency_spending` `usas_search_psc_spending` `usas_search_cfda_spending` `usas_search_state_spending` `usas_search_federal_account_spending` `usas_search_recipients` `usas_get_recipient_profile` `usas_get_agency_profile` `usas_get_agency_awards_summary` `usas_get_agency_budget_function` `usas_list_toptier_agencies` `usas_lookup_agency` `usas_autocomplete_naics` `usas_autocomplete_recipient` `usas_naics_hierarchy` `usas_glossary` `usas_list_disaster_codes`(災害緊急基金コード(DEFC)一覧 — COVID-19·IIJA/インフラ等の緊急歳出タグ) `usas_disaster_spending`(指定 DEFC の災害/緊急基金支出の地域別内訳 — どの州/郡/選挙区が COVID/IIJA 救済金を受領) `fpds_search_awards` `gao_protest_lookup`
224
224
  - **パートナー・企業の検証 — OFAC · SAM · FAC · FDIC · EPA (15)**: `ofac_screen_entity` `sam_check_exclusions` `sam_integrity_lookup` `fac_search_audits` `fac_get_findings` `fdic_search_institutions` `fdic_institution_financials` `fdic_risk_ratios` `fdic_institution_history` `fdic_branch_deposits` `fdic_bank_failures` `fdic_industry_summary` `echo_search_facilities` `echo_facility_report` `epa_tri_facilities`(EPA Envirofacts TRI 有害物質排出施設 — 環境/ESG 検証)
225
225
  - **製品安全・リコール — openFDA · NHTSA · CPSC (6)**: `openfda_enforcement`(FDA 医薬品・医療機器・食品のリコール・執行) `openfda_device_clearances`(FDA 510(k) 医療機器承認) `openfda_drug_approvals`(openFDA Drugs@FDA 医薬品承認申請 — スポンサー・承認製品・提出/承認履歴) `nhtsa_recalls`(NHTSA 車両リコール) `nhtsa_complaints`(NHTSA 車両安全苦情) `cpsc_recalls`(CPSC 消費者製品リコール)
226
- - **訴訟・裁判所 — CourtListener (1)**: `courtlistener_search_opinions`(米連邦裁判所の判例 — 連邦請求裁判所の契約請求/入札異議、連邦巡回控訴裁判所; CourtListener/Free Law Project 経由、明示)
226
+ - **訴訟・裁判所 — CourtListener (2)**: `courtlistener_search_opinions`(米連邦裁判所の判例 — 連邦請求裁判所の契約請求/入札異議、連邦巡回控訴裁判所; CourtListener/Free Law Project 経由、明示)
227
227
  - **非営利ベンダー — IRS 990 via ProPublica (2)**: `nonprofit_search`(IRS-990 非営利検索 by 名称/州/NTEE) `nonprofit_financials`(IRS-990 非営利財務 by EIN) — ProPublica Nonprofit Explorer 経由(明示)
228
228
  - **財務開示 — SEC EDGAR (8)**: `edgar_lookup_cik` `edgar_company_filings` `edgar_company_facts` `edgar_company_concept` `edgar_xbrl_frames` `edgar_full_text_search` `edgar_filing_index` `edgar_daily_filing_index`
229
229
  - **規制・立法 — Federal Register · Regulations.gov · eCFR · FAR · Congress · GovInfo (19)**: `fed_register_search_documents` `fed_register_get_document` `fed_register_public_inspection` `fed_register_list_agencies` `regulations_search_dockets` `regulations_search_documents` `regulations_search_comments` `regulations_get_docket` `ecfr_search` `ecfr_get_section`(引用指定で CFR の 1 セクション全文を取得 — 全タイトル対応; FAR/DFARS は `far_clause_lookup` を推奨) `ecfr_list_titles` `far_clause_lookup` `far_search` `far_compliance_matrix` `congress_search_bills` `congress_get_bill` `govinfo_search_packages` `govinfo_get_package` `govinfo_list_collections`
@@ -233,7 +233,7 @@ npm はインストール済みユーザーに新バージョンを通知しな
233
233
  - **サイバー遵守 — NVD + CISA KEV + NIST 800-53 (3)**: `cve_lookup` `cisa_kev_lookup` `nist_800_53_controls`(NIST SP 800-53 Rev 5 セキュリティ・プライバシー管理策の照会 — FedRAMP/CMMC/RMF 要件テキスト by controlId/family/キーワード)
234
234
  - **貿易・関税・物流 — USITC · CBP (2)**: `hts_lookup` `cbp_border_wait_times`(CBP 陸上国境の商用車リアルタイム待ち時間 — カナダ・メキシコ港; 貨物/物流)
235
235
  - **地理・災害・州/市オープンデータ — Census · FEMA · NWS · Socrata · CKAN (10)**: `census_geocode_address` `census_geographies_by_coordinates` `fema_disaster_declarations` `fema_search_public_assistance` `fema_search_hazard_mitigation`(FEMA 災害軽減支援プロジェクト — HMGP/FMA/PDM/BRIC 軽減補助金; Public Assistance 復旧とは区別) `nws_active_alerts`(現在有効な NWS 気象警報 — 注意報/警報/勧告; 災害/気候への備え、FEMA ツールとペア) `socrata_discover_datasets` `socrata_query` `ckan_discover_datasets` `ckan_query`
236
- - **州・地方政府の調達入札 (SLED) — OpenGov · Bonfire · ArcGIS · Tableau · Open Checkbook (8)**: `opengov_list_governments`(OpenGov Procurement 上の米国州・地方政府 525+ のディレクトリ; 州/名称で絞り込み) `opengov_search_solicitations`(政府ごとの公開ソリシテーション — タイトル・status [open = 受付中]・締切・ポータルリンク; キーレスの匿名エンドポイント) `bonfire_list_organizations`(Bonfire (Euna) 上の政府の、ライブ検証済み厳選シード 195 団体 — 部分的なディレクトリ) `bonfire_search_opportunities`(団体ごとの現在募集中の案件をキーレス RSS で取得 — referenceNumber・名称・closeDate・リンク; RSS が募集中の全件なので総数は正確) `arcgis_hub_discover_datasets`(ArcGIS Hub データセットのキーワード発見 — Socrata/CKAN が扱わない SLED の GIS・インフラ・許認可・調達レイヤー; 発行者を明示する発見補助で、利用前に発行者の検証が必要) `arcgis_feature_query`(米国政府 ArcGIS REST フィーチャーレイヤー 29 件の厳選 allowlist から行を照会: DC OCP PASS の募集中ソリシテーション、地方政府の checkbook/契約、郡 CIP パイプライン(Hennepin County MN・Charlotte-Mecklenburg NC — 入札登録ではなく資本改善プロジェクト計画)、州 DOT の入札/落札登録 (TX / AK / IA / OK)、ノースダコタ州 DOT の連邦 flex 資金交付(award)レイヤー 4 件 — 交付先は郡・タウンシップ・市などの地方公共機関でありベンダーではない; ND の州全体 checkbook と調達ポータルはキーレスで到達できないため、代わりに使う DOT 交付データのプロキシ) `tableau_view_csv`(米国政府 Tableau Server Guest ビューの完全 CSV エクスポートをキーレス取得してページング; 現在は 1 ビューのみ: モンタナ州 DOA Contracts Awarded (~4,554 件の契約締結記録); 鮮度は公開元が管理し遅れることがある) `open_checkbook_search`(Socrata Open Expenditures checkbook ポータルでのベンダー支払の行単位検索 — キーレス; 年度/ベンダー/部局/費目の完全一致フィルタ; 現在は 1 ポータルのみ: サウスダコタ州 Open Checkbook (~740,980 件の支払、直近 ~3 会計年度のみ); 鮮度は公開元が管理し遅れることがあるため、payment_date の降順で最新日を確認)
236
+ - **州・地方政府の調達入札 (SLED) — OpenGov · Bonfire · ArcGIS · Tableau · Open Checkbook (8)**: `opengov_list_governments`(OpenGov Procurement 上の米国州・地方政府 525+ のディレクトリ; 州/名称で絞り込み) `opengov_search_solicitations`(政府ごとの公開ソリシテーション — タイトル・status [open = 受付中]・締切・ポータルリンク; キーレスの匿名エンドポイント) `bonfire_list_organizations`(Bonfire (Euna) 上の政府の、ライブ検証済み厳選シード 187 団体 — 部分的なディレクトリ) `bonfire_search_opportunities`(団体ごとの現在募集中の案件をキーレス RSS で取得 — referenceNumber・名称・closeDate・リンク; RSS が募集中の全件なので総数は正確) `arcgis_hub_discover_datasets`(ArcGIS Hub データセットのキーワード発見 — Socrata/CKAN が扱わない SLED の GIS・インフラ・許認可・調達レイヤー; 発行者を明示する発見補助で、利用前に発行者の検証が必要) `arcgis_feature_query`(米国政府 ArcGIS REST フィーチャーレイヤー 29 件の厳選 allowlist から行を照会: DC OCP PASS の募集中ソリシテーション、地方政府の checkbook/契約、郡 CIP パイプライン(Hennepin County MN・Charlotte-Mecklenburg NC — 入札登録ではなく資本改善プロジェクト計画)、州 DOT の入札/落札登録 (TX / AK / IA / OK)、ノースダコタ州 DOT の連邦 flex 資金交付(award)レイヤー 4 件 — 交付先は郡・タウンシップ・市などの地方公共機関でありベンダーではない; ND の州全体 checkbook と調達ポータルはキーレスで到達できないため、代わりに使う DOT 交付データのプロキシ) `tableau_view_csv`(米国政府 Tableau Server Guest ビューの完全 CSV エクスポートをキーレス取得してページング; 現在は 1 ビューのみ: モンタナ州 DOA Contracts Awarded (~4,554 件の契約締結記録); 鮮度は公開元が管理し遅れることがある) `open_checkbook_search`(Socrata Open Expenditures checkbook ポータルでのベンダー支払の行単位検索 — キーレス; 年度/ベンダー/部局/費目の完全一致フィルタ; 現在は 2 ポータル: サウスダコタ州 (~740,980 件、直近 ~3 会計年度) とアラスカ州 (41,751 件、**FY2026 のみ** — 他の年度の 0 件は「未公開」の意味であり、支出ゼロではない); 鮮度は公開元が管理し遅れることがあるため、payment_date の降順で最新日を確認)
237
237
  - **州・地方オープンデータマップ**: MCP リソース `samgov://data-map/state-local`(`resources/read` で全クライアントから参照可能)と `skills/sam-gov/SKILL.md` に州別の検証済みデータセット ID・行数・注意事項の参照表があります(TX DIR 購買 1,075万件+TxDOT 現行入札 412件・MA CTHRU ~4,900万件・VA eVA 169万件など)。これらは各州の公式入札ポータルではなくオープンデータミラーです(TX TxDOT 発注が初の実時間州ソリシテーションフィード)。FL・GA はオープンデータポータルが存在せず、PA はポータルが存在するが調達データがない測定済み不在状態です。
238
238
  - **データセット・レジストリ発見 — data.gov · get.gov (2)**: `datagov_search_datasets` `search_gov_domains`(CISA get.gov 公式 .gov ドメインレジストリ — ドメイン所有機関の解決; 連邦機関の列挙 + SLED マッピング)
239
239
  - **中小企業 — SBA (1)**: `sba_size_standard`
@@ -247,7 +247,7 @@ npm はインストール済みユーザーに新バージョンを通知しな
247
247
 
248
248
  本サーバーの原則は一つ: **もっともらしい捏造より誠実な失敗。** 以下はすべて公開データの*可用性*に関するものであり、いかなるアクセス制御も回避しません。
249
249
 
250
- - **キーレス優先、ダウンしたソースは例外を*投げる*。** 54 ソース中 50 ソース(152 ツール中 147 ツール)は API キーなしで動作し、Census business-patterns · FRED · BEA · DOL データエンドポイントのみ無料キーが必要です。ソースが rate-limit・ブロック・ダウンした場合、ツールは**型付きエラー**(`rate_limited` / `upstream_unavailable` / `schema_drift` …)を返し、行を捏造したりダウンしたサービスを「結果 0」/「見つからない」と報告しません。本物の空結果と障害は常に区別できます。
250
+ - **キーレス優先、ダウンしたソースは例外を*投げる*。** 54 ソース中 50 ソース(153 ツール中 148 ツール)は API キーなしで動作し、Census business-patterns · FRED · BEA · DOL データエンドポイントのみ無料キーが必要です。ソースが rate-limit・ブロック・ダウンした場合、ツールは**型付きエラー**(`rate_limited` / `upstream_unavailable` / `schema_drift` …)を返し、行を捏造したりダウンしたサービスを「結果 0」/「見つからない」と報告しません。本物の空結果と障害は常に区別できます。
251
251
  - **オフラインスナップショット (既定 on)。** ゆっくり変わる参照データ(toptier 機関一覧、上位 NAICS ツリー、USAspending 用語集、SBA 規模基準、最新 Treasury「Debt to the Penny」)は、ライブの連邦ソースが egress から一時的に到達不能なとき、サーバーが既定で `raw.githubusercontent.com/cliwant/mcp-sam-gov/snapshots` にホストされた**公開・週次更新スナップショット**へフォールバックします。ライブの**ハード障害**(障害 / IP 評判ブロック)時のみ取得し、通常運用中は決して取得しません — 公開データ、テレメトリなし。スナップショットが提供されるとき**決してライブとして表示しません** — 応答に `_meta.dataPath: "snapshot"` + `asOf` タイムスタンプが付き、`complete` は強制的に off。rate limit(429)は常に**尊重**し、ミラーへ回避しません。
252
252
  - **無効化(純ライブ専用):** `SAMGOV_SNAPSHOT_BASE_URL=off` を設定するとスナップショット経路は追加されず、ライブ専用クライアントと byte-identical。
253
253
  - **自前ミラーを指定:** `SAMGOV_SNAPSHOT_BASE_URL` を自分の base URL に設定すれば、公開既定値の代わりに自前ホスティング。
package/README.ko.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # @cliwant/mcp-sam-gov
2
2
 
3
3
  > **가장 포괄적인 keyless 우선 연방 데이터 MCP 서버.**
4
- > SAM.gov · USAspending · SEC EDGAR · OFAC · FDIC · Federal Register · Regulations.gov · eCFR · FAR/DFARS · BLS · Treasury · NIH · NSF · ClinicalTrials · CMS · NVD/CISA · USITC · Census · FRED · BEA · DOL · FEMA · openFDA · NHTSA · CPSC · EPA Envirofacts · CourtListener · IRS-990(ProPublica) 외 **54개 데이터 소스, 152개 도구.** keyless 우선 — Census business-patterns · FRED · BEA · DOL 데이터 엔드포인트 4개 소스만 무료 키가 필요하고 나머지 50개 소스는 키가 필요 없습니다.
5
- > 152개 도구 중 147개는 API 키·등록·가입이 필요 없습니다. Claude Desktop, Claude Code, Codex CLI, Cursor, Continue, Gemini CLI, 모든 MCP 호스트 호환.
4
+ > SAM.gov · USAspending · SEC EDGAR · OFAC · FDIC · Federal Register · Regulations.gov · eCFR · FAR/DFARS · BLS · Treasury · NIH · NSF · ClinicalTrials · CMS · NVD/CISA · USITC · Census · FRED · BEA · DOL · FEMA · openFDA · NHTSA · CPSC · EPA Envirofacts · CourtListener · IRS-990(ProPublica) 외 **54개 데이터 소스, 153개 도구.** keyless 우선 — Census business-patterns · FRED · BEA · DOL 데이터 엔드포인트 4개 소스만 무료 키가 필요하고 나머지 50개 소스는 키가 필요 없습니다.
5
+ > 153개 도구 중 148개는 API 키·등록·가입이 필요 없습니다. Claude Desktop, Claude Code, Codex CLI, Cursor, Continue, Gemini CLI, 모든 MCP 호스트 호환.
6
6
  >
7
7
  > **독립 프로젝트** — SAM.gov, 미국 연방조달청(GSA) 등 어떤 정부 기관과도 제휴 관계가 없으며, 승인이나 후원을 받지 않았습니다.
8
8
 
@@ -30,10 +30,10 @@
30
30
  | 🏥 **보건·연구 자금** | "이 주제 NIH/NSF grant, 모집 중 임상시험, 이 의사에 대한 산업계 지급" | NIH RePORTER, NSF, ClinicalTrials, CMS, NPPES |
31
31
  | 🛡 **사이버 준수** | "이 CVE 가 CISA KEV 필수 패치 목록에 있나?" | NVD, CISA KEV |
32
32
  | 🌐 **무역·지리·재난** | "이 품목 HTS 관세, 이 주소 Census tract, 이 주의 FEMA 선포" | USITC HTS, Census, FEMA, Socrata, CKAN |
33
- | 🏙 **주·지방정부 조달 입찰 (SLED)** | "이 시·카운티 조달 포털에 지금 열려 있는 입찰은? 체크북·낙찰 계약·벤더 지급 내역, 주 교통국(DOT) 입찰·낙찰 대장까지" | OpenGov Procurement (525곳+ 정부), Bonfire, ArcGIS (feature + Hub), Socrata (53개 호스트), Tableau Server 게스트 뷰 1개 (몬태나주), Socrata Open Expenditures 체크북 1개 (사우스다코타주) |
33
+ | 🏙 **주·지방정부 조달 입찰 (SLED)** | "이 시·카운티 조달 포털에 지금 열려 있는 입찰은? 체크북·낙찰 계약·벤더 지급 내역, 주 교통국(DOT) 입찰·낙찰 대장까지" | OpenGov Procurement (525곳+ 정부), Bonfire, ArcGIS (feature + Hub), Socrata (54개 호스트), Tableau Server 게스트 뷰 1개 (몬태나주), Socrata Open Expenditures 체크북 1개 (사우스다코타주) |
34
34
  | 🎓 **grant·데이터셋** | "최근 30일 사이버보안 grant, 연방 오픈 데이터셋 발굴" | Grants.gov, data.gov |
35
35
 
36
- **54개 데이터 소스, 총 152개 도구 — keyless 우선: Census business-patterns · FRED · BEA · DOL 데이터 엔드포인트 4개 소스만 무료 키가 필요하고 나머지 50개 소스는 키가 필요 없습니다.** (초기 52-도구 빌드 기준 대략 p50 ~0.25s / p95 ~0.8s 측정 — 소스·업스트림 부하에 따라 변동하는 근사치이며 보장값이 아님.)
36
+ **54개 데이터 소스, 총 153개 도구 — keyless 우선: Census business-patterns · FRED · BEA · DOL 데이터 엔드포인트 4개 소스만 무료 키가 필요하고 나머지 50개 소스는 키가 필요 없습니다.** (초기 52-도구 빌드 기준 대략 p50 ~0.25s / p95 ~0.8s 측정 — 소스·업스트림 부하에 따라 변동하는 근사치이며 보장값이 아님.)
37
37
 
38
38
  ---
39
39
 
@@ -60,7 +60,7 @@ PowerShell, npm 등 필요 없음.
60
60
  /plugin install cliwant/mcp-sam-gov
61
61
  ```
62
62
 
63
- MCP 서버 + Claude 가 152개 도구를 언제 / 어떻게 호출할지 가르치는 [SKILL.md 워크플로 가이드](./skills/sam-gov/SKILL.md) 동시 등록.
63
+ MCP 서버 + Claude 가 153개 도구를 언제 / 어떻게 호출할지 가르치는 [SKILL.md 워크플로 가이드](./skills/sam-gov/SKILL.md) 동시 등록.
64
64
 
65
65
  ### 🔵 경로 3 — Codex / Cursor / Continue / Gemini 등 수동 설치
66
66
 
@@ -194,7 +194,7 @@ npm install --omit=dev
194
194
 
195
195
  ## 도구셋 선택 (컨텍스트 절약)
196
196
 
197
- 기본값은 전체 152개 도구를 로드하며 세션당 약 80k 토큰이 소요됩니다. `MCP_SAM_GOV_TOOLSETS` 환경 변수에 필요한 도구셋 이름을 쉼표로 구분해 지정하면 컨텍스트를 줄일 수 있습니다. 빈 값이나 `all`로 설정하면 전체 도구가 로드됩니다. 사용 가능한 도구셋: `core`(58개, SAM/Grants/USAspending/FAR/eCFR/Federal Register/SBA 등), `sled`(13개, 주·지자체 조달), `vetting`(17개, OFAC/FDIC/FAC/EPA ECHO 등), `disclosure`(8개, SEC EDGAR), `regulatory`(9개, Regulations.gov/Congress/GovInfo), `pricing`(15개, GSA/BLS/Treasury/FRED/DOL 등), `health`(17개, CMS/NIH/NSF/openFDA 등), `safety`(3개, NHTSA/CPSC), `geo`(9개, Census geocode/FEMA/NWS 등), `cyber`(3개, NVD/CISA KEV/NIST 800-53). 로드되지 않은 도구를 호출하면 어느 도구셋에서 활성화할 수 있는지를 알려주는 `tool_not_loaded` 오류가 반환됩니다.
197
+ 기본값은 전체 153개 도구를 로드하며 세션당 약 80k 토큰이 소요됩니다. `MCP_SAM_GOV_TOOLSETS` 환경 변수에 필요한 도구셋 이름을 쉼표로 구분해 지정하면 컨텍스트를 줄일 수 있습니다. 빈 값이나 `all`로 설정하면 전체 도구가 로드됩니다. 사용 가능한 도구셋: `core`(58개, SAM/Grants/USAspending/FAR/eCFR/Federal Register/SBA 등), `sled`(13개, 주·지자체 조달), `vetting`(17개, CMS/NIH/NSF/openFDA 등), `safety`(3개, NHTSA/CPSC), `geo`(9개, Census geocode/FEMA/NWS 등), `cyber`(3개, NVD/CISA KEV/NIST 800-53). 로드되지 않은 도구를 호출하면 어느 도구셋에서 활성화할 수 있는지를 알려주는 `tool_not_loaded` 오류가 반환됩니다.
198
198
 
199
199
  ---
200
200
 
@@ -215,15 +215,15 @@ npm은 설치한 사용자에게 새 버전을 알려주지 않으므로, 서버
215
215
 
216
216
  **자동 제출은 절대 없습니다.** 서버엔 토큰·계정이 없고 링크만 만들며, 열어서 제출하는 건 **사용자**입니다. 프리필 링크에는 툴명·에러종류·서버버전만 담기고 쿼리값은 담기지 않습니다. 공개 레포이니 민감한 내용은 지우고 제출하세요. 직접 열기: [**New issue**](https://github.com/cliwant/mcp-sam-gov/issues/new/choose).
217
217
 
218
- ## 도구 카탈로그 (152개)
218
+ ## 도구 카탈로그 (153개)
219
219
 
220
- 워크플로별 그룹. keyless 우선 — 대부분 키가 필요 없고, Census business-patterns · FRED · BEA · DOL 데이터 엔드포인트는 무료 키가 필요합니다. 몇몇 다른 소스는 선택적 무료 키를 넣으면 한도가 올라갑니다(위 키 섹션 참고). 전체 per-tool 목록과 입력 schema·정직성 caveat 원문은 [영문 README 의 카탈로그 섹션](./README.md#tool-catalog-152-tools)을 기준으로 하세요.
220
+ 워크플로별 그룹. keyless 우선 — 대부분 키가 필요 없고, Census business-patterns · FRED · BEA · DOL 데이터 엔드포인트는 무료 키가 필요합니다. 몇몇 다른 소스는 선택적 무료 키를 넣으면 한도가 올라갑니다(위 키 섹션 참고). 전체 per-tool 목록과 입력 schema·정직성 caveat 원문은 [영문 README 의 카탈로그 섹션](./README.md#tool-catalog-153-tools)을 기준으로 하세요.
221
221
 
222
222
  - **입찰 + 솔리시테이션 — SAM.gov + Grants.gov (10)**: `sam_search_opportunities` `sam_search_shaping` `sam_get_opportunity` `sam_fetch_description` `sam_fetch_attachment_text` `sam_attachment_url` `sam_lookup_organization` `sam_lookup_notice_fields` `grants_search` `grants_get_opportunity`
223
223
  - **spending·수주·경쟁 — USAspending + FPDS + GAO (31)**: `usas_search_awards` `usas_search_individual_awards` `usas_get_award_detail` `usas_search_awards_by_recipient` `usas_search_subawards` `usas_search_recompetes` `usas_search_expiring_contracts`(deprecated) `usas_analyze_incumbent` `usas_search_teaming_partners` `usas_spending_over_time` `usas_search_agency_spending` `usas_search_subagency_spending` `usas_search_psc_spending` `usas_search_cfda_spending` `usas_search_state_spending` `usas_search_federal_account_spending` `usas_search_recipients` `usas_get_recipient_profile` `usas_get_agency_profile` `usas_get_agency_awards_summary` `usas_get_agency_budget_function` `usas_list_toptier_agencies` `usas_lookup_agency` `usas_autocomplete_naics` `usas_autocomplete_recipient` `usas_naics_hierarchy` `usas_glossary` `usas_list_disaster_codes`(재난긴급자금코드(DEFC) 목록 — COVID-19·IIJA/인프라 등 긴급세출 태그) `usas_disaster_spending`(지정 DEFC의 재난/긴급자금 지출 지역별 분해 — 어느 주/카운티/선거구가 COVID/IIJA 구호금 수령) `fpds_search_awards` `gao_protest_lookup`
224
224
  - **파트너·기업 검증 — OFAC · SAM · FAC · FDIC · EPA (15)**: `ofac_screen_entity` `sam_check_exclusions` `sam_integrity_lookup` `fac_search_audits` `fac_get_findings` `fdic_search_institutions` `fdic_institution_financials` `fdic_risk_ratios` `fdic_institution_history` `fdic_branch_deposits` `fdic_bank_failures` `fdic_industry_summary` `echo_search_facilities` `echo_facility_report` `epa_tri_facilities`(EPA Envirofacts TRI 독성물질 배출 시설 — 환경/ESG 검증)
225
225
  - **제품 안전·리콜 — openFDA · NHTSA · CPSC (6)**: `openfda_enforcement`(FDA 의약품·의료기기·식품 리콜·집행) `openfda_device_clearances`(FDA 510(k) 의료기기 승인) `openfda_drug_approvals`(openFDA Drugs@FDA 의약품 승인 신청 — 스폰서·승인 제품·제출/승인 이력) `nhtsa_recalls`(NHTSA 차량 리콜) `nhtsa_complaints`(NHTSA 차량 안전 불만) `cpsc_recalls`(CPSC 소비자 제품 리콜)
226
- - **소송·법원 — CourtListener (1)**: `courtlistener_search_opinions`(미 연방 법원 판례 — 연방청구법원 계약 청구/입찰 이의, 연방순회항소법원; CourtListener/Free Law Project 경유, 명시)
226
+ - **소송·법원 — CourtListener (2)**: `courtlistener_search_opinions`(미 연방 법원 판례; `party` 파라미터로 실제 당사자 사건 검색 — CourtListener/Free Law Project 경유) + `courtlistener_search_dockets`(RECAP 도켓 — FCA/False Claims Act/qui tam 사건용; suitNature 필드 필터; CourtListener 경유)
227
227
  - **비영리 벤더 — IRS 990 via ProPublica (2)**: `nonprofit_search`(IRS-990 비영리 검색 by 이름/주/NTEE) `nonprofit_financials`(IRS-990 비영리 재무 by EIN) — ProPublica Nonprofit Explorer 경유(명시)
228
228
  - **재무 공시 — SEC EDGAR (8)**: `edgar_lookup_cik` `edgar_company_filings` `edgar_company_facts` `edgar_company_concept` `edgar_xbrl_frames` `edgar_full_text_search` `edgar_filing_index` `edgar_daily_filing_index`
229
229
  - **규정·입법 — Federal Register · Regulations.gov · eCFR · FAR · Congress · GovInfo (19)**: `fed_register_search_documents` `fed_register_get_document` `fed_register_public_inspection` `fed_register_list_agencies` `regulations_search_dockets` `regulations_search_documents` `regulations_search_comments` `regulations_get_docket` `ecfr_search` `ecfr_get_section`(CFR 조항 하나의 전문을 인용번호로 조회 — 모든 title 대상, FAR/DFARS는 `far_clause_lookup` 권장) `ecfr_list_titles` `far_clause_lookup` `far_search` `far_compliance_matrix` `congress_search_bills` `congress_get_bill` `govinfo_search_packages` `govinfo_get_package` `govinfo_list_collections`
@@ -233,7 +233,7 @@ npm은 설치한 사용자에게 새 버전을 알려주지 않으므로, 서버
233
233
  - **사이버 준수 — NVD + CISA KEV + NIST 800-53 (3)**: `cve_lookup` `cisa_kev_lookup` `nist_800_53_controls`(NIST SP 800-53 Rev 5 보안·프라이버시 관리항목 조회 — FedRAMP/CMMC/RMF 요구사항 by controlId/family/키워드)
234
234
  - **무역·관세·물류 — USITC · CBP (2)**: `hts_lookup` `cbp_border_wait_times`(CBP 육상국경 상용차 실시간 대기시간 — 캐나다·멕시코 항구; 화물/물류)
235
235
  - **지리·재난·주/시 오픈데이터 — Census · FEMA · NWS · Socrata · CKAN (10)**: `census_geocode_address` `census_geographies_by_coordinates` `fema_disaster_declarations` `fema_search_public_assistance` `fema_search_hazard_mitigation`(FEMA 재해경감지원 프로젝트 — HMGP/FMA/PDM/BRIC 경감보조금; Public Assistance 복구와 구별) `nws_active_alerts`(현재 활성 NWS 기상 경보 — 주의보/경보/특보; 재난/기후 대비, FEMA 도구와 페어) `socrata_discover_datasets` `socrata_query` `ckan_discover_datasets` `ckan_query`
236
- - **주·지방정부 조달 입찰 (SLED) — OpenGov · Bonfire · ArcGIS · Tableau · Socrata Open Checkbook (8)**: `opengov_list_governments`(OpenGov Procurement를 쓰는 미국 주·지방정부 525곳+ 디렉터리 — 주·이름으로 필터) `opengov_search_solicitations`(정부별 공개 솔리시테이션 — 제목·상태[open = 현재 접수 중]·마감일·포털 링크; 포털이 쓰는 keyless 익명 엔드포인트) `bonfire_list_organizations`(Bonfire(Euna)를 쓰는 미국 정부 디렉터리 — 실제 동작을 확인한 큐레이션 시드 195개, 전체 목록은 아님) `bonfire_search_opportunities`(기관별 현재 공고 중인 입찰 — keyless RSS가 공고 전체라 총계가 정확) `arcgis_hub_discover_datasets`(ArcGIS Hub 데이터셋 키워드 발굴 — Socrata·CKAN이 못 덮는 SLED GIS·인프라·인허가·조달 레이어; 게시자를 직접 검증하도록 돕는 발굴용 도구) `arcgis_feature_query`(큐레이션 허용목록 **29개 미국 정부 ArcGIS REST feature 레이어** 행 조회 — DC OCP PASS 실시간 솔리시테이션, 지자체 체크북·계약, **카운티 CIP 파이프라인(Hennepin County MN·Charlotte-Mecklenburg NC — 입찰 대장이 아닌 자본개선 사업 계획)**, **주 DOT 입찰·낙찰 대장(TX / AK / IA / OK)**, **노스다코타주 DOT 연방 flex 자금 교부 레이어 4개** — 카운티·타운십·시 같은 지방 공공기관에 배분한 교부 내역이지 벤더와 맺은 계약이나 입찰 결과가 아님. ND 주 체크북·조달 포털에 키 없이 닿을 수 없어 대신 쓰는 대리 데이터) `tableau_view_csv`(미국 정부 Tableau Server 게스트 뷰의 CSV 전체 내보내기를 키 없이 받아 페이지로 나눠 조회 — 지금은 뷰 1개: 몬태나주 행정부(DOA) Contracts Awarded 약 4,554건. 갱신 시점은 게시 기관이 정하므로 늦을 수 있음) `open_checkbook_search`(Socrata Open Expenditures 체크북 포털의 벤더 지급 건별 검색 — keyless, 연도·벤더·부서·지출 분류 정확 일치 필터. 지금은 포털 1개: 사우스다코타주 Open Checkbook 약 740,980건, 최근 약 3개 회계연도만. 갱신 시점은 게시 기관이 정하므로 늦을 수 있으니 최신 날짜는 payment_date 내림차순 정렬로 확인)
236
+ - **주·지방정부 조달 입찰 (SLED) — OpenGov · Bonfire · ArcGIS · Tableau · Socrata Open Checkbook (8)**: `opengov_list_governments`(OpenGov Procurement를 쓰는 미국 주·지방정부 525곳+ 디렉터리 — 주·이름으로 필터) `opengov_search_solicitations`(정부별 공개 솔리시테이션 — 제목·상태[open = 현재 접수 중]·마감일·포털 링크; 포털이 쓰는 keyless 익명 엔드포인트) `bonfire_list_organizations`(Bonfire(Euna)를 쓰는 미국 정부 디렉터리 — 실제 동작을 확인한 큐레이션 시드 187개, 전체 목록은 아님) `bonfire_search_opportunities`(기관별 현재 공고 중인 입찰 — keyless RSS가 공고 전체라 총계가 정확) `arcgis_hub_discover_datasets`(ArcGIS Hub 데이터셋 키워드 발굴 — Socrata·CKAN이 못 덮는 SLED GIS·인프라·인허가·조달 레이어; 게시자를 직접 검증하도록 돕는 발굴용 도구) `arcgis_feature_query`(큐레이션 허용목록 **29개 미국 정부 ArcGIS REST feature 레이어** 행 조회 — DC OCP PASS 실시간 솔리시테이션, 지자체 체크북·계약, **카운티 CIP 파이프라인(Hennepin County MN·Charlotte-Mecklenburg NC — 입찰 대장이 아닌 자본개선 사업 계획)**, **주 DOT 입찰·낙찰 대장(TX / AK / IA / OK)**, **노스다코타주 DOT 연방 flex 자금 교부 레이어 4개** — 카운티·타운십·시 같은 지방 공공기관에 배분한 교부 내역이지 벤더와 맺은 계약이나 입찰 결과가 아님. ND 주 체크북·조달 포털에 키 없이 닿을 수 없어 대신 쓰는 대리 데이터) `tableau_view_csv`(미국 정부 Tableau Server 게스트 뷰의 CSV 전체 내보내기를 키 없이 받아 페이지로 나눠 조회 — 지금은 뷰 1개: 몬태나주 행정부(DOA) Contracts Awarded 약 4,554건. 갱신 시점은 게시 기관이 정하므로 늦을 수 있음) `open_checkbook_search`(Socrata Open Expenditures 체크북 포털의 벤더 지급 건별 검색 — keyless, 연도·벤더·부서·지출 분류 정확 일치 필터. 지금은 포털 2개: 사우스다코타주 약 740,980건(최근 약 3개 회계연도)과 알래스카주 41,751건(**FY2026만** — 다른 연도의 0건은 "미공개"라는 뜻이지 지출이 0이라는 뜻이 아님). 갱신 시점은 게시 기관이 정하므로 늦을 수 있으니 최신 날짜는 payment_date 내림차순 정렬로 확인)
237
237
  - **주·지방 오픈데이터 지도**: MCP 리소스 `samgov://data-map/state-local`(`resources/read`로 모든 클라이언트에서 조회 가능)과 `skills/sam-gov/SKILL.md`에 주별 검증된 데이터셋 ID·행 수·주의사항이 담긴 조회 표가 있습니다(TX DIR 구매 1,075만 건+TxDOT 현행 발주 412건·MA CTHRU ~4,900만 건·VA eVA 169만 건 등). 이들은 각 주의 공식 입찰 포털이 아닌 공개 데이터 미러이며(TX TxDOT 발주가 최초의 실시간 주 솔리시테이션 피드), FL·GA는 오픈데이터 포털 자체가 없고 PA는 조달 데이터가 없는 측정된 부재 상태입니다.
238
238
  - **데이터셋·레지스트리 발굴 — data.gov · get.gov (2)**: `datagov_search_datasets` `search_gov_domains`(CISA get.gov 공식 .gov 도메인 레지스트리 — 도메인 소유 기관 확인; 연방기관 열거 + SLED 매핑)
239
239
  - **소상공인 — SBA (1)**: `sba_size_standard`
@@ -247,7 +247,7 @@ npm은 설치한 사용자에게 새 버전을 알려주지 않으므로, 서버
247
247
 
248
248
  이 서버의 원칙은 하나입니다: **그럴듯한 조작보다 정직한 실패.** 아래는 모두 공개 데이터의 *가용성*에 관한 것이며, 어떤 접근 통제도 우회하지 않습니다.
249
249
 
250
- - **Keyless 우선, 다운된 소스는 예외를 *던진다*.** 54개 소스 중 50개(152개 도구 중 147개)는 API 키 없이 동작하고, Census business-patterns · FRED · BEA · DOL 데이터 엔드포인트만 무료 키가 필요합니다. 소스가 rate-limit·차단·다운되면 도구는 **타입이 지정된 에러**(`rate_limited` / `upstream_unavailable` / `schema_drift` …)를 반환하며, 행을 지어내거나 다운된 서비스를 "결과 0" / "없음"으로 보고하지 않습니다. 진짜 빈 결과와 장애는 항상 구별됩니다.
250
+ - **Keyless 우선, 다운된 소스는 예외를 *던진다*.** 54개 소스 중 50개(153개 도구 중 148개)는 API 키 없이 동작하고, Census business-patterns · FRED · BEA · DOL 데이터 엔드포인트만 무료 키가 필요합니다. 소스가 rate-limit·차단·다운되면 도구는 **타입이 지정된 에러**(`rate_limited` / `upstream_unavailable` / `schema_drift` …)를 반환하며, 행을 지어내거나 다운된 서비스를 "결과 0" / "없음"으로 보고하지 않습니다. 진짜 빈 결과와 장애는 항상 구별됩니다.
251
251
  - **오프라인 스냅샷 (기본 on).** 느리게 바뀌는 참조 데이터(toptier 기관 목록, 상위 NAICS 트리, USAspending 용어집, SBA 규모 기준, 최신 Treasury "Debt to the Penny")는, 라이브 연방 소스가 egress 에서 잠시 도달 불가일 때 서버가 기본적으로 `raw.githubusercontent.com/cliwant/mcp-sam-gov/snapshots` 에 호스팅된 **공개·주간 갱신 스냅샷**으로 폴백합니다. 라이브 **하드 실패**(장애 / IP 평판 차단) 시에만 가져오며 평상시엔 절대 아닙니다 — 공개 데이터, 텔레메트리 없음. 스냅샷이 서빙되면 **절대 라이브처럼 표시하지 않습니다** — 응답에 `_meta.dataPath: "snapshot"` + `asOf` 타임스탬프가 붙고 `complete` 는 강제로 꺼집니다. rate limit(429)은 항상 **준수**하며 미러로 우회하지 않습니다.
252
252
  - **끄기(순수 라이브 전용):** `SAMGOV_SNAPSHOT_BASE_URL=off` 설정 시 스냅샷 경로가 추가되지 않고 라이브 전용 클라이언트와 byte-identical.
253
253
  - **자체 미러 지정:** `SAMGOV_SNAPSHOT_BASE_URL` 을 자신의 base URL 로 설정하면 공개 기본값 대신 직접 호스팅.
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ### **$4 trillion of public federal data, one `npm install` away.**
6
6
 
7
- The most comprehensive **keyless-first** MCP server for US federal **and state/local (SLED)** contracting + spending + regulation + partner vetting. **152 tools across 54 data sources** — keyless-first: only 4 sources (Census business-patterns, FRED, BEA, and DOL's data endpoint) need a free key; the other 50 need none. Works today, in any AI agent.
7
+ The most comprehensive **keyless-first** MCP server for US federal **and state/local (SLED)** contracting + spending + regulation + partner vetting. **153 tools across 54 data sources** — keyless-first: only 4 sources (Census business-patterns, FRED, BEA, and DOL's data endpoint) need a free key; the other 50 need none. Works today, in any AI agent.
8
8
 
9
9
  **Independent project** — not affiliated with, endorsed by, or sponsored by SAM.gov, the U.S. General Services Administration (GSA), or any government agency.
10
10
 
@@ -44,7 +44,7 @@ The most comprehensive **keyless-first** MCP server for US federal **and state/l
44
44
  SOW preview: "RFQ# 36C24526Q0460 — Bulk Oxygen Tank Rental, Fill, Telemetry…"
45
45
  ```
46
46
 
47
- **No API key, registration or signup for 147 of the 152 tools.** Just plug it in and ask.
47
+ **No API key, registration or signup for 148 of the 153 tools.** Just plug it in and ask.
48
48
 
49
49
  ---
50
50
 
@@ -54,7 +54,7 @@ The most comprehensive **keyless-first** MCP server for US federal **and state/l
54
54
  |---|---|
55
55
  | GovWin: $30K-$100K/yr per seat | Free, MIT license |
56
56
  | API key registration → wait 24h → quota tier shopping | `npm install` → working in 60s |
57
- | 5+ separate vendor APIs / scrapers | 1 unified surface, 152 tools across 54 sources |
57
+ | 5+ separate vendor APIs / scrapers | 1 unified surface, 153 tools across 54 sources |
58
58
  | LLMs hallucinate NAICS codes / agency names | Anti-hallucination autocomplete guards built-in |
59
59
  | Brittle scraping breaks weekly | Daily live smoke test ([badge above](#)) |
60
60
  | Procurement officer → IT ticket → 3-week wait | Claude Desktop double-click install |
@@ -81,10 +81,10 @@ The federal data this wraps is **public domain**. There is no good reason it sho
81
81
  | 🏥 **Health & research funding** | "NIH/NSF grants on this topic; recruiting clinical trials; industry payments to this physician" | NIH RePORTER, NSF, ClinicalTrials.gov, CMS Open Payments, NPPES |
82
82
  | 🛡 **Cyber compliance** | "Is this CVE on the CISA KEV must-patch list?" | NVD, CISA KEV |
83
83
  | 🌐 **Trade, geo & disaster** | "HTS tariff for this product; Census tract for this address; FEMA declarations in this state" | USITC HTS, US Census, FEMA, Socrata, CKAN |
84
- | 🏙 **State/local procurement bids (SLED)** | "What's open on this city's/county's procurement portal right now? Their checkbook, awarded contracts, vendor payments; state DOT bid/award registers" | OpenGov Procurement (525+ govs), Bonfire, ArcGIS (feature + Hub), Socrata (53 hosts), one Tableau Server Guest view (Montana), one Socrata Open Expenditures checkbook (South Dakota) |
84
+ | 🏙 **State/local procurement bids (SLED)** | "What's open on this city's/county's procurement portal right now? Their checkbook, awarded contracts, vendor payments; state DOT bid/award registers" | OpenGov Procurement (525+ govs), Bonfire, ArcGIS (feature + Hub), Socrata (54 hosts), one Tableau Server Guest view (Montana), one Socrata Open Expenditures checkbook (South Dakota) |
85
85
  | 🎓 **Grants & datasets** | "Cybersecurity grants posted in the last 30 days; discover federal open datasets" | Grants.gov, data.gov |
86
86
 
87
- **152 tools across 54 data sources — keyless-first: only 4 sources (Census business-patterns, FRED, BEA, and DOL's data endpoint) need a free key; the other 50 need none.** (An earlier 52-tool build measured roughly p50 ~0.25s / p95 ~0.8s against production federal APIs; latency varies by source and upstream load — treat it as fast, not a benchmarked guarantee.)
87
+ **153 tools across 54 data sources — keyless-first: only 4 sources (Census business-patterns, FRED, BEA, and DOL's data endpoint) need a free key; the other 50 need none.** (An earlier 52-tool build measured roughly p50 ~0.25s / p95 ~0.8s against production federal APIs; latency varies by source and upstream load — treat it as fast, not a benchmarked guarantee.)
88
88
 
89
89
  ---
90
90
 
@@ -111,7 +111,7 @@ If you already use Claude Code (the CLI):
111
111
  /plugin install cliwant/mcp-sam-gov
112
112
  ```
113
113
 
114
- This installs the MCP server **plus** a [SKILL.md](./skills/sam-gov/SKILL.md) workflow guide that teaches Claude when + how to use each of the 152 tools.
114
+ This installs the MCP server **plus** a [SKILL.md](./skills/sam-gov/SKILL.md) workflow guide that teaches Claude when + how to use each of the 153 tools.
115
115
 
116
116
  ### 🔵 Path 3 — Manual install for any MCP host (Codex, Cursor, Continue, Gemini)
117
117
 
@@ -210,7 +210,7 @@ On Windows, if the server fails to start with `spawn npx ENOENT` in `%APPDATA%\C
210
210
 
211
211
  (Or skip this entirely — use Path 1's `.mcpb` and it auto-configures.)
212
212
 
213
- Restart Claude Desktop fully (system tray quit on Windows / Quit menu on macOS), then look for the 🔨 icon. You should see "sam-gov (152 tools)".
213
+ Restart Claude Desktop fully (system tray quit on Windows / Quit menu on macOS), then look for the 🔨 icon. You should see "sam-gov (153 tools)".
214
214
 
215
215
  ### Claude Code
216
216
 
@@ -483,7 +483,7 @@ Get one free (instant, no wait) at [api.data.gov/signup](https://api.data.gov/si
483
483
 
484
484
  ## Choosing toolsets (smaller context)
485
485
 
486
- By default all 152 tools load — about 74k tokens per session. Clients that pay the full context cost (Claude Desktop, Cursor, raw API) can cut that significantly by loading only the toolsets relevant to the task.
486
+ By default all 153 tools load — about 74k tokens per session. Clients that pay the full context cost (Claude Desktop, Cursor, raw API) can cut that significantly by loading only the toolsets relevant to the task.
487
487
 
488
488
  Set the **`MCP_SAM_GOV_TOOLSETS`** environment variable to a comma-separated list of toolset names (case-insensitive). Leave it blank (or set it to `all`) to restore all tools.
489
489
 
@@ -494,7 +494,7 @@ Token counts are approximate, measured as the compact JSON character count of ea
494
494
  |---|---|---|---|
495
495
  | `core` | 60 | ~17k | SAM.gov discovery/attachments/wage-determinations/exclusions/integrity; Grants.gov; all USAspending; FPDS; GAO; FAR/eCFR/Federal Register; SBA; OFAC screening; GSA labor-rate benchmarks; `api_key_status`; `feedback` (always loaded) |
496
496
  | `sled` | 13 | ~7k | State/local (SLED) procurement: OpenGov, Bonfire, ArcGIS, Socrata, data.gov/CKAN, Tableau, Open Checkbook, search.gov domains |
497
- | `vetting` | 16 | ~10k | Partner due-diligence: FAC, FDIC, EPA ECHO/TRI, CourtListener, nonprofit (IRS 990), Senate LDA lobbying |
497
+ | `vetting` | 17 | ~10k | Partner due-diligence: FAC, FDIC, EPA ECHO/TRI, CourtListener, nonprofit (IRS 990), Senate LDA lobbying |
498
498
  | `disclosure` | 8 | ~5k | SEC EDGAR financial filings and XBRL frames |
499
499
  | `regulatory` | 9 | ~4k | Regulations.gov, Congress.gov, GovInfo |
500
500
  | `pricing` | 15 | ~9k | GSA per-diem, BLS, Treasury, BEA, Census business-patterns, FRED, DOL, USITC HTS |
@@ -502,7 +502,7 @@ Token counts are approximate, measured as the compact JSON character count of ea
502
502
  | `safety` | 3 | ~2k | NHTSA vehicle recalls, CPSC consumer-product recalls |
503
503
  | `geo` | 8 | ~5k | Census geocode, FEMA disasters, NWS alerts, CBP border wait times, data.gov catalog |
504
504
  | `cyber` | 3 | ~2k | NVD CVE, CISA KEV, NIST SP 800-53 |
505
- | **all** | **152** | **~74k** | Everything (default) |
505
+ | **all** | **153** | **~74k** | Everything (default) |
506
506
 
507
507
  **Config examples:**
508
508
 
@@ -549,7 +549,7 @@ This server is built to **improve from real usage**. Because an AI agent (not a
549
549
 
550
550
  You can also open one directly: [**New issue**](https://github.com/cliwant/mcp-sam-gov/issues/new/choose) — bug / feature / wrong-output templates.
551
551
 
552
- ## Tool catalog (152 tools)
552
+ ## Tool catalog (153 tools)
553
553
 
554
554
  Grouped by workflow. Keyless-first — most tools need no key; Census business-patterns, FRED, BEA, and DOL's data endpoint require a free key, and a handful of others gain higher limits from an optional free key (noted above). Descriptions are condensed — each tool's own `inputSchema` carries the full contract and honesty caveats.
555
555
 
@@ -636,9 +636,10 @@ Grouped by workflow. Keyless-first — most tools need no key; Census business-p
636
636
  </details>
637
637
 
638
638
  <details>
639
- <summary><b>Litigation & courts — CourtListener (1 tool)</b></summary>
639
+ <summary><b>Litigation & courts — CourtListener (2 tools)</b></summary>
640
640
 
641
- - `courtlistener_search_opinions` — US federal court opinions (COFC contract claims / bid protests, Federal Circuit) — data via CourtListener / Free Law Project (disclosed)
641
+ - `courtlistener_search_opinions` — US federal court opinions (COFC contract claims / bid protests, Federal Circuit); `party` param for actual-party cases — data via CourtListener / Free Law Project (disclosed)
642
+ - `courtlistener_search_dockets` — RECAP dockets (type=r) for FCA / False Claims Act / qui tam matters that rarely produce opinions; suitNature fielded filter — data via CourtListener / Free Law Project (disclosed)
642
643
  </details>
643
644
 
644
645
  <details>
@@ -754,7 +755,7 @@ Grouped by workflow. Keyless-first — most tools need no key; Census business-p
754
755
  - `fema_search_hazard_mitigation` — FEMA Hazard Mitigation Assistance projects (HMGP/FMA/PDM/BRIC mitigation grants to state/local/tribal subrecipients; disaster-resilience, distinct from Public Assistance recovery)
755
756
  - `nws_active_alerts` — currently-active NWS weather alerts (watches/warnings/advisories; disaster/climate readiness, pairs with the FEMA tools)
756
757
  - `socrata_discover_datasets` — find Socrata dataset 4x4 ids by keyword
757
- - `socrata_query` — query rows from an allowlisted Socrata/SODA open-data portal (**53 curated state/county/city + federal hosts** — checkbook, contracts, vendor payments, live solicitations across the SLED tier)
758
+ - `socrata_query` — query rows from an allowlisted Socrata/SODA open-data portal (**54 curated state/county/city + federal hosts** — checkbook, contracts, vendor payments, live solicitations across the SLED tier)
758
759
  - `ckan_discover_datasets` — find CKAN datastore resource ids by keyword
759
760
  - `ckan_query` — query rows from an allowlisted CKAN datastore resource (state/city spend/checkbook)
760
761
  </details>
@@ -764,12 +765,12 @@ Grouped by workflow. Keyless-first — most tools need no key; Census business-p
764
765
 
765
766
  - `opengov_list_governments` — directory of 525+ US state/local governments on **OpenGov Procurement** (filter by state/query)
766
767
  - `opengov_search_solicitations` — a government's **live public solicitations** (title, status [open = accepting], deadline, portal link) — keyless anonymous endpoints
767
- - `bonfire_list_organizations` — curated live-verified 195-org US seed directory of governments on **Bonfire (Euna)**
768
+ - `bonfire_list_organizations` — curated live-verified 187-org US seed directory of governments on **Bonfire (Euna)**
768
769
  - `bonfire_search_opportunities` — an org's currently-open opportunities via keyless RSS (referenceNumber, name, closeDate, link); the RSS is the complete open set (exact total)
769
770
  - `arcgis_hub_discover_datasets` — discover ArcGIS Hub datasets by keyword (the SLED GIS/infrastructure/permits/procurement layer Socrata & CKAN don't cover; a discovery aid with publisher surfaced for vetting)
770
771
  - `arcgis_feature_query` — query rows from a curated allowlist of **29 US-gov ArcGIS REST feature layers**: DC OCP PASS live solicitations; local-gov checkbooks/contracts; **county CIP pipelines (Hennepin County MN, Charlotte-Mecklenburg NC — capital-project pipelines, not solicitation registers)**; **state DOT bid/award registers (TX / AK / IA / OK)**; **4 North Dakota DOT federal flex-funding award layers** (NDDOT funding awards to local public agencies such as counties, townships and cities, not vendor contracts or winning bids; a proxy because ND's statewide checkbook and procurement portal aren't keyless-reachable)
771
772
  - `tableau_view_csv` — fetch a curated US-gov **Tableau Server Guest** view's complete CSV export (keyless) and page over it; one view today: **Montana DOA Contracts Awarded** (~4,554 award records; freshness is set by the publisher and can lag)
772
- - `open_checkbook_search` — row-level vendor-payment search over a curated **Socrata Open Expenditures** checkbook portal (keyless; exact-match year/vendor/department/expense-category filters); one portal today: **South Dakota Open Checkbook** (~740,980 payments, only the ~3 most recent fiscal years; freshness is set by the publisher and can lag, so sort by payment_date desc to see the newest date)
773
+ - `open_checkbook_search` — row-level vendor-payment search over a curated **Socrata Open Expenditures** checkbook portal (keyless; exact-match year/vendor/department/expense-category filters); two portals today: **South Dakota** (~740,980 payments, only the ~3 most recent fiscal years) and **Alaska** (41,751 payments, **FY2026 only** — any other year returns count:0, meaning "not published", not zero spending); freshness is set by the publisher and can lag, so sort by payment_date desc to see the newest date)
773
774
  </details>
774
775
 
775
776
  > **State open-data map** — also available as an MCP resource (`samgov://data-map/state-local`, readable by any MCP client via `resources/read`) and in `skills/sam-gov/SKILL.md`. Largest verified keyless datasets: Texas DIR cooperative purchase lines 10.7M rows + TxDOT live lettings 412 projects (`socrata_query` data.texas.gov), Massachusetts CTHRU vendor payments ~49M rows, Virginia eVA PO line items 1.69M rows (`ckan_query` data.virginia.gov), New Jersey YourMoney 660k rows, Washington contracts + master-contract-sales 325k rows combined. **These are state open-data mirrors, not the states' live bid portals** (TX TxDOT lettings being the first live solicitation feed). CA, OH, NC, MI, and non-TxDOT TX portals are login/WAF-gated; FL and GA have no state open-data portals (NXDOMAIN); PA's portal carries no procurement datasets.
@@ -813,7 +814,7 @@ Grouped by workflow. Keyless-first — most tools need no key; Census business-p
813
814
 
814
815
  This server is built around one rule: **honest failure over confident fabrication.** Everything below is about *availability* of public data — none of it bypasses access controls.
815
816
 
816
- **Keyless-first, and a down source *throws*.** 50 of the 54 sources (147 of the 152 tools) work with no API key; Census business-patterns, FRED, BEA and DOL's data endpoint need a free one. When a source is rate-limited, blocked, or down, the tool returns a **typed error** (`rate_limited` / `upstream_unavailable` / `schema_drift` / …) — it never invents rows and never reports a DOWN service as "0 results" or "not found". A genuine empty result and an outage are always distinguishable.
817
+ **Keyless-first, and a down source *throws*.** 50 of the 54 sources (148 of the 153 tools) work with no API key; Census business-patterns, FRED, BEA and DOL's data endpoint need a free one. When a source is rate-limited, blocked, or down, the tool returns a **typed error** (`rate_limited` / `upstream_unavailable` / `schema_drift` / …) — it never invents rows and never reports a DOWN service as "0 results" or "not found". A genuine empty result and an outage are always distinguishable.
817
818
 
818
819
  **Offline snapshots (on by default).** Some reference data changes slowly — the toptier-agency list, the top-level NAICS tree, the USAspending glossary, SBA size standards, the latest Treasury "Debt to the Penny." By default, when a live federal source is briefly unreachable from your egress, the server falls back to a **public, weekly-refreshed snapshot** of that slow-changing reference data, hosted at `raw.githubusercontent.com/cliwant/mcp-sam-gov/snapshots`. It only fetches on a **live hard-failure** (an outage / IP-reputation block), never during normal operation — public data, no telemetry. A served snapshot is **never presented as live** — the response carries `_meta.dataPath: "snapshot"` plus an `asOf` timestamp, and `complete` is forced off, so an AI agent (and you) always see the staleness. A rate limit (429) is always **honored**, never routed around onto the mirror.
819
820
 
package/dist/bonfire.d.ts CHANGED
@@ -11,7 +11,7 @@
11
11
  * ★ NO keyless directory API: Bonfire's authoritative org list
12
12
  * (`GET common-production-api-global.bonfirehub.com/v1.0/organizations/external`)
13
13
  * is AUTH-GATED (a free vendor-account token) — OUT OF BOUNDS (we never sign in).
14
- * So this ships a CURATED, live-verified SEED directory (195 US orgs; §BONFIRE_
14
+ * So this ships a CURATED, live-verified SEED directory (187 US orgs; §BONFIRE_
15
15
  * ORGS) as `bonfire_list_organizations`, and documents the keyless RSS-probe
16
16
  * refresh method (no catch-all: `{slug}.bonfirehub.com/opportunities/rss` returns
17
17
  * 200 <rss> for a real org, a connection failure for a non-provisioned slug). The
@@ -1 +1 @@
1
- {"version":3,"file":"bonfire.d.ts","sourceRoot":"","sources":["../src/bonfire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAIH,OAAO,EAAE,GAAG,EAAO,MAAM,aAAa,CAAC;AACvC,OAAO,EAAY,KAAK,UAAU,EAAqB,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,CAAC;AAIf,eAAO,MAAM,cAAc,QAAsB,CAAC;AAqDlD,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACtE,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAG5C,CAAC;AAcH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAiDF,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAiClF;AAGD,MAAM,MAAM,iBAAiB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAiDtF"}
1
+ {"version":3,"file":"bonfire.d.ts","sourceRoot":"","sources":["../src/bonfire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAIH,OAAO,EAAE,GAAG,EAAO,MAAM,aAAa,CAAC;AACvC,OAAO,EAAY,KAAK,UAAU,EAAqB,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,CAAC;AAIf,eAAO,MAAM,cAAc,QAAsB,CAAC;AAmDlD,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACtE,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAG5C,CAAC;AAcH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAiDF,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAiClF;AAGD,MAAM,MAAM,iBAAiB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAiDtF"}
package/dist/bonfire.js CHANGED
@@ -11,7 +11,7 @@
11
11
  * ★ NO keyless directory API: Bonfire's authoritative org list
12
12
  * (`GET common-production-api-global.bonfirehub.com/v1.0/organizations/external`)
13
13
  * is AUTH-GATED (a free vendor-account token) — OUT OF BOUNDS (we never sign in).
14
- * So this ships a CURATED, live-verified SEED directory (195 US orgs; §BONFIRE_
14
+ * So this ships a CURATED, live-verified SEED directory (187 US orgs; §BONFIRE_
15
15
  * ORGS) as `bonfire_list_organizations`, and documents the keyless RSS-probe
16
16
  * refresh method (no catch-all: `{slug}.bonfirehub.com/opportunities/rss` returns
17
17
  * 200 <rss> for a real org, a connection failure for a non-provisioned slug). The
@@ -46,7 +46,7 @@ export const BONFIRE_ORG_RE = /^[a-z0-9-]{1,64}$/;
46
46
  const bonfireLabel = (org) => `bonfire:${org}/opportunities/rss`;
47
47
  const BONFIRE_SOURCE = (org) => `${org}.bonfirehub.com via Bonfire (Euna) open-opportunities RSS (keyless)`;
48
48
  const BONFIRE_SEED_NOTE = "This directory is a CURATED, live-verified SEED (Bonfire has NO keyless org-list API; the authoritative list is auth-gated and out of bounds). Euna markets up to ~900 US orgs, so the seed is partial — probe `{slug}.bonfirehub.com/opportunities/rss` (200 <rss> = real org) to extend. Feed a result's `org` to bonfire_search_opportunities. Slug identity traps: pcc = Portland Community College OR (NOT Pima CC AZ); dps = Dayton Public Schools OH (NOT Denver PS CO); maricopa = Maricopa County Community Colleges AZ (NOT Maricopa County government).";
49
- // ─── The curated 195-org US seed directory (live-verified 2026-09-21) ──
49
+ // ─── The curated 187-org US seed directory (live-verified 2026-09-21) ──
50
50
  // "slug|Entity|ST" — the slug is the RSS subdomain. Non-US (.ca / cayman / etc.)
51
51
  // deliberately excluded.
52
52
  // Slug identity notes (depth sweep 2026-09-21):
@@ -63,7 +63,7 @@ const BONFIRE_SEED_RAW = [
63
63
  "daviefl|Town of Davie|FL", "ocoee|City of Ocoee|FL", "broward|Broward County|FL", "hillsboroughcounty|Hillsborough County|FL", "marionfl|Marion County|FL", "monroecounty-fl|Monroe County|FL", "pascocountyfl|Pasco County|FL", "famu|Florida A&M University|FL", "fau|Florida Atlantic University|FL", "fgcu|Florida Gulf Coast University|FL", "floridapoly|Florida Polytechnic University|FL", "ucf|University of Central Florida|FL", "tampabaywater|Tampa Bay Water|FL", "gohart|Hillsborough Transit Authority|FL", "psta|Pinellas Suncoast Transit Authority|FL",
64
64
  "brookhavenga|City of Brookhaven|GA", "sandysprings|City of Sandy Springs|GA", "chathamcountyga|Chatham County|GA", "columbiacountyga|Columbia County|GA", "gwinnett|Gwinnett County Public Schools|GA",
65
65
  "cityofnampa|City of Nampa|ID", "adacounty|Ada County|ID", "bannockcounty|Bannock County|ID",
66
- "cookcountyil|Cook County|IL", "d214|Township High School District 214|IL", "thecha|Chicago Housing Authority|IL", "cps|Chicago Public Schools|IL", "u-46|School District U-46|IL", "chicagoparkdistrict|Chicago Park District|IL", "mwrd|Metro Water Reclamation District of Greater Chicago|IL", "transitchicago|Chicago Transit Authority|IL", "metra|Metra|IL",
66
+ "cookcountyil|Cook County|IL", "d214|Township High School District 214|IL", "cps|Chicago Public Schools|IL", "u-46|School District U-46|IL", "chicagoparkdistrict|Chicago Park District|IL", "mwrd|Metro Water Reclamation District of Greater Chicago|IL", "transitchicago|Chicago Transit Authority|IL", "metra|Metra|IL",
67
67
  "indygo|Indianapolis Public Transportation Corp|IN",
68
68
  "olatheks|City of Olathe|KS", "wichita|City of Wichita|KS",
69
69
  "covingtonky|City of Covington|KY", "louisvilleky|City of Louisville|KY", "owensboro|City of Owensboro|KY", "lexingtonky|Lexington-Fayette|KY", "kyhousing|Kentucky Housing Corporation|KY", "tarc|Transit Authority of River City|KY",
@@ -71,10 +71,9 @@ const BONFIRE_SEED_RAW = [
71
71
  "harfordcountymd|Harford County|MD", "habc|Housing Authority of Baltimore City|MD", "hcpss|Howard County Public School System|MD", "menv|Maryland Environmental Service|MD", "mdcourts|Maryland Judiciary|MD",
72
72
  "maine|State of Maine|ME",
73
73
  "detroit|City of Detroit|MI",
74
- "ramseycountymn|Ramsey County|MN", "sourcewell|Sourcewell|MN",
74
+ "ramseycountymn|Ramsey County|MN",
75
75
  "jeffersoncitymo|Jefferson City|MO", "kcmo|Kansas City, MO|MO", "stlouiscountymo|St. Louis County|MO", "stlcc|St. Louis Community College|MO",
76
76
  "apexnc|Town of Apex|NC", "charlottenc|City of Charlotte|NC", "wake|Wake County|NC", "ncat|NC A&T State University|NC", "ncsu|NC State University|NC",
77
- "rutgers|Rutgers University|NJ",
78
77
  "cabq|City of Albuquerque|NM", "mckinleycounty|McKinley County|NM",
79
78
  "clarkcountynv|Clark County|NV", "ccsd|Clark County School District|NV",
80
79
  "suffolkcountyny|Suffolk County|NY", "stonybrook|Stony Brook University|NY", "healthsolutions|Public Health Solutions|NY", "centro|Central NY Regional Transportation Authority|NY", "nfta|Niagara Frontier Transportation Authority|NY", "panynj|Port Authority of New York & New Jersey|NY",
@@ -82,12 +81,11 @@ const BONFIRE_SEED_RAW = [
82
81
  "pcc|Portland Community College|OR", "pdx|Portland State University|OR",
83
82
  "alleghenycounty|Allegheny County|PA", "montcopa|Montgomery County PA|PA", "pennbid|PennBid|PA",
84
83
  "charlestoncounty|Charleston County|SC", "tridenttech|Trident Technical College|SC",
85
- "apsu|Austin Peay State University|TN",
86
- "dfwairport|DFW International Airport|TX", "amarillo|City of Amarillo|TX", "arlingtontx|City of Arlington|TX", "brownsvilletx|City of Brownsville|TX", "burlesontx|City of Burleson|TX", "cityoflewisville|City of Lewisville|TX", "dallascityhall|City of Dallas|TX", "fortworthtexas|City of Fort Worth|TX", "friscotexas|City of Frisco|TX", "leandertx|City of Leander|TX", "mckinneytexas|City of McKinney|TX", "midlandtexas|City of Midland|TX", "roundrocktexas|City of Round Rock|TX", "sanantonio|City of San Antonio|TX", "schertz|City of Schertz|TX", "southlake|City of Southlake|TX", "templetx|City of Temple|TX", "waco-texas|City of Waco|TX", "mansfield|Mansfield Council of Governments|TX", "brazoriacounty|Brazoria County|TX", "dentoncounty|Denton County|TX", "galvestoncountytx|Galveston County|TX", "harriscountytx|Harris County|TX", "johnsoncountytx|Johnson County|TX", "lubbock|Lubbock County|TX", "parkercountytx|Parker County|TX", "smithcounty|Smith County|TX", "wilco|Williamson County|TX", "hccs|Houston Community College|TX", "rice-edu|Rice University|TX", "tccd|Tarrant County College District|TX", "utdallas|UT Dallas|TX", "utexas|UT Austin|TX", "utrgv|UT Rio Grande Valley|TX", "uttyler|UT Tyler|TX", "uthscsa|UT Health San Antonio|TX", "saha|Opportunity Home San Antonio|TX", "universityhealth|University Health (hospital district)|TX", "allenisd|Allen ISD|TX", "austinisd|Austin ISD|TX", "comalisd|Comal ISD|TX", "dallasisd|Dallas ISD|TX", "fortbendisd|Fort Bend ISD|TX", "kleinisd|Klein ISD|TX", "laredoisd|Laredo ISD|TX", "magnoliaisd|Magnolia ISD|TX", "mesquiteisd|Mesquite ISD|TX", "tomballisd|Tomball ISD|TX", "twc-texas-gov|Texas Workforce Commission|TX", "txdot|Texas Department of Transportation|TX", "dart|Dallas Area Rapid Transit|TX", "ridemetro|Harris County METRO|TX",
84
+ "dfwairport|DFW International Airport|TX", "amarillo|City of Amarillo|TX", "arlingtontx|City of Arlington|TX", "brownsvilletx|City of Brownsville|TX", "burlesontx|City of Burleson|TX", "cityoflewisville|City of Lewisville|TX", "dallascityhall|City of Dallas|TX", "fortworthtexas|City of Fort Worth|TX", "friscotexas|City of Frisco|TX", "leandertx|City of Leander|TX", "mckinneytexas|City of McKinney|TX", "midlandtexas|City of Midland|TX", "roundrocktexas|City of Round Rock|TX", "schertz|City of Schertz|TX", "southlake|City of Southlake|TX", "templetx|City of Temple|TX", "waco-texas|City of Waco|TX", "mansfield|Mansfield Council of Governments|TX", "brazoriacounty|Brazoria County|TX", "dentoncounty|Denton County|TX", "galvestoncountytx|Galveston County|TX", "harriscountytx|Harris County|TX", "johnsoncountytx|Johnson County|TX", "lubbock|Lubbock County|TX", "parkercountytx|Parker County|TX", "smithcounty|Smith County|TX", "wilco|Williamson County|TX", "hccs|Houston Community College|TX", "rice-edu|Rice University|TX", "tccd|Tarrant County College District|TX", "utdallas|UT Dallas|TX", "utexas|UT Austin|TX", "utrgv|UT Rio Grande Valley|TX", "uttyler|UT Tyler|TX", "uthscsa|UT Health San Antonio|TX", "homesa|Opportunity Home San Antonio (formerly SAHA)|TX", "universityhealth|University Health (hospital district)|TX", "austinisd|Austin ISD|TX", "comalisd|Comal ISD|TX", "dallasisd|Dallas ISD|TX", "fortbendisd|Fort Bend ISD|TX", "kleinisd|Klein ISD|TX", "laredoisd|Laredo ISD|TX", "magnoliaisd|Magnolia ISD|TX", "mesquiteisd|Mesquite ISD|TX", "tomballisd|Tomball ISD|TX", "twc-texas-gov|Texas Workforce Commission|TX", "txdot|Texas Department of Transportation|TX", "dart|Dallas Area Rapid Transit|TX", "ridemetro|Harris County METRO|TX",
87
85
  "ccog|The Cooperative Council of Governments|US", "omniapartners|OMNIA Partners|US", "utah|U3P / Utah Public Procurement Place|UT",
88
86
  "chesterfield|Chesterfield County|VA", "fairfaxcounty|Fairfax County|VA", "cnu|Christopher Newport University|VA", "gmu|George Mason University|VA", "nsu|Norfolk State University|VA", "fcps|Fairfax County Public Schools|VA",
89
- "cityofvancouver|City of Vancouver WA|WA", "federalwaywa|City of Federal Way|WA", "clarkcountywa|Clark County WA|WA", "kingcounty|King County|WA", "portolympia|Port of Olympia|WA", "lwsd|Lake Washington School District|WA", "tacoma|Tacoma Public Schools|WA",
90
- "cityofmilwaukee|City of Milwaukee|WI", "westalliswi|City of West Allis|WI", "racinecounty|Racine County|WI", "waukeshacounty|Waukesha County|WI", "cvtc|Chippewa Valley Technical College|WI", "mmsd|Milwaukee Metropolitan Sewerage District|WI",
87
+ "cityofvancouver|City of Vancouver WA|WA", "federalwaywa|City of Federal Way|WA", "clarkcountywa|Clark County WA|WA", "portolympia|Port of Olympia|WA", "lwsd|Lake Washington School District|WA", "tacoma|Tacoma Public Schools|WA",
88
+ "cityofmilwaukee|City of Milwaukee|WI", "westalliswi|City of West Allis|WI", "racinecounty|Racine County|WI", "waukeshacounty|Waukesha County|WI", "mmsd|Milwaukee Metropolitan Sewerage District|WI",
91
89
  "marshall|Marshall University|WV",
92
90
  ];
93
91
  export const BONFIRE_ORGS = BONFIRE_SEED_RAW.map((r) => {
@@ -1 +1 @@
1
- {"version":3,"file":"bonfire.js","sourceRoot":"","sources":["../src/bonfire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bonfire.js","sourceRoot":"","sources":["../src/bonfire.ts"],"names":[],"mappings":"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"}
package/dist/ckan.d.ts CHANGED
@@ -78,9 +78,11 @@
78
78
  * returned HTTP 200 + the envelope above). NO commercial-vendor domains (the
79
79
  * Socrata Tyler-Technologies M1 mistake is avoided). `data.virginia.gov` is the
80
80
  * same VA that CHURNED OFF Socrata (excluded from the SODA allowlist) — it belongs
81
- * HERE on CKAN. `data.ok.gov` is DEFERRED to SOURCE_BACKLOG (only a 9-row thin
82
- * datastore verified — require a 2nd procurement-relevant >1k-row resource before
83
- * adding). `catalog.data.gov` (federal harvester, no active datastore) is dropped.
81
+ * HERE on CKAN. `data.ok.gov` deferral LIFTED 2026-09-21: Vendor Payments FY2019 Q1
82
+ * (resource_id cc443616-15eb-4a1f-8d87-93e5711ac43c, 286,185 rows exact,
83
+ * `total_was_estimated:false`). FY2011/FY2017/FY2018/FY2019 each have 4 quarterly
84
+ * resources; one fiscal year = 4 calls. NOT bids or awards — vendor PAYMENTS.
85
+ * `catalog.data.gov` (federal harvester, no active datastore) is dropped.
84
86
  * Adding a host later = a CKAN_HOSTS SOURCE edit + a live `datastore_search?
85
87
  * limit=1` verification + an ownership note + a test-fixture note — NEVER a free
86
88
  * runtime param.
@@ -88,7 +90,7 @@
88
90
  import { num } from "./coerce.js";
89
91
  import { type MetaBundle } from "./meta.js";
90
92
  export { num };
91
- export declare const CKAN_HOSTS: readonly ["data.ca.gov", "data.virginia.gov", "data.boston.gov"];
93
+ export declare const CKAN_HOSTS: readonly ["data.ca.gov", "data.ok.gov", "data.virginia.gov", "data.boston.gov"];
92
94
  export type CkanHost = (typeof CKAN_HOSTS)[number];
93
95
  export type CkanRecord = Record<string, unknown>;
94
96
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ckan.d.ts","sourceRoot":"","sources":["../src/ckan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AAIH,OAAO,EAAE,GAAG,EAAO,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAY,KAAK,UAAU,EAAqB,MAAM,WAAW,CAAC;AAKzE,OAAO,EAAE,GAAG,EAAE,CAAC;AAUf,eAAO,MAAM,UAAU,kEAUb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAiBnD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAwHjD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,UAAU,CAAC,CA4GtB;AAGD,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAyBF;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,IAAI,EAAE,QAAQ,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,UAAU,CAAC,CA0EtB"}
1
+ {"version":3,"file":"ckan.d.ts","sourceRoot":"","sources":["../src/ckan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AAIH,OAAO,EAAE,GAAG,EAAO,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAY,KAAK,UAAU,EAAqB,MAAM,WAAW,CAAC;AAKzE,OAAO,EAAE,GAAG,EAAE,CAAC;AAUf,eAAO,MAAM,UAAU,iFAqBb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAiBnD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAwHjD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,UAAU,CAAC,CA4GtB;AAGD,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAyBF;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,IAAI,EAAE,QAAQ,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,UAAU,CAAC,CA0EtB"}
package/dist/ckan.js CHANGED
@@ -78,9 +78,11 @@
78
78
  * returned HTTP 200 + the envelope above). NO commercial-vendor domains (the
79
79
  * Socrata Tyler-Technologies M1 mistake is avoided). `data.virginia.gov` is the
80
80
  * same VA that CHURNED OFF Socrata (excluded from the SODA allowlist) — it belongs
81
- * HERE on CKAN. `data.ok.gov` is DEFERRED to SOURCE_BACKLOG (only a 9-row thin
82
- * datastore verified — require a 2nd procurement-relevant >1k-row resource before
83
- * adding). `catalog.data.gov` (federal harvester, no active datastore) is dropped.
81
+ * HERE on CKAN. `data.ok.gov` deferral LIFTED 2026-09-21: Vendor Payments FY2019 Q1
82
+ * (resource_id cc443616-15eb-4a1f-8d87-93e5711ac43c, 286,185 rows exact,
83
+ * `total_was_estimated:false`). FY2011/FY2017/FY2018/FY2019 each have 4 quarterly
84
+ * resources; one fiscal year = 4 calls. NOT bids or awards — vendor PAYMENTS.
85
+ * `catalog.data.gov` (federal harvester, no active datastore) is dropped.
84
86
  * Adding a host later = a CKAN_HOSTS SOURCE edit + a live `datastore_search?
85
87
  * limit=1` verification + an ownership note + a test-fixture note — NEVER a free
86
88
  * runtime param.
@@ -104,8 +106,19 @@ export { num };
104
106
  // resource_id={uuid}&limit=1` when touching this list.
105
107
  export const CKAN_HOSTS = [
106
108
  // State of California (CDT/GovOps) — Statewide Purchase Order Data 2012–2015,
107
- // resource_id bb82edc5-9c78-44e2-8947-68ece26197c5 (~344,504 rows).
109
+ // resource_id bb82edc5-9c78-44e2-8947-68ece26197c5 (344,504 rows exact,
110
+ // total_was_estimated:false). DGS-Approved Non-Competitive Bids resource_id
111
+ // 14932789-485b-481b-910a-dafb40d3471c (480 rows exact). Live Cal eProcure
112
+ // portal remains WAF-403. Ownership: CDT/GovOps open.data.ca.gov.
113
+ // Test fixture: resource bb82edc5 rows=344504 exact; resource 14932789 rows=480 exact.
108
114
  "data.ca.gov",
115
+ // State of Oklahoma (OMES/Office of Management & Enterprise Services) —
116
+ // Vendor Payments FY2019 Q1, resource_id cc443616-15eb-4a1f-8d87-93e5711ac43c
117
+ // (286,185 rows exact, total_was_estimated:false). FY2011/2017/2018/2019 each
118
+ // have 4 quarterly resources; one fiscal year = 4 calls. NOT bids or awards —
119
+ // vendor PAYMENTS. Deferral lifted 2026-09-21. Ownership: data.ok.gov (OMES).
120
+ // Test fixture: resource cc443616 rows=286185 exact.
121
+ "data.ok.gov",
109
122
  // Commonwealth of Virginia (VITA) — the VA that churned off Socrata. Norfolk
110
123
  // SWaM Certified Businesses, resource_id f6804560-bf9e-44a4-92bf-bf3dd7d1fd60.
111
124
  "data.virginia.gov",