rail-score について
rail-score は、コンテンツ評価、安全ガードレール、インドの DPDP 法対応ツールをエージェントに提供するホスト型リモート MCP サーバーです。既存の REST API を中継し、ポリシー閾値、インジェクション検出、PII スキャン、ツール呼び出し判定に対応します。
主な機能
- 01RAIL の各次元でポリシー付きコンテンツ評価
- 02複数の規制への準拠状況の確認
- 03プロンプトインジェクションとツール呼び出しのリスク検出
- 04PII とインジェクション内容のスキャン・マスキング
- 05インドの DPDP スキャンと処理ゲート
- 06無料の読み取り専用フレームワークリソース
活用シーン
- 01エージェントが処理する前の未信頼入力の検査
- 02ツール実行前の呼び出し許可・警告・ブロック
- 03ツール結果のスキャンと機密情報のマスキング
- 04インドでの DPDP 処理フローの確認
MCP 対応
単一の HTTP エンドポイントを通じて、9 個のツールと 3 個の読み取り専用リソースを MCP クライアントに提供します。接続には RAIL API キーが必要で、セルフホストも可能です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.responsibleailabs.ai/mcpclaude mcp add --transport http ai-responsibleailabs-rail-score https://mcp.responsibleailabs.ai/mcp{"mcpServers":{"ai-responsibleailabs-rail-score":{"type":"http","url":"https://mcp.responsibleailabs.ai/mcp"}}}Cursor で開く{"servers":{"ai-responsibleailabs-rail-score":{"type":"http","url":"https://mcp.responsibleailabs.ai/mcp"}}}VS Code で開く{"mcpServers":{"ai-responsibleailabs-rail-score":{"type":"http","url":"https://mcp.responsibleailabs.ai/mcp"}}}{"mcpServers":{"ai-responsibleailabs-rail-score":{"serverUrl":"https://mcp.responsibleailabs.ai/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
RAIL Score MCP サーバー
1つのURLで、あらゆるエージェントに責任あるAIのセーフティレイヤーを追加できます。
リモートホスト型のModel Context Protocolサーバーです。RAIL Score の評価、エージェントのガードレール、インドの DPDP コンプライアンス機能を、Claude、ChatGPT、Cursor、Copilot、Replit Agent、LangGraph、CrewAI、またはカスタムスタックなど、あらゆる MCP クライアントに SDK 統合なしで提供します。
https://mcp.responsibleailabs.ai/mcp
このサーバーは、既存の REST API api.responsibleailabs.ai/railscore/v1/ の前段にある、堅牢化された薄いゲートウェイです。スコアリングロジックは再実装せず、呼び出し元を検証し、エージェントが使いやすいようにリクエストとレスポンスを整形して、エンジンに転送します。MCP と REST のどちらを利用しても、クレジット、テナント管理、レート制限は同一です。
クイックスタート
ダッシュボードから RAIL API キー(rail_...)を取得してください。
Claude Code
claude mcp add --transport http rail https://mcp.responsibleailabs.ai/mcp \
--header "Authorization: Bearer ${RAIL_API_KEY}"
Cursor / Windsurf(.cursor/mcp.json)
{
"mcpServers": {
"rail": {
"url": "https://mcp.responsibleailabs.ai/mcp",
"headers": { "Authorization": "Bearer rail_YOUR_KEY" }
}
}
}
Claude.ai / Desktop — Settings → Connectors → Add custom connector → URL に
https://mcp.responsibleailabs.ai/mcp を入力し、rail_ キーを貼り付けます。
その他のクライアント(OpenAI Responses API、LangGraph、Replit)の設定は docs.responsibleailabs.ai/mcpに記載されています。
ツール
9つのツールはすべて rail_ で始まります。エージェントは説明だけを基にツールを選択するため、説明にはコスト、レイテンシ、ツールを使用すべきでない場合が記載されています。
| ツール | 目的 | クレジット |
|---|---|---|
rail_evaluate | 8つの RAIL 次元でコンテンツをスコアリングします(任意で policy を適用) | 基本 1.0 /詳細 3.0 |
rail_check_compliance | gdpr、ccpa、hipaa、eu_ai_act、india_dpdp、india_ai_gov に照らして確認します | 5~10 |
rail_detect_injection | 信頼できないテキスト内のプロンプトインジェクションを検出します | 0.5 |
rail_evaluate_tool_call | ツール呼び出しを実行する前に、許可/警告/ブロックします | 1.5~3.0 |
rail_scan_tool_result | ツールの出力を PII とインジェクションについてスキャンし、墨消し済みのテキストを返します | 0.5~1.0 |
rail_safe_regenerate | 合格するまでコンテンツを反復再生成します(低速) | 1~9 |
rail_dpdp_scan | DPDP Act 2023 に基づき、インドの個人データをスキャンします | 0.5 |
rail_dpdp_gate | DPDP 処理のリアルタイムゲート(allow/block/require_action) | 0.3 |
rail_dpdp_compliance | DPDP ワークフロー:emit、require、evidence、session、timers | 変動 |
読み取り専用のリソースが3つあります(無料、クレジット消費なし):rail://framework/dimensions、
rail://account/capabilities、および rail://framework/policy-schema(policy パラメーター用の JSON Schema)。
ポリシーの適用
rail_evaluate は、次元ごとのしきい値ルールを指定する任意の policy を受け付け、policy_outcome を返します。次元のスコアがしきい値を下回るとルールが発動します。action は発動したアクションのうち最も重大なもの(block > flag > warn > allow)で、rail-score-sdk の Policy/Rule の形式に準拠します。
{ "rules": [
{ "dimension": "safety", "threshold": 7.0, "action": "block" },
{ "dimension": "fairness", "threshold": 6.0, "action": "flag" }
] }
優先順位:API キーのアプリケーションでダッシュボードポリシーが適用されている場合は、それが優先されます(policy_outcome.source: "application")。そうでない場合は、リクエストの policy がゲートウェイ内で適用されます(source: "request")。追加のクレジットはかかりません。
ガード付きエージェントループ
標準的な使い方は、エージェントの推論を最初から最後までラップすることです。
- 信頼できない入力に対して、処理を行う前に
rail_detect_injectionを実行します - ツール呼び出しを実行する前に
rail_evaluate_tool_callを実行します(ブロックは即時停止) - ツールの出力に対して
rail_scan_tool_resultを実行します(墨消し済みのテキストを推奨) - 回答案に対して
rail_evaluate(deep)を実行するか、rail_safe_regenerateで修正します - インドでのデプロイメントでは、境界外へ出るすべてのデータに対して
rail_dpdp_scan(mask)を実行します
セキュリティモデル
安全性を提供する製品そのものが安全でなければ、信頼性を損ないます。リリースを阻む要件(適用済みで、リグレッションテストによる検証も実施済み):
- 判定結果は構造化データであり、エージェントが無視できる助言的な文章ではありません。
- 分析対象の内容は一切反映しません。 ツールが返すのは判定結果、スコア、該当箇所、マスキング済みの抜粋のみで、分析対象の生テキストは返しません(二次的なインジェクションを防ぎます)。
- 生の個人情報は返しません。 検出結果として返すのは、マスキング済みの値とオフセットのみです。
- テナント分離は設計上確保されています。 ID は認証ミドルウェアで検証されたキーから取得し、ツールのパラメーターからは取得しません。
- フェーズ 2 ではトークンを引き継ぎません。 クライアントのトークンは検証後に破棄し、下流への呼び出しにはゲートウェイのサービス認証情報を使用します。フェーズ 1 では、ベアラー
rail_キーが顧客の RAIL 認証情報そのものであるため、テナントごとのクレジットと分離を維持するために上流へ転送します。 - 入力上限、タイムアウト、レート制限、監査ログを適用します(内容の本文は記録しません)。
tests/test_no_reflection.py と tests/test_pii_masking.py を参照してください。これらは CI の必須ゲートとして実行されます。
アーキテクチャ
- トランスポート: Streamable HTTP のみを使用し、エンドポイントは
/mcpの 1 つです(SSE は廃止予定です)。 - 状態:
stateless_http=True、json_response=Trueにより、通常のロードバランサーの背後で水平スケーリングできます。また、MCP 2026-07-28 のステートレスコアに準拠しています。 - 認証(フェーズ 1):
Authorization: Bearer rail_...またはX-API-Key: rail_...(後者は Bearer プレフィックスが不要で、ゲートウェイに適しています)によるrail_キーを、auth.RailKeyMiddlewareがPOST /verifyに対して一度だけ検証します(結果は 5 分間キャッシュされます)。その後、リクエストコンテキストに紐付けます。 - ディスカバリー:
GET /.well-known/mcp/server-card.json(公開)により、認証壁の背後をスキャンするレジストリ(Smithery など)がキーなしでツールを列挙できます。 - 認証(フェーズ 2): SDK の
TokenVerifierを使用した OAuth 2.1 リソースサーバー(RFC 9728 メタデータ、RFC 8707 オーディエンスバインディング)。
rail_client.py thin httpx client to api.responsibleailabs.ai (forwards key, propagates X-Request-ID)
auth.py RailKeyMiddleware: validate rail_ keys, bind tenant
request_context.py per-request ContextVars (key, tenant, request id)
server.py FastMCP app: 9 tools + 3 resources + landing (/) + /health + server-card
server.json official MCP registry manifest (ai.responsibleailabs/rail-score)
ローカル開発
python -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.txt
ruff check . && pytest # unit + safety regression tests
RAIL_API_BASE=https://api.responsibleailabs.ai python server.py # serves on :8080
起動中のサーバーに対するプロトコルのスモークテスト(有効なキーが必要です):
npx @modelcontextprotocol/inspector --cli \
http://localhost:8080/mcp --method tools/list \
--header "Authorization: Bearer ${RAIL_API_KEY}"
設定
| 環境変数 | デフォルト | 用途 |
|---|---|---|
RAIL_API_BASE | https://api.responsibleailabs.ai | 上流の REST API |
MCP_PORT | 8080 | バインドポート |
RAIL_UPSTREAM_TIMEOUT | 60 | 上流呼び出しのタイムアウト(秒) |
RAIL_KEY_CACHE_TTL | 300 | 検証済みキーのキャッシュ TTL(秒) |
ホスティング
Responsible AI Labs はホスト型サーバー https://mcp.responsibleailabs.ai/mcp を運用しています。ほとんどの方は、この URL に接続するだけでよく、何も実行する必要はありません。
セルフホストするには、イメージをビルドして HTTP を提供する任意の環境で実行し、RAIL_API_BASE(デフォルト値)を使って公開 REST API に接続してください。シークレットは不要です。顧客の RAIL キーは各リクエストに含まれて送信されます。
docker build -t rail-score-mcp .
docker run -p 8080:8080 -e RAIL_API_BASE=https://api.responsibleailabs.ai rail-score-mcp
レジストリ
server.json と mcp-publisher CLI を使用し、公式 MCP レジストリに ai.responsibleailabs/rail-score として公開されています(DNS 認証済みの responsibleailabs.ai 名前空間)。タグ付きの GitHub リリースにより、publish-registry ジョブが自動実行されます。
サードパーティのディレクトリ(Smithery、Glama、PulseMCP、mcp.so)は、リポジトリと公式レジストリをそれぞれ独立してインデックス化します。各ディレクトリで個別に登録申請し、更新する必要があり、自動同期されないため、掲載内容の更新がリリースより遅れることがあります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。