Redra について
Redraは、現在の集団訴訟和解記録を検索し、キーワードと構造化フィルターで候補を探すオープンソースのMCPサーバーです。ホスト型サービスまたはローカルデータセットを使うセルフホストに対応しますが、結果は手掛かりであり、法的な適格性判断や助言ではありません。
主な機能
- 01キーワードと構造化フィルター検索
- 02最大50件の独立検索を一括実行
- 03公式リンク付き記録の取得
- 04データソースと更新状況の報告
- 05ホスト型とセルフホストに対応
活用シーン
- 01製品やサービスに関連する和解を検索
- 02州や期限で候補を絞り込み
- 03有望な候補の公式申請リンクを確認
MCP 対応
Redraは、和解検索、一括検索、記録取得、データセット情報のツールをMCPクライアントに公開します。クライアントはホスト型のStreamable HTTPエンドポイントに接続するか、stdioまたはStreamable HTTPでローカルサーバーを実行できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.redra.ai/mcpclaude mcp add --transport http sacrosaunt-redra https://mcp.redra.ai/mcp{"mcpServers":{"sacrosaunt-redra":{"type":"http","url":"https://mcp.redra.ai/mcp"}}}Cursor で開く{"servers":{"sacrosaunt-redra":{"type":"http","url":"https://mcp.redra.ai/mcp"}}}VS Code で開く{"mcpServers":{"sacrosaunt-redra":{"type":"http","url":"https://mcp.redra.ai/mcp"}}}{"mcpServers":{"sacrosaunt-redra":{"serverUrl":"https://mcp.redra.ai/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
5| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 返すレコードの最大数。1~50。 |
| state | any | いいえ | 任意指定の米国州の 2 文字郵便略称(例:CA)。 |
| status | enum | いいえ | 公開ライフサイクルフィルター:open または upcoming。デフォルトは open です。upcoming のレコードはまだ申請できないため、別のウォッチリストとして提示する必要があります。open | upcoming |
| keywords | any | いいえ | 特定の企業、ブランド、製品、雇用主、サービス、またはインシデントを指定する必須の論理 AND 条件。代替候補には個別のクエリを使用し、分類には settlement_type を使用してください。 |
| deadline_after | any | いいえ | この ISO 8601 日付以降の期限を含めます。 |
| proof_required | any | いいえ | 証明が必要かどうか:yes、no、または unknown。 |
| deadline_before | any | いいえ | この ISO 8601 日付以前の期限を含めます。 |
| settlement_type | any | いいえ | 和解分類の完全一致フィルター。データ侵害、プライバシー、返金、金融手数料、消費者向け製品などの種類を指定する場合は、キーワードよりこちらを優先してください。 |
詳細
Redra MCP
Redra は、現在の集団訴訟和解記録を検索するオープンソースの Model Context Protocol サーバーです。 あらゆる MCP クライアントで動作し、次の 2 つの導入方法に対応しています。
- ホスト型の Redra MCP とデータセットを使用します(推奨)。
- MCP と Redra が公開するデータセットのローカルコピーの両方をセルフホストします。
Redra は、キーワードが一致する可能性のある結果を特定します。法的な適格性の判断、請求の提出、法的助言は行いません。
データソースとライセンス
技術ベータ期間中、ローカルモードでは、デフォルトで公開されている SettleSignal JSON
フィード(https://settlesignal.com/data/settlements.json)を使用します。SettleSignal は、
Hugging Face データセットカードを
公式プロフィールとして示しており、このカードでは、フィードの公開フィールドが
CC BY 4.0の下でライセンスされています。Redra は、フィールドを正規化し、派生したライフサイクルおよび品質メタデータを追加する一方で、ソースの帰属表示とリンクを維持します。
Redra は、独自に構成したコンテンツアドレス方式のopenおよびupcoming公開形式にも対応しています。この公開形式は、ゲート付きのシャドーベータ段階にあり、リリース前の確認項目に合格するまでは、新規インストール時のデフォルトにはなりません。インポートする独自レコードにはすべて、独立した発見の系譜と Tier A または B の出所情報が必要です。検証に失敗した場合、以前のローカルスナップショットは変更されません。
openレコードには、現在利用可能な申請先があります。upcomingレコードは将来の請求期間を示す証拠が必要ですが、現在利用できる請求フォームはありません。これらはウォッチリストとしてのみ公開され、openの件数と請求可能金額の合計からは除外されます。
正規化された事実情報の編集物は
CC BY 4.0の下で公開されます。検索結果には公式ソースへのリンクが保持され、ソースと変更の帰属情報が付与されます。
NOTICE.mdを参照してください。
プロバイダーは明示的に指定され、ダウンロードしたペイロードから推測されることはありません。Redra の公開データを使用するには
REDRA_DATASET_PROVIDER=independentを設定してください。移行期間中は、settlesignalのままにします。REDRA_DATASET_URLを設定すると、選択したプロバイダーのデフォルト URL を上書きできます。
このリポジトリには、和解データはコミットされていません。
ホスト型サービス(パブリックプレビュー)
現在、プロジェクトでは次のオプションのパブリックサービスを運用しています。
- ウェブサイト:
https://redra.ai/ - ドキュメント:
https://redra.ai/docs - ホスト型 MCP:
https://mcp.redra.ai/mcp - プライバシーポリシー:
https://redra.ai/privacy
ホスト型 MCP の背後にある運用データベースは非公開で、公開 Fly ルートはなく、認証済みの内部ネットワーク経由でホスト型 MCP からのみアクセスできます。 現在、MCP の利用にユーザー API キーは必要ありません。ホスト型 AI クライアントは、共有ネットワークアドレスを経由して、多数の無関係なユーザーからのリクエストを送信することがあるため、IP ごとの利用上限は設けていません。稼働時間、網羅性、または利用資格への適合性を保証せず、ベストエフォートでサービスを提供します。
Redra アプリケーションは、プロンプト、プロフィールデータ、MCP ツールの引数を永続化しません。ホスト型 MCP が受け取るのはツールの引数だけであり、エージェントの会話全体ではありません。ホスティングインフラストラクチャでは、タイムスタンプやリクエストパスなど、通常の運用メタデータが短期間アクセスログに保持される場合があります。ホスト型 MCP は、集計利用状況の測定のため、各ネットワーク送信元 IP アドレスと、累積 MCP 作業単位数を保存します。バッチ内の項目は個別にカウントされます。ネットワーク送信元はプロバイダーの共有インフラストラクチャである場合があり、Redra ユーザーの識別情報や利用上限のキーとして扱われません。検索語やツールの引数がこのカウンターに関連付けられることはありません。セルフホスト型 Redra では、このホスト型利用カウンターは有効になりません。
オプション 1:ホスト型 MCP とデータセット(推奨)
Streamable HTTP MCP クライアントを Redra サービスが公開している URL に接続します。現在の URL は次のとおりです。
https://mcp.redra.ai/mcp
ローカルプロセスやデータセットは必要ありません。
オプション 2:セルフホスト型 MCP とデータセット
Python 3.11 以降が必要です。Redra をクローンしてインストールします。
git clone https://github.com/sacrosaunt/Redra.git
cd Redra
python -m venv .venv
source .venv/bin/activate
pip install -e .
このプロジェクトでは、公式 Python MCP SDK の現行安定版 v1 系として
mcp>=1.27,<2 を固定しています。このリリースのビルド時点では、バージョン 2 はまだプレリリースでした。
和解データセットをダウンロードして、ローカル MCP を起動します。
export REDRA_DATABASE_PATH="$PWD/data/settlements.db"
redra-mcp dataset update
redra-mcp serve --transport stdio
更新はトランザクション方式です。ダウンロードに失敗した場合や、ソースのペイロードが無効な場合でも、以前の SQLite データセットはそのまま保持されます。ローカルデータセットを自動的に最新の状態に保つには、次のコマンドを実行します。
redra-mcp dataset watch --interval-hours 24
このコマンドは直ちに更新を実行し、その後は 24 時間ごとに更新します。これは任意です。セルフホストする場合は、既存の cron システムから dataset update を実行する方法もあります。
ローカル MCP を Streamable HTTP 経由で公開するには、次のコマンドを実行します。
export REDRA_PORT=8000
redra-mcp serve --transport streamable-http
MCP エンドポイントは /mcp で、デフォルトでは 127.0.0.1 にバインドされます。
ネットワークの安全性: Redra の HTTP トランスポートには、認証も TLS もありません。信頼できる認証済みリバースプロキシ、ファイアウォール、またはプライベートネットワークでアクセスを保護しない限り、
0.0.0.0にバインドしたり、ポート 8000 を直接公開したりしないでください。
Docker
サーバーと 1 日に 1 回実行する更新プロセスを起動します。
docker compose up --build
更新プロセスと MCP は SQLite ボリュームを共有します。更新に失敗しても MCP は引き続き利用でき、以前の有効なスナップショットが保持されます。Compose はホストのループバックインターフェース 127.0.0.1:8000 でのみ MCP を公開します。
MCP ツール
search_settlements:キーワードと構造化フィルターによる検索です。search_settlements_batch:1 回の MCP 呼び出しで、最大 50 件の独立した検索を実行します。各クエリのキーワードの論理積(AND)の意味は変わりません。クエリ間でレコードは重複排除され、matched_query_indicesにより、各レコードが見つかったすべての検索の観点が保持されます。get_settlement:1 件のレコードとその公式ソースへのリンクを取得します。ブラウジングが利用可能な場合に、適格条件の全容を確認するようエージェントに案内します。get_settlements:回答を作成する前に、最終候補のレコードを最大 20 件まとめて取得します。get_dataset_info:ソース、ライセンス、鮮度、件数を返します。
ホスト型プロバイダーは、キャッシュされた請求可能金額の概要もデータセット情報とともに返します。この金額は、請求可能金額への算入が明示的に指定されたレコードのみを対象に計算されます。今後のレコードは算入されません。セルフホスト型プロバイダーは、同じ extra オブジェクトにプロバイダー固有の集計指標を追加で返す場合があります。
検索の動作
keywords の各項目は必須です(論理積(AND))。関連のない企業、製品、または代替用語を検索する場合、エージェントは search_settlements_batch で独立したクエリオブジェクトを使用してください。これにより、各クエリの意味を保ちながら、MCP の呼び出しを何度も繰り返すことを避けられます。
バッチ検索では、すべてのクエリで返される一意のレコード数を max_total_results で制限します。デフォルトは 50 で、最大 100 まで設定できます。この上限によって、実行される検索の数が減ることはありません。クエリの概要には、各クエリの一致総数、サンプル数、返された ID、サンプルから省略された件数が示されます。一意のレコードはトップレベルの items リストに 1 回だけ表示されます。
適格性を幅広く調べる検索では、MCP はエージェントに対し、クライアントが利用可能にするコンテキストから想起される、もっともらしいブランド、別名、親会社、子会社、サービス、購入、料金、インシデントを幅広く検索するよう指示します。また、州、年齢層、職業、学生または退役軍人としての状況、親または保護者としての状況、住居または世帯の状況など、適格性に関係する人口統計上の観点も考慮します。
想起または推測された関連性は、クエリの候補であって事実や適格性の判断ではありません。また、クエリに個人を特定できる情報を含めてはいけません。カテゴリや人口統計上の関連性だけでは、結果を一致と見なすには不十分です。
妥当と思われる結果ごとに、ウェブにアクセスできるエージェントは、公式の和解または請求ページを確認し、クラスの定義、対象となる日付、対象の製品やサービス、地理的な制限、除外条件、証明要件、期限を調べます。エージェントは、ユーザーが提供した情報と、確認済みの条件のみを照合します。最終回答を作成する前に、エージェントはすべての最終候補について、get_settlement または get_settlements で保存済みの完全な記録を取得します。妥当と思われる結果は、どのような理由で候補に挙がったのか、確認済みの一致条件、重要な未確認事項、期限、支給額、証明要件、利用可能な場合は公式リンクを示す簡潔な候補カードとして提示します。緊急度よりも証拠の強さを優先し、Notice found、Strong possible match、Needs your confirmation などのラベルを使用します。期限が迫っている場合は、目立つように表示します。
通知が直接届いていることは強い証拠ですが、クラスのすべての条件を満たしていることの証明にはなりません。未確認事項によって推奨内容が変わる可能性がある場合、エージェントは行動を勧める前に、要点を絞った、機微情報に当たらない質問をします。進行中に言及した候補については、最終回答で明確な結論を示します。また、カテゴリや属性だけに基づく候補は、ユーザーが網羅的な調査を求めない限り、行動リストに含めません。
エージェントは追加情報を求める前に、検索と調査を行います。機微情報に当たらない回答によって候補の妥当性が大きく明確になる場合、クライアントにネイティブの構造化質問または質問カードのインターフェースがあれば、それを優先します。そのインターフェースがないクライアントでは、同じ要点を絞った質問をチャットで直接尋ねます。質問では回答が重要な理由を説明し、適切な場合は Not sure または Skip の選択肢を示します。また、個人を特定できる情報や機微情報を求めてはなりません。
ブラウジング機能のないエージェントは、条件全体を独自に確認できなかったことを明示し、推測を避け、公式リンクを案内する必要があります。
請求の status の既定値は open です。公開 MCP がサポートするのは open と upcoming のみです。広範な open 検索で信頼できる候補が見つからない場合、または有力な候補が少ない場合、エージェントはユーザーに関連性の高い切り口に絞って upcoming 検索を行うことがあります。upcoming の記録はまだ請求できないため、別個のウォッチリストとして提示し、現在の請求件数と金額の合計から除外します。過去の記録、支払い状況、確定していないライフサイクル状態は、公開検索オプションとしては表示せず、内部情報として扱います。
プロバイダーの不透明な検証レベルは検索フィルターではありません。透明性を確保するため、結果には source_verification_status として保持します。Redra は、客観的な情報である source_kind、source_checked_at、claim_url_available、claimability、quality_flags も返します。Verified record などのソースラベルは、期限によって判定できる場合、open または closed のライフサイクル状態に変換されます。
種類で検索する場合は、キーワードではなく、正確な settlement_type フィルターを使用します。選択できる値は class_action_settlement、consumer_product_settlement、data_breach_settlement、financial_fee_settlement、government_refund、other_consumer_compensation、privacy_settlement、regulatory_compensation_program、state_ag_refund です。キーワード検索では意図的に settlement_type フィールドを検索しません。
その他のフィルターには、州、証明要件、期限の範囲、結果数の上限があります。applicable_states のリストが空の場合は、全米が対象と見なされます。
環境変数
| 変数 | 用途 | デフォルト |
|---|---|---|
REDRA_DATABASE_PATH | ローカル SQLite データベース | プラットフォームのデータディレクトリ |
REDRA_DATASET_PROVIDER | データセットの契約:settlesignal または independent | settlesignal |
REDRA_DATASET_URL | 選択したプロバイダーの URL を上書きします | プロバイダー固有のデフォルト |
REDRA_REQUEST_TIMEOUT | HTTP のタイムアウト(秒) | 20 |
REDRA_HOST | ストリーマブル HTTP のバインドアドレス | 127.0.0.1 |
REDRA_PORT / PORT | ストリーマブル HTTP のポート | 8000 |
REDRA_RATE_LIMIT_PER_HOUR | IP ごとに許可するストリーマブル HTTP リクエスト数。0 で無効 | 0 |
REDRA_TRUST_FLY_HEADERS | Fly のクライアント IP ヘッダーを信頼します | false |
REDRA_MAX_CONCURRENT_REQUESTS | 同時に処理する HTTP リクエストの上限。0 で無効 | 0 |
REDRA_MAX_REQUEST_BODY_BYTES | ストリーマブル HTTP リクエストボディの最大サイズ。0 で無効 | 1048576 |
REDRA_SEARCH_CACHE_TTL_SECONDS | プロセス内の正規化済み検索キャッシュの有効期間。0 で無効 | 30 |
REDRA_SEARCH_CACHE_MAX_ENTRIES | プロセス内の検索キャッシュエントリの最大数。0 で無効 | 512 |
IP ごとのレート制限は、デフォルトで無効です。ChatGPT、Claude、またはその他のホスト型クライアントの背後で、ユーザーごとのクォータとして使用しないでください。無関係なユーザーがプロバイダーの外向き IP アドレスを共有する場合があるためです。直接のネットワークトポロジーを把握している運用担当者は、明示的に有効にできます。任意の X-Forwarded-For 値が信頼されることはありません。ローカルの stdio モードでは、レート制限は適用されません。
REDRA_TRUST_FLY_HEADERS を有効にするのは、プロセスが実際に Fly の信頼できるプロキシ経路の背後にある場合に限ってください。任意のプロキシの背後で有効にすると、クライアントがレート制限に使われるアドレスを偽装できるおそれがあります。
ホスト型 MCP では、サイズを制限したリクエストボディ、同時実行数の上限、正規化済みの同一検索を対象とする短期間の制限付きキャッシュ、および集計ワークユニットに対する一元化された緊急上限を使用します。バッチ内の各項目は、この上限に個別にカウントされます。キャッシュキーにはプロセスごとに生成した鍵付きダイジェストを使用し、キャッシュ値には送信されたクエリ引数ではなく、公開済みの和解結果を格納します。緊急上限はサービス全体のサーキットブレーカーであり、ユーザークォータではありません。そのデータセットサービスは一般の呼び出し元には公開されず、別途内部の同時実行保護を使用します。
プライバシーと安全性
氏名、メールアドレス、住所、口座番号、健康情報、請求識別子、またはその他の個人を特定できる情報を送信しないでください。ブランド、製品、雇用主、サービス、インシデント、日付範囲、州の情報で検索してください。請求情報を提供する前に、必ず公式の管理機関に問い合わせるようユーザーに案内してください。ホスト型サービスは、プロンプト、プロファイル、ツール引数を永続化しないよう設計されていますが、リクエスト経路全体を管理する必要がある場合は、MCP とデータセットをセルフホストしてください。
開発
pip install -e '.[dev]'
pytest
脆弱性は、SECURITY.md に記載されている方法で非公開で報告してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。