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 分