Pubrecords

io.github.bch1212由 GitHub 帳號 bch1212 發布v0.1.0更新於 Oct 26, 2026

US public-records intelligence for AI agents — companies, SEC, courts, spending, licenses.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取金融商業與電商

概覽

AI 產生的概覽

面向美國公開紀錄調查的遠端 MCP 伺服器:公司登記資料、SEC 文件、聯邦法院案件、聯邦支出、執照與補助機會。

可以做什麼
  • 搜尋與檢視公司:依名稱、州與狀態查詢美國企業實體,並取得高階主管、註冊代理人與申報歷史
  • 搜尋與取得 SEC EDGAR 文件:依發行人、表格類型與日期搜尋,或依 accession 編號取得單一文件的中繼資料
  • 搜尋聯邦法院案件(CourtListener RECAP),並依受補助者、機關與年度查詢 USASpending 的合約與補助獎項
  • 查詢 NPPES NPI 登錄資料庫中的醫療提供者,並搜尋 NPI 與 FCC 執照
  • 跨來源交叉核對實體並給出 0-100 信心分數,以及搜尋 Grants.gov 機會、SAM.gov 合約公告、機關與截止日期
適用情境
適合在交易前、供應商審查或盡職調查中,讓助理調查美國公司、查看其高階主管與申報資料、查找訴訟、追蹤聯邦資金,或核對企業與醫療提供者身分。
執行需求
遠端 streamable-HTTP 端點,無需本機安裝。需要由營運方簽發的 API 金鑰,透過 X-API-Key 標頭傳送。免費額度為每日 30 次呼叫,另有付費方案。合約類工具另需在伺服器端設定 SAM_API_KEY。
安裝前請注意
超出免費每日額度後為付費服務,提供 Pro 與按次計費方案。金鑰是可計費憑證,應妥善保管。UCC 申報功能尚未實作,會回傳錯誤。結果預設快取 24 小時,資料可能落後。涵蓋範圍僅限美國實體層級公開紀錄,不含消費者個人隱私資料,州法院涵蓋範圍無保證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Pubrecords,將其新增到工作區。
  2. 連接 X-API-Key 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.bch1212%2Fpubrecords/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "pubrecords": {
      "type": "http",
      "url": "https://mcp-pubrecords-production.up.railway.app/mcp/",
      "headers": {
        "X-API-Key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

Halverson IQ Data

[status] [mcp] [price]

One paid MCP server for US public records, federal grants, and federal contracts. Companies, SEC filings, court dockets, spending awards, licenses, Grants.gov opportunities, and SAM.gov contract notices share a single API key and a single bill.


What this server includes

This repository is the combined Halverson IQ Data server.

SourceTools
OpenCorporates, SEC EDGAR, CourtListener, USASpending, NPPES, FCCPublic-records tools (companies, filings, courts, spending, licenses, entity verification)
Grants.govGrant search, details, agency rollup, deadline radar
SAM.govContract search, notice details, award notices

Not part of this server: business-intel and outdoor datasets (separate or retired), and web-page fetching (a different pipeline with its own fetchers and cache).

One customer key is checked on every tool. Free tier is 30 calls/day across the whole server. Pro is unlimited on the same key. Upgrade: https://mcpize.com/pubrecords-mcp


Pricing

TierPriceLimit
Free$030 calls/day
Pro$29/moUnlimited
Metered$0.03/callPay-as-you-go

Keys are issued per user. Ask the operator for a key, or have them mint one with POST /admin/keys. Examples below use the placeholder YOUR_API_KEY.


Tool reference

Public records

ToolArgsReturns
search_companiesname, state?, status?, limit?OpenCorporates entities
get_company_detailscompany_id, jurisdictionOfficers, registered agent, filings
search_sec_filingscompany_name, form_type?, date_from?, limit?EDGAR filing list
get_sec_filingaccession_numberFiling metadata + index URL
search_court_casesparty_name, court?, date_from?, limit?RECAP federal dockets
lookup_federal_spendingrecipient_name, agency?, year?, limit?USASpending awards
lookup_npiname?, specialty?, state?, limit?NPPES providers
get_ucc_filingsdebtor_name, stateUCC liens (roadmap — see Data Gaps)
verify_entityname, state?Cross-source 0–100 confidence score
search_licensesentity_name, license_type?, state?NPI + FCC license union

Grants and federal contracts

ToolArgsReturns
search_grantskeyword?, agency?, amount_min?, amount_max?, status?, limit?Grants.gov opportunities
get_grant_detailsopportunity_idFull Grants.gov record
search_contractskeyword?, naics_code?, agency?, set_aside?, limit?SAM.gov solicitations
get_contract_detailsnotice_idOne SAM.gov notice
search_awardsrecipient_name?, agency?, year?SAM.gov award notices
get_agenciestype? (grants, contracts, or both)Agencies with open opportunities
get_deadlinesdays_ahead?Grants closing inside the window
match_opportunitiesorg_description, org_type?, focus_areas?, limit?Top grants + contracts for an org profile

focus_areas on the REST route is a comma-separated string. The MCP tool accepts a list.

Contract tools call SAM.gov only when SAM_API_KEY is set. If it is missing they return {"success": false, "error": "SAM_API_KEY is not configured"} and do not send a request.


Install in Claude

bash
claude mcp add --transport http halverson-iq-data https://mcp-pubrecords-production.up.railway.app/mcp/

Note the trailing slash on /mcp/. Without it the gateway issues a 307 that drops the POST body, breaking the JSON-RPC handshake.

Then set the API key in your client:

text
X-API-Key: YOUR_API_KEY

Python SDK

A thin Python wrapper for non-MCP integrations lives in pubrecords-sdk/:

bash
pip install pubrecords
python
from pubrecords import PubRecords
client = PubRecords(api_key="YOUR_API_KEY")print(client.health())print(client.search_companies(name="Apple", state="CA"))print(client.search_grants(keyword="broadband"))

REST surface

Every MCP tool is also available over plain HTTP. Send the same X-API-Key on each call.

bash
curl -H "X-API-Key: YOUR_API_KEY" \  "https://mcp-pubrecords-production.up.railway.app/tools/search_companies?name=Apple&state=CA"
curl -H "X-API-Key: YOUR_API_KEY" \  "https://mcp-pubrecords-production.up.railway.app/tools/search_grants?keyword=broadband"

Production URL: https://mcp-pubrecords-production.up.railway.app

text
GET  /health                          (no auth)GET  /usage                           (X-API-Key)GET  /tools/<tool_name>?...           (X-API-Key)POST /admin/keys                      (X-Admin-Token; fails closed)POST /billing/upgrade                 (X-Admin-Token; fails closed)POST /mcp/                            (MCP streamable-http transport)

GET /usage returns the remaining daily quota for that key. GET /health is unauthenticated.

Issuing a customer key

POST /admin/keys and POST /billing/upgrade return 403 unless PUBRECORDS_ADMIN_TOKEN is set and the X-Admin-Token header matches it. There is no default admin token.

bash
curl -X POST https://mcp-pubrecords-production.up.railway.app/admin/keys \  -H "X-Admin-Token: $PUBRECORDS_ADMIN_TOKEN" \  -H "Content-Type: application/json" \  -d '{"key":"YOUR_API_KEY","tier":"free"}'

Promote that same key to the paid tier (this is the single billing switch):

bash
curl -X POST https://mcp-pubrecords-production.up.railway.app/billing/upgrade \  -H "X-Admin-Token: $PUBRECORDS_ADMIN_TOKEN" \  -H "Content-Type: application/json" \  -d '{"key":"YOUR_API_KEY"}'

Local development

bash
git clone https://github.com/bch1212/mcp-pubrecords.gitcd mcp-pubrecordspython3 -m venv .venv && source .venv/bin/activatepip install -r requirements.txtcp .env.example .envuvicorn server:app --reload --port 8000

Run tests:

bash
pytest -v

Environment variables (see .env.example):

VariableRequiredPurpose
PUBRECORDS_ADMIN_TOKENYes, to issue or upgrade keysAdmin secret. Missing or blank fails closed (403).
SAM_API_KEYYes, for contract toolsYour SAM.gov key. Never commit a real value.
PUBRECORDS_SEC_USER_AGENTProductionIdentifying User-Agent for SEC EDGAR.
OPENCORPORATES_TOKENNoRaises the OpenCorporates anonymous cap.
COURTLISTENER_TOKENNoRaises the CourtListener anonymous cap.
PUBRECORDS_CACHE_TTLNoCache TTL in seconds (default 86400).
PUBRECORDS_DB_PATHNoSQLite file for cache and API keys.
PORTNoListen port. Railway sets this.

Data freshness

Responses are cached for 24 hours by default.

SourceRefresh cadence
OpenCorporatesDaily / weekly (varies by jurisdiction)
SEC EDGARFilings appear minutes after submission
USASpending.govMonthly, with fiscal-year backfills
CourtListener (RECAP)Daily, depending on uploads
NPPES NPIWeekly
FCC License-ViewDaily
Grants.govPosted opportunities, as the agency updates them
SAM.govContract notices, as contracting offices post them

For fresher queries, set PUBRECORDS_CACHE_TTL=300 (5 minutes). That multiplies upstream traffic.


Data gaps and source limits

The server returns a structured error envelope instead of invented rows when a query is outside coverage.

  1. UCC filings — there is no uniform federal UCC API. get_ucc_filings returns {"error": "not_implemented"} until per-state adapters land.
  2. State professional licenses — healthcare (NPI) and FCC are covered. Bar, real estate, contractor, and CPA licenses are state-by-state.
  3. OpenCorporates rate limits — anonymous traffic is capped. Set OPENCORPORATES_TOKEN for production.
  4. SEC EDGAR full-text — broad terms return wide sets. Combine with form_type.
  5. CourtListener — federal PACER/RECAP. State courts are not guaranteed.
  6. SAM.gov — contract tools do nothing until SAM_API_KEY is set in the environment. Apply at https://sam.gov. The key is not embedded in this repo.
  7. SAM award history — search_awards reads Award Notice rows from the opportunities API. Deeper recipient rollups stay on lookup_federal_spending (USASpending).
  8. Match scores — match_opportunities is deterministic token overlap on title and agency. It does not call a model.
  9. No consumer PII — entity-level public records only.

License and compliance

This server proxies and caches public records that are already free to access from federal and public sources. Cached payloads are kept for 24 hours and can be flushed by deleting the SQLite file. Customer API keys and the admin token belong in the environment and the SQLite key store. Do not commit them.

來源:README.md,提交 fee4b77

工具

10

mcp_search_companies

Search US business entities by name (OpenCorporates). Args: name: Company or trade name to search for. state: 2-letter US state code (e.g. 'CA') to narrow jurisdiction. status: Filter by current status (e.g. 'active', 'dissolved'). limit: Max results (1-100, default 25).

輸入參數name必填limitstatestatus

mcp_get_company_details

Fetch officers, agent, and filing history for a known company. Args: company_id: OpenCorporates company number. jurisdiction: Jurisdiction code (e.g. 'us_de', 'us_ca').

輸入參數company_id必填jurisdiction必填

mcp_search_sec_filings

Search SEC EDGAR full-text for filings. Args: company_name: Issuer name or keyword. form_type: Filing form (e.g. '10-K', '10-Q', '8-K'). date_from: Earliest filing date (YYYY-MM-DD). limit: Max results (1-100, default 25).

輸入參數limitdate_fromform_typecompany_name必填

mcp_get_sec_filing

Fetch metadata + index URL for one SEC filing by accession number. Args: accession_number: EDGAR accession number (e.g. '0001193125-21-000001').

輸入參數accession_number必填

mcp_search_court_cases

Search federal court cases via CourtListener (RECAP). Args: party_name: Plaintiff or defendant name. court: CourtListener court id (e.g. 'nyed', 'txsd'). date_from: Earliest filing date (YYYY-MM-DD). limit: Max results (1-50, default 25).

輸入參數courtlimitdate_fromparty_name必填

mcp_lookup_federal_spending

Search USASpending.gov for awards (contracts + grants). Args: recipient_name: Award recipient name. agency: Awarding agency name (e.g. 'Department of Defense'). year: Fiscal year (e.g. 2024). limit: Max results (1-100, default 25).

輸入參數yearlimitagencyrecipient_name必填

mcp_lookup_npi

Look up healthcare providers in the NPPES NPI registry. Args: name: Provider individual or organization name. specialty: Taxonomy description (e.g. 'Internal Medicine'). state: 2-letter state code. limit: Max results (1-200, default 25).

輸入參數namelimitstatespecialty

mcp_get_ucc_filings

UCC lien lookup. (Roadmap; returns not_implemented per state.) Args: debtor_name: Name of the debtor. state: 2-letter state code.

輸入參數state必填debtor_name必填

mcp_verify_entity

Cross-reference an entity across multiple sources and score confidence. Args: name: Entity name to verify. state: Optional 2-letter state code for jurisdiction filtering.

輸入參數name必填state

mcp_search_licenses

Search professional / business licenses (NPI + FCC, more sources roadmap). Args: entity_name: Licensee name. license_type: 'npi' | 'medical' | 'fcc' | 'radio' | 'all'. state: 2-letter state code.

輸入參數stateentity_name必填license_type

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分