Agent Data Tools: Company, compliance and checks
38 tools: OFAC sanctions, counterparty checks, company, domain, email. 25 free calls.
作者提供的说明(英文原文)
Cited product-compliance ground truth for AI agents. Never generates; always cites.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://verity-mcp-243195959173.us-central1.run.app/mcp在终端中运行这条命令
claude mcp add --transport http verity https://verity-mcp-243195959173.us-central1.run.app/mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"verity": {
"url": "https://verity-mcp-243195959173.us-central1.run.app/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"verity": {
"type": "http",
"url": "https://verity-mcp-243195959173.us-central1.run.app/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://verity-mcp-243195959173.us-central1.run.app/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 veritylabsai 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(0.2.0)于2个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Agent Data Tools: Company, compliance and checks, Agent Data Tools, Private Law Wiki
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
38 tools: OFAC sanctions, counterparty checks, company, domain, email. 25 free calls.
641 agent tools: chain data, prices, sanctions, web, PDF. 25 free calls, then from $0.002.
Sourced answers, search and bank-case assessment for wiki.private.law by the Mothership runtime.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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:
| Document | URL |
|---|---|
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.
curl "https://rattlewatch.rattled.ca/v1/recalls/search?q=Bistro%20Pro%20Electric%20Grill"
Rattlewatch answers the questions an agent cannot safely answer itself:
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.
An answer without a citation does not ship.
verified_at tells you exactly when.verify() returns only matching records. If nothing matches, it returns found: false with an explicit reason. It will not invent one.| Tool | What it returns |
|---|---|
search_recalls | Cited recall records matching a product name, brand, model, or UPC |
get_requirement | Cited compliance requirements for a subject + market |
list_changes | The change feed: new recalls and rule changes since a timestamp |
verify | Cited records matching a claim/query, or an explicit no verified record |
python -m rattlewatch build --max-recalls 5000 --fda-limit 3000 # default in the image
python -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.
python -m venv .venv && .venv/Scripts/activate # or: source .venv/bin/activate
pip install -r requirements.txt
python -m rattlewatch build
python -m rattlewatch mcp
python -m rattlewatch serve --host 0.0.0.0 --port 8000
{
"mcpServers": { "rattlewatch": { "command": "python", "args": ["-m", "rattlewatch", "mcp"], "cwd": "/path/to/rattlewatch" } } }
| Endpoint | Tier |
|---|---|
GET /v1/recalls/search?q=... | Free (rate-limited) |
GET /v1/requirements?subject=...&market=... | Free |
GET /v1/changes?since=... | Free |
POST /v1/verify | Free |
GET /v1/premium/export | Metered — returns HTTP 402 with an x402 payment requirement |
Interactive docs: /docs.
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.
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
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.
See [SECURITY.md](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).
export PYTHONPATH=.
python tests/test_engine.py # 13 checks — correctness + non-hallucination python tests/test_api.py # 30 checks — security + abuse
See [TESTING.md](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."
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:
docker build -t rattlewatch .
docker run -p 8000:8000 rattlewatch
Or use the hosted endpoint: https://rattlewatch.rattled.ca