关于 invinoveritas
invinoveritas 是面向 AI Agent 的托管 MCP 审核关卡,用于评估重要或不可逆操作。它提供独立的建议性结论及签名证明,可重新计算,并通过公开的比特币锚定账本核验。
主要功能
- 01独立审核 Agent 操作
- 02提供问题排序和签名证明
- 03免费验证证明
- 04公开结论账本
- 05第三方声明公证
适用场景
- 01发布前审核代码差异
- 02执行前检查 Shell 命令
- 03验证他人提供的签名结论
- 04带时间戳记录第三方声明
MCP 相关
托管的 Streamable HTTP MCP 服务提供审核、证明验证、收据、公证及账本相关工具。Agent 连接 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 命令、计划、配置、分析、Agent 输出或原始文本 |
| 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 | 否 | 可选:此评估授权执行的确切现实操作——工具标识、已具体化(非模板化)的参数,以及将执行操作的 Agent 的 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` 参数或评估结论。若重新计算 decision_ref 时,tool/args/agent_id 的值未做到字节级完全相同,就会产生不同的哈希:批准不能重放到不同的工具、不同的具体化参数或不同的 Agent 上。每个子键均可选。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,无论你自身的登记状态如何。仅一跳。诚实的适用范围:我们验证所引用事件本身的真实性,不验证它是否确实是你的制品声称要重新审查的对象。 |
| 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 十六进制值), artifact_type, requested_at, nonce} 的 RFC 8785 JCS 字节进行 Ed25519 签名;key_url 必须列出该密钥。需要 sign=true;在任何收费前检查;以 mediator_attestation_hash 的形式绑定到证明。证明签发时对密钥的控制权,不代表独立性。 |
详细介绍
invinoveritas — MCP 服务
作为托管 MCP 服务,为 AI Agent 提供独立的审核关卡。在 Agent 执行不可逆操作之前——例如发布代码、运行 Shell 命令或签署交易——它会调用 review,从不是该 Agent 的一方获得中立的第二意见,并收到一份可重新计算、锚定于 Bitcoin 的证明。任何人都可以在不信任该 Agent 或我们的情况下重新验证此证明。
Agent 无法自行获取的,正是对自身输出的可信判定。这就是这份判定——与模型无关、仅供参考(不会阻止操作),并且可以根据字节进行验证。
- 托管服务,无需安装。 远程 Streamable-HTTP MCP 服务:
https://api.babyblueviper.com/mcp/verify - 登录: 在支持 OAuth 的客户端中使用标准 MCP OAuth(可在授权页面创建免费账户),或使用免费的 API 密钥作为 Bearer 标头:
curl -X POST https://api.babyblueviper.com/register -d '{"label":"mcp"}' verify_proof、ledger和payment_receipt始终免费,无需身份验证。
工具
| 工具 | 功能 | 身份验证 |
|---|---|---|
review | 对代码差异、Shell 命令、计划、配置、交易或链上交易提供独立判定(approve / approve_with_concerns / reject),并附上按优先级排序的问题和可移植的签名证明。 | Bearer(付费) |
verify_proof | 重新计算并验证他人提供的已签名 invinoveritas 证明,无需信任提供者或我们即可确认其有效性。 | 免费 |
payment_receipt | 为一笔由判定控制的付款提供签名收据。retry_state 会从链上读取,因此同一 nonce 无法重复付款。不会转移资金。 | 免费 |
witness | 锚定第三方未经修改、未经判定的原始声明字节——仅进行公证(收据 + 时间戳 + 完整性),不同于 review(我们的判定)。来源由提交者自行声明,并在签名证明中注明这一点。 | Bearer(付费) |
此端点还提供:ledger(免费的公开判定记录)、validate(回测现实检验)、audit_agent_readiness、ledger_submit、conformance_certify。共 9 个工具;该服务绝不会为用户转移资金或资产。
添加到你的 Agent
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 marketplace 添加,或在 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 均可开箱即用。
使用方法
告诉你的 Agent:在创建 PR 或运行不可逆命令之前,调用 review,将差异/命令作为 artifact 传入,设置 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
快速门禁能以较低的延迟和成本处理大量调用;签名判定则覆盖少数重要调用,并留下无需信任 Agent 或我们的记录。
为什么要提供可重新计算的判定结果
review 配合 sign: true 会返回一份证明,该证明是由 BIP-340 签名的 Nostr 事件,并发布到一个由比特币锚定的公开账本。你可以使用我们公布的密钥离线验证——重新计算事件 ID 并检查 schnorr 签名——也可以将其 POST 到 https://api.babyblueviper.com/verify-proof(免费,无需身份验证)。相信数学,而不是我们。胜利和失败都会发布;记录是取证材料,不是评分。
- 自行重新计算证明:零依赖
pip install invinoveritas-verify/npm i invinoveritas-verify - 服务卡片:
https://api.babyblueviper.com/.well-known/mcp/server-card.json
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。