mcpField
R
Rattlewatch

Rattlewatch

リモート
github.com法務・行政05 週間前に更新
リポジトリ公式サイト

Rattlewatch について

Rattlewatchは、引用付きのCPSCおよびFDA記録を使って、エージェント向けにリコールや要件を検索し、記録がない場合は推測を返しません。公式情報源と検証日が必要な製品安全の照会に適しています。

主な機能

  1. 01引用付きリコール記録の検索
  2. 02引用付き要件の照会
  3. 03リコールと規則変更の一覧
  4. 04記録なしを明示して回答
  5. 05stdioとHTTPでMCPを提供

活用シーン

  1. 01製品がリコール対象か確認
  2. 02リコールの機関情報源を確認
  3. 03指定日以降の変更を確認
  4. 04保存記録に基づいて主張を検証

MCP 対応

Rattlewatchは、リコール検索、要件照会、変更フィード、検証のツールをMCPクライアントに公開します。ローカルのstdioと、`/mcp`でのStreamable HTTPに対応します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://rattlewatch.rattled.ca/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

4
パラメーター型必須説明
limitintegerいいえ
querystringはい
marketstringいいえ

詳細

Rattlewatch — AI エージェント向け、引用付きの米国製品リコール検索

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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。