pramana-mcp について
Pramana MCPは、記録済みのAIエージェント実行やプロンプト・モデルの比較を調べるエンジニアや監査担当者向けの読み取り専用サーバーです。トレース詳細と署名済み証拠の検証を提供し、実行の再生や比較の開始はMCPの外で行います。
主な機能
- 01記録済みエージェントトレースの条件付き一覧
- 02実行手順、モデル呼び出し、ツール呼び出しの確認
- 03プロンプトとモデルの比較結果の確認
- 04署名済み証拠バンドルのオフライン検証
- 05根本的な差分と下流への影響の区別
活用シーン
- 01本番実行でエージェントが行った処理の調査
- 02プロンプトやモデル更新後の動作変化の確認
- 03ネットワーク接続なしでの署名済み証拠バンドルの検証
- 04多数の下流差分を生んだ根本変更の追跡
MCP 対応
Pramanaのトレースやモデル差分を照会し、署名済み証拠バンドルをオフライン検証する読み取り専用ツールを提供するMCPサーバーです。再生や比較の開始には対応しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx pramana-mcpPRAMANA_API_KEYシークレットA Pramana engineer or admin API key, from Settings -> API keys at https://www.reliai.in/. An auditor key never receives recorded prompts or responses, so reads would come back empty.PRAMANA_API_URLBase URL of the Pramana API. Only set this if you are self-hosting; it defaults to the hosted API.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| agent | any | いいえ | |
| limit | integer | いいえ | |
| since | any | いいえ |
詳細
Pramana MCP サーバー
mcp-name: io.github.loopg/pramana-mcp
プロンプトやモデルの変更をリリースしても安全かどうか、自社の本番実行に対して実行して判断できます。
Pramana は AI エージェント向けのフライトレコーダーです。本番環境でエージェントが行う非決定的な判断をすべて記録し、過去の実行を変更後のコードに対して正確に再生して、どの判断が変わったかを報告します。言い換えられた文章を報告するわけではありません。
この MCP サーバーを使うと、アシスタントは Pramana が記録した内容を読み取り、署名済みの証拠バンドルをオフラインで検証できます。読み取り専用です。 再生や比較を開始するツールは意図的に用意していません。サンドボックスでのバッチ実行では、すべてのトレースについて実際にモデルを呼び出すため、費用が発生します。また、MCP ツールは人が判断しなくてもアシスタントが押せるボタンです。比較の作成は、専用の確認ゲートを備えた CLI の動詞として残しています。
インストール
インストールは不要です。uvx が必要に応じて取得します。
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または
%APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"pramana": {
"command": "uvx",
"args": ["pramana-mcp"],
"env": {
"PRAMANA_API_KEY": "<your-engineer-or-admin-api-key>"
}
}
}
}
Claude Code
$ claude mcp add pramana --env PRAMANA_API_KEY=<your-engineer-or-admin-api-key> -- uvx pramana-mcp
reliai.in の Settings → API keys でキーを作成してください。engineer
または admin キーを使用してください。auditor キーには、記録されたプロンプトや応答が意図的に含まれないため、
get_trace の結果は空になります。セルフホストする場合は、PRAMANA_API_URL に独自の API を設定してください。
ツール
list_traces
Pramana が記録した AI エージェントの実行(トレース)を一覧表示します。エージェント、ステータス、期間で絞り込むこともできます。
「先週の火曜日に、どのエージェントの実行を記録しましたか?」
{ "agent": "refund-agent", "since": "2026-09-22T00:00:00Z", "limit": 20 }
get_trace
記録されたエージェントの実行を 1 件取得します。ステップ、モデル呼び出し、引数を含むツール呼び出し、結果を確認できます。
「loan-07 の実行でエージェントが行ったことを順に説明してください。どのツールを、どのような引数で呼び出しましたか?」
{ "trace_id": "loan-07-5a6eef" }
長いペイロードは切り詰められ、その場合は完全な内容ではないことが応答で示されます。
list_model_diffs
プロンプトやモデルの変更を、記録済みの本番実行に対して確認した比較実行を一覧表示します。
「モデルをアップグレードしてから、本番環境に対して何か比較しましたか?」
{ "since": "2026-09-20T00:00:00Z", "limit": 20 }
get_model_diff
比較実行 1 件の調査結果を取得します。どの判断で動作上の変化があったか、どれが表面的な変化だったか、どの実行が停止したかを確認できます。
「先週の火曜日に新しいモデルへ移行したとき、何が変わりましたか?」
{ "diff_id": "mdr_9f2c1a", "trace_id": "loan-07-5a6eef" }
まず分類ごとの件数が返され、次に根本原因となる調査結果、最後に派生した調査結果が返されます。統合されることはありません。
下流で 40 件の差異を生じさせた根本原因は、調査すべき事柄が 40 件あるのではなく、1 件です。
trace_id の指定は任意ですが、指定すると処理が大幅に速くなります(下記の「API でできなかったこと」を参照)。
verify_bundle
アカウントもネットワーク接続も使わず、Pramana の署名済み証拠バンドルをオフラインで検証します。
「ベンダーからこの証拠バンドルが届きました。改ざんされていませんか?」
{ "bundle_path": "./bundle.json", "public_key_path": "./pramana-public-key.txt" }
public_key_path は必須です。バンドルに同梱された公開鍵を、そのバンドル自体の検証に使うことはありません。そうすると検証の意味がなくなるためです。
検証に成功すれば、署名後にバンドルが改ざんされていないことが証明されます。ただし、記録された内容が起きたことのすべてであるとは証明されません。これは記録の真正性を証明するものであり、行為の是非を判断するものではありません。
API でできなかったこと
2 つのツールは本来あるべき姿より使い勝手が悪くなっています。これは設計上の選択ではなく、API の制約によるものです。
- 比較実行をアカウント全体から取得するエンドポイントがありません。 トレース単位(
/v1/traces/{id}/model-diffs)でしか取得できないため、list_model_diffsとtrace_idを指定しないget_model_diffは、直近 20 件のトレースを順に調べます。それより古いトレースとの比較は見つかりません。短い一覧を黙って返すのではなく、すべてのレスポンスでnotesフィールドにその旨を記載します。上限がそれ以上ではなく 20 件なのは、各トレースを順番に取得する必要があるためです。本番 API で計測したところ、50 件では 6.0 秒、20 件では 2.4 秒かかりました。 /v1/tracesが返すのはエージェント ID ではなくagent_countです。 そのため、agentによるフィルタリングでは各トレースを開く必要があります。このフィルターは直近 20 件のトレースにのみ適用され、その旨も明記されます。
制限事項
これらは SDK と同じ制限事項です。レジストリ掲載向けに緩和してはいません。
- 既存の会話ログはインポートできません。 リプレイには実行トレースが必要ですが、トランスクリプトには含まれていません。コーパスの作成は、計測を始めた日からとなります。
- 判断が変わったことは報告しますが、その変更が良いかどうかは報告しません。 判断の変更を評価するのはお客様です。
- サンドボックスが対象とするのは、ラップしたツール呼び出しのみです。 サンドボックス化されたバッチでは、ラップしたツール呼び出しは記録から提供され、実際には実行されません。一方、新しいモデルこそテスト対象であるため、モデルは実際に呼び出されます。通常のリプレイでは、プロセスの外部に出るものは一切ありません。使用する HTTP クライアントにかかわらず、プロセスレベルで外向きのネットワークアクセスがブロックされます。ラップしていないツール呼び出しは Pramana からは見えず、各トレースで 1 回、通常どおり実行されます。CLI はバッチ実行前に、見つかったラップ済みツール呼び出し箇所の数と、それをバッチの件数に掛けた場合の意味を表示します。
- Python のみ対応しています。JavaScript または TypeScript の SDK はありません。
- OpenAI クライアントと Anthropic クライアントに対応しています。Azure OpenAI と
AnthropicBedrockはそれぞれのアダプターに振り分けられ、テストでもカバーされていますが、いずれも有効なクラウド認証情報を使った検証は行われていません。生のboto3には対応していません。 - LangChain はテスト済みです。LangGraph、CrewAI、LlamaIndex はテストされておらず、サポート対象外です。
- SOC 2 認証、侵入テスト、稼働時間 SLA、オンプレミス展開には対応していません。
- 証拠公開鍵は、まだ安定した URL で公開されていません。
verify_bundleはオフラインで動作し、アカウントも不要ですが、現時点では鍵を弊社から入手する必要があります。これは独立した検証とは異なり、独立した検証を実現しているとは主張していません。
証拠バンドルのサンプル
evidence-samples/ には、署名済みバンドル 2 つ、それぞれの改ざんコピー、および検証用の鍵が含まれています。アカウントもネットワークも不要です。鍵はこのディレクトリ内の sample-public-key.txt です。これはサンプル専用の別の鍵であり、本番環境のデプロイで /.well-known/pramana-evidence-public-key に公開される鍵ではありません。
$ pip install 'pramana-verify>=0.0.6'
$ pramana-verify evidence-samples/production-run.json \
--pubkey evidence-samples/sample-public-key.txt
OK — 2 event(s), merkle_root=6ec957f1ec1443e56c01bab5440df06cfbdd6bbd67c9e8c35398d02d1a840a3a
$ pramana-verify evidence-samples/production-run.TAMPERED.json \
--pubkey evidence-samples/sample-public-key.txt
TAMPERED / INVALID:
- payload 535f17dac0ea...: content does not hash to its reference — this recorded prompt or response was tampered with
evidence-samples/FORMAT.md は、各フィールドの仕様です。これらのファイルには、実際のバンドルへの署名に使う鍵ではなく、サンプル用の鍵で署名しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。