Verity

io.github.veritylabsai由 GitHub 帳號 veritylabsai 發布v0.2.0更新於 Nov 2, 2026

Cited product-compliance ground truth for AI agents. Never generates; always cites.

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

概覽

AI 產生的概覽

提供附引用的美國產品召回與市場准入合規查詢,只回傳有來源的紀錄,否則明確回覆「無已驗證紀錄」。

可以做什麼
  • 依產品名稱、品牌、型號或 UPC 檢索附引用的美國召回紀錄,涵蓋 CPSC 消費品及 FDA 食品、藥品與醫療器材執法
  • 依產品類別與市場查詢附引用的市場准入要求,來自一小套精選條目(CPC、CPSC eFiling、EU GPSR、CE 標誌、REACH SVHC、RoHS、加州 Prop 65)
  • 列出指定 ISO-8601 時間點之後新增的召回與規則變更
  • 將某項說法或產品查詢與資料庫核對,回傳相符的附引用紀錄,或明確回覆「無已驗證紀錄」
適用情境
適合助理需要回答召回或合規問題、且答錯代價高、每項結論都必須有官方來源的情境。可用於產品安全檢查、採購與市場准入初篩,以及追蹤某日期以來的變化。它並非完整的法規資料庫。
執行需求
遠端 streamable HTTP 端點;未宣告驗證、環境變數或請求標頭。README 另提供自架 Python 方案,可建置本機資料庫並以 stdio 執行。
安裝前請注意
結果僅限其資料庫:空結果代表「資料庫中無紀錄」,並不表示產品安全或合規。准入要求僅涵蓋七條精選事實。README 提到一個按量計費的高級匯出端點,採用 x402 付款流程,付費代理可能產生費用;免費查詢端點有速率限制。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Verity,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

{
  "mcpServers": {
    "verity": {
      "type": "http",
      "url": "https://verity-mcp-243195959173.us-central1.run.app/mcp"
    }
  }
}

README

[Rattlewatch — cited US product recall lookup for AI agents]

US product recall lookup for AI agents — CPSC consumer products and FDA food, drug and device enforcement, with every result pinned to an official source.

The point is not that it searches; it is that it refuses to answer without a citation. Ask it something it has no record of and it says so, rather than inventing a plausible answer.

Live API: https://rattlewatch.rattled.ca MCP endpoint: https://rattlewatch.rattled.ca/mcp Interactive docs: https://rattlewatch.rattled.ca/docs

Machine-readable discovery, for agents rather than browsers:

DocumentURL
llms.txt/llms.txt
MCP server card/.well-known/mcp/server.json

One container serves both surfaces — the REST API and MCP over streamable HTTP at /mcp. That matters for registry discovery: directories introspect the image's default command, so it has to be a working MCP server.

bash
curl "https://rattlewatch.rattled.ca/v1/recalls/search?q=Bistro%20Pro%20Electric%20Grill"

Rattlewatch answers the questions an agent cannot safely answer itself:

  • Is this product, brand, or model number subject to a recall?
  • Which agency published that recall, and where is the source?
  • What recalls or rule changes appeared since a given date?

Every answer carries an official source URL and a last-verified date. Rattlewatch never generates an answer — it returns records that exist in its store, or it says "no verified record". Absence is an honest negative, not a guess.


The trust guarantee

An answer without a citation does not ship.

  • Cited — every fact and recall is pinned to an official source (CPSC, EUR-Lex, ECHA, the European Commission, OEHHA).
  • Versioned — facts are append-only. A changed answer creates a new version and a change event, never an in-place edit.
  • Current — the store is re-verified against its upstream sources on a schedule; verified_at tells you exactly when.
  • Non-generative — verify() returns only matching records. If nothing matches, it returns found: false with an explicit reason. It will not invent one.

Tools (MCP)

ToolWhat it returns
search_recallsCited recall records matching a product name, brand, model, or UPC
get_requirementCited compliance requirements for a subject + market
list_changesThe change feed: new recalls and rule changes since a timestamp
verifyCited records matching a claim/query, or an explicit no verified record

Data coverage

  • Recalls — the full structured U.S. CPSC feed (consumer products) plus openFDA enforcement reports for food, drug and device. Every record carries a resolvable source URL: the official CPSC page, or a per-record openFDA query.
  • Requirements — a small curated set of cited market-entry facts, seven in total: CPSIA/Children's Product Certificate, CPSC eFiling, EU GPSR, CE marking, REACH SVHCs, RoHS, and California Prop 65 — each with a verbatim citation. This is a companion to the recall data, not a regulatory database.
bash
python -m rattlewatch build --max-recalls 5000 --fda-limit 3000   # default in the imagepython -m rattlewatch build --fda-limit 0                          # CPSC only (used by CI)

