Verity について
Verity(Rattlewatchとして提供)は、AIエージェント向けに米国の消費者製品、食品、医薬品、医療機器のリコール情報と、一部の市場参入要件を提供します。公式出典と検証日が付いた既存記録のみを返し、該当記録がない場合も明示します。
主な機能
- 01CPSCとFDAのリコール記録検索
- 02出典付きコンプライアンス要件の照会
- 03リコールと規則変更の確認
- 04主張を検証し記録なしを明示
- 05公式出典と検証日を各記録に付与
活用シーン
- 01製品や型番のリコール有無を確認
- 02リコールの発表機関と出典を追跡
- 03指定日以降の規則変更を確認
MCP 対応
出典付き記録を照会する search_recalls、get_requirement、list_changes、verify ツールをクライアントに公開します。stdio と streamable HTTP に対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://verity-mcp-243195959173.us-central1.run.app/mcpclaude mcp add --transport http veritylabsai-verity https://verity-mcp-243195959173.us-central1.run.app/mcp{"mcpServers":{"veritylabsai-verity":{"type":"http","url":"https://verity-mcp-243195959173.us-central1.run.app/mcp"}}}Cursor で開く{"servers":{"veritylabsai-verity":{"type":"http","url":"https://verity-mcp-243195959173.us-central1.run.app/mcp"}}}VS Code で開く{"mcpServers":{"veritylabsai-verity":{"type":"http","url":"https://verity-mcp-243195959173.us-central1.run.app/mcp"}}}{"mcpServers":{"veritylabsai-verity":{"serverUrl":"https://verity-mcp-243195959173.us-central1.run.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
4| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | |
| query | string | はい | |
| market | string | いいえ |
詳細
AI エージェント向けの米国製品リコール検索 — CPSC の消費者向け製品と、FDA の食品・医薬品・医療機器に関する執行情報を、すべて公式ソースに紐付けて提供します。
重要なのは検索することではなく、引用なしでは回答しないことです。記録にないことを尋ねられた場合、もっともらしい回答をでっち上げず、その旨を伝えます。
ライブ API: https://rattlewatch.rattled.ca MCP エンドポイント: https://rattlewatch.rattled.ca/mcp インタラクティブドキュメント: https://rattlewatch.rattled.ca/docs
ブラウザーではなくエージェント向けの、機械可読な検出情報:
| ドキュメント | URL |
|---|---|
llms.txt | /llms.txt |
| MCP サーバーカード | /.well-known/mcp/server.json |
1 つのコンテナーで、REST API と、ストリーミング可能な HTTP による /mcp 上の MCP の両方を提供します。これはレジストリでの検出に重要です。ディレクトリはイメージのデフォルトコマンドをイントロスペクションするため、動作する MCP サーバーである必要があります。
curl "https://rattlewatch.rattled.ca/v1/recalls/search?q=Bistro%20Pro%20Electric%20Grill"
Rattlewatch は、エージェントが安全に自力で回答できない質問に答えます。
- この製品、ブランド、またはモデル番号はリコール対象ですか?
- どの機関がそのリコールを公表しましたか?ソースはどこですか?
- 指定した日付以降、どのようなリコールや規則の変更がありましたか?
すべての回答には、公式ソース URL と最終確認日が付いています。Rattlewatch は回答を生成しません。ストアに存在するレコードを返すか、*「検証済みのレコードなし」*と伝えます。記録がない場合は、推測ではなく、正直に否定します。
信頼性の保証
引用のない回答は提供しません。
- 引用付き — すべての事実とリコールは公式ソース(CPSC、EUR-Lex、ECHA、欧州委員会、OEHHA)に紐付けられています。
- バージョン管理 — 事実は追記のみです。回答が変更されると、新しいバージョンと変更イベントが作成され、既存データが直接編集されることはありません。
- 最新 — ストアはスケジュールに従って上流ソースと照合し、再検証されます。
verified_atで正確な検証日時を確認できます。 - 非生成型 —
verify()は一致するレコードのみを返します。一致するものがない場合は、明示的な理由とともにfound: falseを返します。レコードをでっち上げることはありません。
ツール(MCP)
| ツール | 返される内容 |
|---|---|
search_recalls | 製品名、ブランド、モデル、または UPC に一致する、引用付きのリコールレコード |
get_requirement | 対象と市場に関する、引用付きのコンプライアンス要件 |
list_changes | 指定したタイムスタンプ以降の新しいリコールや規則変更を含む変更フィード |
verify | 主張やクエリに一致する引用付きレコード、または明示的な「検証済みのレコードなし」 |
データの対象範囲
- リコール — 米国 CPSC の構造化フィード全件(消費者向け製品)に加え、食品・医薬品・医療機器に関する openFDA の執行レポート。すべてのレコードには解決可能なソース URL が付いています。公式 CPSC ページ、またはレコードごとの openFDA クエリです。
- 要件 — 市場参入に関する、引用付きの事実を厳選した小規模なセットです。合計 7 件で、CPSIA/児童向け製品証明書、CPSC eFiling、EU GPSR、CE マーキング、REACH SVHC、RoHS、California Prop 65 が含まれます。それぞれに原文どおりの引用が付いています。これはリコールデータを補完するものであり、規制データベースではありません。
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)
エンジンはドメインに依存しません。引用付きの事実やフィードをまとめることで、コードを変更せずに、新しい市場(UK、CA、AU、JP など)や規則一式を追加できます。
クイックスタート
python -m venv .venv && .venv/Scripts/activate # or: source .venv/bin/activate
pip 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 HTTP
python -m rattlewatch serve --host 0.0.0.0 --port 8000
クライアントを接続する
{
"mcpServers": {
"rattlewatch": {
"command": "python",
"args": ["-m", "rattlewatch", "mcp"],
"cwd": "/path/to/rattlewatch"
}
}
}
REST API
| エンドポイント | ティア |
|---|---|
GET /v1/recalls/search?q=... | 無料(レート制限あり) |
GET /v1/requirements?subject=...&market=... | 無料 |
GET /v1/changes?since=... | 無料 |
POST /v1/verify | 無料 |
GET /v1/premium/export | 従量課金 — x402 の支払い要件とともに HTTP 402 を返します |
インタラクティブドキュメント:/docs。
料金
無料の検索と照会、プレミアム呼び出しは従量課金です。プレミアムエンドポイントは
x402 の決済フローを実装しています。サーバーは構造化された決済要件とともに
402 Payment Required を返し、支払いを行うエージェントは支払い証明を添えて再試行します。
これが単一のエンドポイントに集約された収益化の考え方です。エージェントが発見し、エージェントが支払います。
決済手段(x402/USDC または Stripe の従量課金)はデプロイ時に接続されます。
リポジトリ
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 はもっともらしいテキストを無料で無限に生成するため、コンテンツに価値はありません。しかし、AI は幻覚を起こします。特に、最新の規則、具体的な数値、先週からの変更点についてはそうです。Rattlewatch は生成モデルとは正反対です。間違えると大きな損失につながる場面で、エージェントや、そのエージェントが支えるソフトウェアが頼れる、簡素で地味な、出典付きの真実のレイヤーです。
セキュリティ
脅威モデル、実装済みの対策、そして明示的に列挙された保護対象外の項目については、SECURITY.md をご覧ください。そこに記載された主張はすべて、tests/test_api.py のテストで裏付けられています。
主な対策:クエリ入力を独立した2つのレイヤーで制限、クライアントごとのレート制限、API キーを定時間で比較し、失敗時は安全側に倒す、デフォルトで CORS を拒否、レスポンスヘッダーを強化、スタックトレースの漏えいを防止、コンテナは権限のないユーザー(UID 10001)として実行します。
テスト
export PYTHONPATH=.
python tests/test_engine.py # 13 checks — correctness + non-hallucination
python tests/test_api.py # 30 checks — security + abuse
カバレッジマップと、テストされていない項目の明示的な一覧については、TESTING.md をご覧ください。すべてのテストが成功しても、「セキュリティが検証済み」という意味ではありません。
ライセンス
MIT — LICENSE をご覧ください。
コードはオープンソースですが、ホスト型サービスが製品です。ソースコード自体に競争優位性はありません。守るべき資産は、厳選され、毎日更新され、出典が示されたコーパスと、それを維持する鮮度管理パイプラインです。コードをオープンソースにすることで、引用の仕組みも監査可能になります。これは、回答の信頼性を主張の柱とする製品にとって重要です。
セルフホストできます。
docker build -t rattlewatch .
docker run -p 8000:8000 rattlewatch
または、ホスト型エンドポイントをご利用ください:https://rattlewatch.rattled.ca
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。