invinoveritas について
invinoveritas は、重要または取り消せない操作を行う AI エージェント向けのホスト型 MCP レビューゲートです。独立した助言的な判定と署名付き証明を返し、公開の Bitcoin アンカー付き台帳を通じて再計算・検証できます。
主な機能
- 01エージェント操作の独立レビュー
- 02問題の順位付けと署名付き証明
- 03証明の無料検証
- 04公開判定台帳
- 05第三者の主張の公証
活用シーン
- 01公開前にコード差分をレビュー
- 02実行前にシェルコマンドを確認
- 03他者から受け取った署名判定を検証
- 04第三者の主張を時刻付きで記録
MCP 対応
ホスト型 Streamable HTTP MCP サーバーは、レビュー、証明検証、支払いレシート、公証、台帳関連のツールを提供します。エージェントは https://api.babyblueviper.com/mcp/verify に接続し、一部ツールでは認証が必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.babyblueviper.com/mcp/verifyclaude mcp add --transport http com-babyblueviper-invinoveritas https://api.babyblueviper.com/mcp/verify{"mcpServers":{"com-babyblueviper-invinoveritas":{"type":"http","url":"https://api.babyblueviper.com/mcp/verify"}}}Cursor で開く{"servers":{"com-babyblueviper-invinoveritas":{"type":"http","url":"https://api.babyblueviper.com/mcp/verify"}}}VS Code で開く{"mcpServers":{"com-babyblueviper-invinoveritas":{"type":"http","url":"https://api.babyblueviper.com/mcp/verify"}}}{"mcpServers":{"com-babyblueviper-invinoveritas":{"serverUrl":"https://api.babyblueviper.com/mcp/verify"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
10| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sign | boolean | いいえ | 評価結果をポータブルな署名付き証明として返します(評価結果、成果物のハッシュ、invinoveritas の公開鍵、およびコンテンツアドレス方式の decision_ref を結び付けます)。誰でも後から verify_proof で検証できます。 |
| facts | object | いいえ | 任意。policy と併用します。決定論的ルールが読み取る構造化リクエストフィールド(例:recipient、amount_atomic、chain、token)。 |
| policy | object | いいえ | 任意(2026-10-13):policy によって制御される評価。{schema: 'invinoveritas.review_policy.v1', deterministic: [{id, field, op (eq|ne|in|not_in|lte|lt|gte|gt), value}], substantive: [{id, requirement, accept_states (subset of [VERIFIED, DECLARED_ONLY], default [VERIFIED]), min_provenance (requester_supplied|independent)}]}。まずコード内で `facts` に照らして決定論的ルールを検証します。FAIL または MISSING があれば、モデルを呼び出さずに拒否します。モデルに渡されるのは実質条件のみで、各条件について VERIFIED / DECLARED_ONLY / CONTRADICTED / INSUFFICIENT を返し、その後、固定ルールが結果を決定します。結果の policy_evaluation(署名付き証明にも含まれます)は、主張の種別を示します。すべての条件が証拠によって VERIFIED と確認された場合のみ 'factual'、それ以外は 'declarative' です。verdict_relay と組み合わせると、Base 上で VerdictGatedEscrow の支払いをリリースできます。 |
| context | string | いいえ | 達成したいこと、今行う理由、成功基準 |
| artifact | string | はい | 評価対象の成果物:統合差分/パッチ、shell コマンド、計画、設定、分析、エージェントの出力、または生テキスト |
| concerns | string | いいえ | 確認する具体的な事項(例:「本番環境の安全性」「取引ロジックのエッジケース」「規制上のリスク」) |
| evidence | array | いいえ | 任意。policy と併用します。実質条件に対応する [{id, provenance (requester_supplied|independent), kind, content}]。 |
| artifact_type | enum | いいえ | 成果物の種類。'code_diff' または 'patch' は詳細なコードレビューを実行します。'plan' はアーキテクチャ/戦略向けです。'trade' は、提案されたエントリー/エグジットを対象に、資金規模を考慮したリスク管理レビューを実行します。'onchain_action' は、署名する前に、提案されたオンチェーン送金/スワップ/承認/コントラクト呼び出し(例:Base MCP アクション)のリスクレビューを実行し、詐欺/ハニーポットトークン、無制限の利用許可を悪用する資金流出、アドレスポイズニング、スリッページ/MEV を検出します。'sanctions_screening' は、実行前のコンプライアンス/AML 結果向けです。分類された判定(例:CLEAN)に固有の適用範囲があり、範囲が不明な主張ではないことを確認します。種類に応じて重点項目と提案を調整します。重要:trade/onchain_action/sanctions_screening では、内容上は approve 寄りの評価でも、取り消せない操作の信頼度が低いことだけを理由に REJECT になる場合があります。レスポンスの reversibility_gate フィールドを確認してください。存在する場合、epistemic_basis が拒否理由を示します。'evidence_against' は、決定論的エンジンが実際の肯定的な検出(既知の不正アドレス、オンチェーン/制裁対象の該当)を見つけたことを意味します。'insufficient_evidence' は、どちらの方向の検出もなく、信頼度が可逆性の下限を下回っただけであることを意味します。状況は異なるため、独自のロジックが理由によって分岐する場合は、同一視しないでください。code_diff | patch | shell_command | plan | config_change | analysis | agent_output | trade | onchain_action | sanctions_screening | general |
| verdict_relay | object | いいえ | 任意(verdict-relay/v2):同時に BIP-340 署名を返し、ERC-8414 InvinoveritasVerdictAuthoritySigned コントラクトがオンチェーンで検証できるようにします(garyyang-finchip/task-token-standard#2)。{chain_id, authority, task_contract, token_id, submission_id, task_version, result_hash, task_document}。sign=true が必要です。result_hash は成果物そのものの sha256 でなければなりません。task_document はタスク文書のプレーンテキスト(sha256 = カーネルの tdHash)で、レビューコンテキストに含められます。approved/decision_ref は独自の評価結果に基づきます(approve->true、reject->false。concerns/defer は署名されません)。料金が発生する前に検証されます。結果フィールドは verdict_relay です。 |
| action_binding | object | いいえ | 任意:この評価が許可する、現実世界での正確な操作を指定します。ツール識別子、テンプレートではない具体化済みの引数、および実行するエージェントの ID を指定します。例:{'tool': 'place_order', 'agent_id': 'your-stable-agent-id', 'args': {...}}。v14+:`tool` と `args` は別々のプリイメージフィールドとして紐付けられます(action_binding_tool_hash = sha256(tool)、action_binding_args_hash = sha256(RFC-8785-JCS(args)))。これにより、検証者は「同じツール、異なる引数」を検証可能な命題として確認できます。`agent_id` は通常の文字列として紐付けられます(action_binding_agent_id、ハッシュ化されません)。すべての値は decision_ref に直接組み込まれるため、評価結果は自由記述の `artifact` 引数や評価結論だけでなく、正確な操作を確定します。tool/args/agent_id の値がバイト単位で完全一致しない状態で decision_ref を再計算すると、異なるハッシュになります。承認を別のツール、異なる具体化済み引数、または別のエージェントに対して再利用することはできません。各サブキーは任意です。JSON エンコード後の最大サイズは約8KBです。当方では独立検証せず、送信された内容をそのままハッシュ化します。正直なところ、呼び出し元が情報不足の action_binding(例:tool+side は指定するが size は指定しない)を送信し、省略した項目の範囲で再利用可能な承認を得ることは可能です。これはフィンガープリントに何を含めるかを誰が決めるかの問題であり、ハッシュ方法の問題ではありません。 |
| related_claims | object | いいえ | 任意(policy v20):related_proof_event に関する構造化された主張です。{artifact_hash, verdict, verified_at, policy_version, decision_ref} の非空部分集合を指定します。参照先の証明と完全一致で比較します(証明は再検証します)。主張のハッシュ、比較バージョン、結果(matched|mismatched|missing_proof|unverifiable_proof。省略時は not_supplied)は decision_ref にバインドされます。忠実な再記述のみを行い、関連性、認可、真実性を示すものではありません。 |
| disclosed_summary | string | いいえ | confidentiality_tier='partial_disclosure' の場合にのみ使用します。公開することを選択したレビュー対象の成果物/判定について、実際の内容を人が読める形で説明します。加工せず decision_ref にバインドされます。他の tier 値では無視されます。 |
| external_evidence | array | いいえ | 任意(v17、2026-09-10):この判定が依拠した第三者の証拠です。例:ツール信頼性レジストリ独自の過去の PASS/FAIL 記録(arian-gogani/nobulex-registry#1 とライブで検証)。配列:{'source': str, 'record': str(発行者自身が保存した正確なバイト列をそのまま使用。こちら側で JSON として再解析/再出力しない), 'record_sha256': str(発行者が計算した値で、こちらでは独立検証しない), 'evidence_type': str, 'observed_at': ISO 8601, 'validity_until': ISO 8601 | null}。全エントリをまとめてハッシュ化(RFC-8785-JCS)して external_evidence_hash を生成し、decision_ref にバインドします。これにより、推論テキストで主張するだけでなく、「この証拠そのものが判定で考慮された」ことを検証できます。発行者の認証、record_sha256 の検証、有効性の確認は行いません。引用された証拠に依拠する前に、呼び出し側が責任を持って確認してください。 |
| intended_audience | string | いいえ | 任意:宣言する判定の対象(自身の DID、エンドポイント URL、ゲートウェイ識別子など)を指定します。decision_ref にバインドされるため、発行後に密かに削除または変更できません。独立検証は行いません。読み手は自身の識別情報と比較し、不一致の場合は、証明が意図されたコンテキスト外で提示された可能性を示すものとして扱ってください。これは実際のコンテキストバインディングにおけるリプレイ保護の欠落であり、以前の policy バージョンでは表現する手段がありませんでした。 |
| intended_verifier | string | いいえ | 任意:CAIP-10 文字列で、この判定の検証対象となる特定のオンチェーン検証器/ゲートを指定します。例:'eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432'。decision_ref(それ自体が schnorr 署名対象のコンテンツに含まれる)にバインドされるため、暗号レベルで実際のドメイン分離を実現します。これがないと、署名対象の生バイト列は当社の公開鍵とコンテンツにしかバインドされず、特定のチェーン/コントラクトには結び付きません。そのため、受け入れる任意のゲートに対して技術的には証明をリプレイできます。独立検証は行いません。ゲート側で自身の chain_id/address と比較します。 |
| severity_threshold | enum | いいえ | 報告する最小重大度blocker | high | medium | all |
| related_proof_event | object | いいえ | 任意:レビュー対象の成果物自体が、他者の署名済み判定証明(判定の再レビュー)である場合、その証明の完全な署名付きイベント({id, pubkey, created_at, kind, tags, content, sig})を渡してください。その source_class が今回の呼び出し自身の source_class に影響する前に、当方で独立して再検証します。格付けは上限で制限され、引き上げられることはありません(内側の判定が agent_reported の場合、それをレビューする independent_mediator 呼び出しも agent_reported のままです)。内側のイベントが検証できない場合は、あなた自身のレジストリ状態にかかわらず agent_reported にフェイルクローズします。1 ホップのみです。適用範囲についての注意:引用されたイベント自体の真正性を検証しますが、それが成果物の主張どおり再レビュー対象であることまでは検証しません。 |
| request_capture_ref | string | いいえ | 任意:リクエスト側が管理するコミットメント(自身で生成し、リクエスト時点で存在したことを独立して証明できるハッシュ/ID)です。この成果物がレビューに提出されたことを示します(captured-admission-v0 レビュープロファイル、trustless-ai/recompute-kit)。レスポンスの admission_receipt にそのまま反映されます。当方では独立検証しません。オプトインしたリクエスト側に限り、/ledger の生テープと公開内容の間のギャップを埋めます。 |
| confidentiality_tier | enum | いいえ | この判定で使用するプライバシーと証拠性のトレードオフです。sign=true の場合にのみ意味があります。'hash_only'(デフォルト):証明には artifact_hash のみを含め、元のコンテンツは開示しません。プライバシーは最も強く、単独での証拠価値は最も弱くなります(後であなたの協力を得ない限り、第三者はハッシュが何に対応するか確認できません)。'partial_disclosure':disclosed_summary を渡し、加工せず decision_ref にバインドします。これにより、全面的な開示なしに第三者が実際のコンテキストを確認できます。'full_disclosure':この判定を公開 /ledger に掲載する意図を記録します(証明内で full_disclosure_requested=true)。証拠性は最も高い一方、実際の公開は当方で別途選定して行う手順であり、まだ完全なセルフサービスには対応していません。hash_only | partial_disclosure | full_disclosure |
| mediator_attestation | object | いいえ | 任意(v22):調停者が自身の鍵を管理していることを証明します。{key_url(https、調停者自身のドメイン), public_key_ed25519_b64, requested_at(unix 秒、+-600 秒), nonce(8~128 ASCII 文字), signature_ed25519_b64}。{schema:'invinoveritas.mediator_request.v1', artifact_hash(成果物そのものの sha256 16 進数値), artifact_type, requested_at, nonce} の RFC 8785 JCS バイト列に対する Ed25519 署名です。key_url に鍵が掲載されている必要があります。sign=true が必要です。課金前に検証し、mediator_attestation_hash として証明にバインドします。発行時点での鍵の管理を証明しますが、独立性は証明しません。 |
詳細
invinoveritas — MCP サーバー
ホスト型 MCP サーバーとして提供される、AI エージェント向けの独立したレビューゲートです。エージェントが取り消せない操作(コードのリリース、シェルコマンドの実行、トランザクションへの署名など)を行う前に、review を呼び出して、エージェントではない第三者から中立的なセカンドオピニオンを得ます。さらに、エージェントや私たちを信頼しなくても誰でも再検証できる、再計算可能でビットコインにアンカーされた証明を受け取れます。
エージェントが自分で用意できないのは、自身の出力に対する信頼できる判定です。それを提供します。モデルに依存せず、助言のみを行い(処理をブロックすることはありません)、バイト列から検証できます。
- ホスト型、インストール不要。 リモートの Streamable-HTTP MCP サーバー:
https://api.babyblueviper.com/mcp/verify - サインイン: 対応クライアントでは標準の MCP OAuth(同意画面から無料アカウントを作成できます)、または Bearer ヘッダーで無料の API キーを使用:
curl -X POST https://api.babyblueviper.com/register -d '{"label":"mcp"}' verify_proof、ledger、payment_receiptは常に無料で、認証も不要です。
ツール
| ツール | 機能 | 認証 |
|---|---|---|
review | コード差分、シェルコマンド、計画、設定、取引、オンチェーントランザクションに対する独立した判定(approve/approve_with_concerns/reject)を、優先順位付きの問題点と持ち運び可能な署名付き証明とともに返します。 | Bearer(有料) |
verify_proof | 渡された invinoveritas の署名付き証明を再計算して検証し、提示者や私たちを信頼せずに確認できます。 | 無料 |
payment_receipt | 判定に基づく支払い 1 件の署名付きレシートです。retry_state はオンチェーンで読み取られるため、同じ nonce で二重払いはできません。資金は移動しません。 | 無料 |
witness | 第三者の正確な主張を、変更も判定もせずにアンカーします。純粋な公証(レシート+タイムスタンプ+完全性)であり、私たちの判定を行う review とは異なります。ソースは自己申告であり、署名付き証明にもその旨が記録されます。 | Bearer(有料) |
このエンドポイントでは、ほかに ledger(無料の公開判定実績)、validate(バックテストによる実態確認)、audit_agent_readiness、ledger_submit、conformance_certify も利用できます。ツールは全部で 9 つあり、サーバーがユーザーの資金や資産を移動することはありません。
エージェントに追加する
Cursor — ワンクリックで追加:invinoveritas を Cursor に追加(最初の有料呼び出し時に OAuth でサインインします)。または、~/.cursor/mcp.json(グローバル)/.cursor/mcp.json(プロジェクト)を編集します:
{
"mcpServers": {
"invinoveritas": {
"url": "https://api.babyblueviper.com/mcp/verify",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Cline — MCP マーケットプレイスから追加するか、cline_mcp_settings.json に追加します:
{
"mcpServers": {
"invinoveritas": {
"type": "streamableHttp",
"url": "https://api.babyblueviper.com/mcp/verify",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Gemini CLI — 拡張機能としてインストールします:
gemini extensions install https://github.com/babyblueviper1/invinoveritas-mcp
Claude Code:
claude mcp add --transport http invinoveritas https://api.babyblueviper.com/mcp/verify \
--header "Authorization: Bearer YOUR_API_KEY"
Devin — Settings → Connections → MCP servers → Add a custom MCP → HTTP (Streamable) を開き、URL
https://api.babyblueviper.com/mcp/verify、Auth Header Authorization: Bearer YOUR_API_KEY を設定します。
OpenHands — config.toml:
[mcp]
shttp_servers = [{ url = "https://api.babyblueviper.com/mcp/verify", api_key = "YOUR_API_KEY", timeout = 60 }]
任意の MCP クライアント — https://api.babyblueviper.com/mcp/verify(Streamable HTTP)を指定し、ヘッダー
Authorization: Bearer YOUR_API_KEY を設定します。プロトコルは 2025-06-18 です。ハンドシェイク、tools/list、tools/call はそのまま動作します。
使い方
エージェントに、次のように伝えます。PR を開いたり取り消せないコマンドを実行したりする前に、差分/コマンドを artifact として review を呼び出し、artifact_type(code_diff/shell_command/onchain_action/general)を設定して、sign: true を指定します。reject の場合は保留して修正し、approve の場合は証明を添付して、レビュー担当者が再検証できるようにします。
高速ゲートとの併用(例:Jev)
TypeSafe の Jev(コミュニティの
jev-mcp サーバーにおける jev_gate)のような高速判定モデルは、すべてのツール呼び出しを数百ミリ秒で審査し、allow/confirm/block を返します。最初の防衛線として有効です。ただし、後から第三者が検証できる独立した判定は提供しません。両方を併用しましょう。通常の呼び出しは高速ゲートに任せ、リスクの高いものや取り消せないものだけを invinoveritas にエスカレーションします。
gate = jev_gate(action=cmd, context=why) # ~0.3 s, every call
if gate.recommendation == "allow" and not gate.touches_prod:
run(cmd) # routine: no second opinion needed
elif gate.recommendation == "block":
stop_and_explain(gate) # clear no
else: # "confirm", or anything touching prod
v = review(artifact=cmd, artifact_type="shell_command", context=why, sign=True)
if v.verdict == "reject": stop_and_explain(v.issues)
else: run(cmd); keep(v.proof) # signed proof anyone can verify_proof later
高速ゲートにより、多数の呼び出しでレイテンシとコストを低く抑えられます。重要な少数の呼び出しは署名付き判定でカバーされ、エージェントや私たちのどちらを信頼するかに依存しない記録が残ります。
再計算できる判定の理由
sign: true を指定した review は、公開のビットコインアンカー付き台帳に公開される、BIP-340 署名付きの Nostr イベントの証明を返します。公開鍵を使ってオフラインで検証するには、イベント ID を再計算し、Schnorr 署名を確認します。または、https://api.babyblueviper.com/verify-proof に POST して検証することもできます(無料、認証不要)。私たちではなく、数学を信頼してください。勝敗の両方が公開されます。実績記録はスコアではなく、フォレンジック用の成果物です。
- 自分で証明を再計算する:依存関係ゼロの
pip install invinoveritas-verify/npm i invinoveritas-verify - サーバーカード:
https://api.babyblueviper.com/.well-known/mcp/server-card.json
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。