The engine is domain-agnostic: new markets (UK, CA, AU, JP, and beyond) and new rule sets are added as more cited facts and feeds are compiled, without code change.


Quick start

bash
python -m venv .venv && .venv/Scripts/activate   # or: source .venv/bin/activatepip install -r requirements.txt
# build the store (facts + CPSC recalls)python -m rattlewatch build
# run as an MCP server over stdio (local agents)python -m rattlewatch mcp
# or serve the REST API + MCP over HTTPpython -m rattlewatch serve --host 0.0.0.0 --port 8000

Connect a client

json
{  "mcpServers": {    "rattlewatch": {      "command": "python",      "args": ["-m", "rattlewatch", "mcp"],      "cwd": "/path/to/rattlewatch"    }  }}

REST API

EndpointTier
GET /v1/recalls/search?q=...Free (rate-limited)
GET /v1/requirements?subject=...&market=...Free
GET /v1/changes?since=...Free
POST /v1/verifyFree
GET /v1/premium/exportMetered — returns HTTP 402 with an x402 payment requirement

Interactive docs: /docs.

Pricing

Free discovery and lookups, metered premium calls. The premium endpoint implements the x402 payment flow: the server returns 402 Payment Required with a structured payment requirement, and a paying agent retries with proof of payment. This is the monetization thesis in one endpoint — agents discover, agents pay. The payment rail (x402/USDC or Stripe metered billing) is wired at deploy time.


Repository

rattlewatch/  rattlewatch/    store.py      # ground-truth store (facts, recalls, events, sources)    compile.py    # ingest CPSC + cited rules    engine.py     # query logic (search, verify, change feed)    textutil.py   # normalization + matching primitives    mcp_server.py # MCP server (stdio + streamable HTTP)    api.py        # FastAPI REST + x402 stub    __main__.py   # CLI: build / stats / serve / mcp  data/rules/seed.yaml   # cited facts  tests/test_engine.py   # correctness + no-hallucination tests

Why this matters

AI generates infinite plausible text for free, so content is worth nothing. But AI hallucinates — especially on current rules, specific numbers, and what changed last week. Rattlewatch is the opposite of a generative model: a small, boring, cited layer of truth that agents and the software they power can depend on when being wrong is expensive.

Security

See SECURITY.md for the full threat model, the implemented controls, and — listed explicitly — what is not protected. Every claim there is backed by a test in tests/test_api.py.

Highlights: query input bounded at two independent layers; per-client rate limiting; API keys compared in constant time that fail closed; CORS denied by default; hardened response headers; no stack-trace leakage; container runs as an unprivileged user (UID 10001).

Testing

bash
export PYTHONPATH=.python tests/test_engine.py   # 13 checks — correctness + non-hallucinationpython tests/test_api.py      # 30 checks — security + abuse

See TESTING.md for the coverage map and an explicit list of what is not tested. A green run is not the same as "verified secure."

License

MIT — see LICENSE.

The code is open source; the hosted service is the product. Nothing about the moat lives in the source: the defensible asset is the curated, daily-refreshed, cited corpus and the freshness pipeline that maintains it. Open-sourcing the code also means the citation machinery is auditable — which matters for a product whose entire claim is that its answers can be trusted.

You can self-host it:

bash
docker build -t rattlewatch .docker run -p 8000:8000 rattlewatch

Or use the hosted endpoint: https://rattlewatch.rattled.ca

來源:README.md,提交 f1e5de4

工具

4

search_recalls

Search recalls

Search official US recall records by product name, brand, model, or UPC. Covers CPSC consumer products and FDA food, drug and device enforcement. Returns only cited records from the store, each with a source URL and a match score. If nothing matches, returns an empty list rather than guessing.

輸入參數limitquery必填market

get_requirement

Get requirement

Get cited market-entry requirements for a product subject in a given market (e.g. subject='childrens_products', market='US'). This is a small curated set, not a full regulatory database: CPC, CPSC eFiling, EU GPSR, CE marking, REACH SVHC, RoHS and California Prop 65. Returns each fact with its official citation URL and last-verified date.

輸入參數marketsubject必填

list_changes

List changes

List recall and requirement changes since an ISO-8601 timestamp (e.g. '2026-09-01T00:00:00+00:00'). Includes newly published recalls and rule changes, each with its source URL.

輸入參數limitsince必填

verify

Verify a claim

Check a claim or product query against the store. Returns only cited records (recalls and requirements) that match. Explicitly reports 'no verified record' when nothing matches -- it never synthesizes an answer, so absence means 'not in the store', not a negative claim.

輸入參數query必填

版本歷史

2
  1. v0.2.0最新Sep 21, 2026
  2. v0.1.0Sep 20, 2026

評分

已滿足適用檢查項的 100%

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

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