关于 Eclipse Benchkit
Eclipse Benchkit 是供供应商在本地针对 fixture MCP 服务运行声明检查项并生成 Assay 格式评分卡的 Python SDK。独立验证工具会随机重跑抽样检查并签发复签收据;认证范围仅限本地 fixture。
主要功能
- 01针对 fixture 服务运行声明的检查项
- 02生成封存的 Assay 格式评分卡
- 03在检查项中嵌入抽查钩子
- 04用验证工具随机重跑抽样检查
- 05签发复签验证收据
适用场景
- 01根据 fixture 服务检查运行生成评分卡
- 02抽查封存评分卡以发现伪造结果
- 03审阅不一致或无法验证的抽样检查
MCP 相关
它以 stdio JSON-RPC 方式运行 MCP 服务。供应商和验证者界面分别提供记录检查、封存及读取评分卡、请求抽查和读取收据的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Eclipse Benchkit
免费的本地 SDK,供供应商针对自己的 MCP 服务运行,以执行其声明的检查组,并按 Assay 记分卡格式生成记分卡,其中包含检查 ID、判定结果、证据哈希、环境指纹;每条检查运行时都会嵌入抽查钩子。另有一个独立的本地测试工具,从已封存的记分卡中随机抽取样本并重新运行相应检查,签发共同签署的验证回执。
范围标签:LOCAL / fixture。 v0.1 仅针对 fixture 供应商服务进行测试。不连接任何在线供应商服务、不发起网络调用,也不接入注册表。
状态:v0.1.1 — 已认证(local/fixture)。 Verity 于 2026-10-27 重新测试:所有 v0.1.0 FAIL 缺陷(阻断项 D1/D2、主要问题 M1–M4、次要问题 m1–m5)均已修复并经独立验证;构建者测试套件通过率为 27/27。记录了两个新的次要问题(N1 栅栏编码边界情况、N2 种子承诺的来源)以便在下一轮修复中处理;它们不影响本范围认证。本认证严格限定于以下范围:SDK、生成器和抽查测试工具仅针对 fixture 供应商服务。抽查回执仅表示对一份已封存记分卡样本的验证结果,不是官方测试判定,也不代表任何供应商服务已获认证。**
v0.1.1 协议说明
- 先提交,再抽样;抽样不可预测(D1)。 验证器 nonce 由验证器端使用保存在
keys/中的秘密种子和新生成的 CSPRNG 熵生成,只有在 seal 验证通过后才会在抽样清单中公开。它绝不会作为新抽样的调用方输入,也无法根据记分卡哈希或任何公开状态预先计算。提供的 nonce 仅在作为已签发(scorecard_hash, verifier_nonce)对的重放密钥时予以接受,并返回已记录的回执(§3.3);遇到新提供的 nonce 时,将按名称拒绝。 - 验证器令牌(§5,M4)。 验证器操作必须提供验证器令牌:位于
keys/verifier-token.fixture.key的 fixture 令牌(chmod 600,已加入 gitignore),每次调用时通过verifier_token提供,或在验证器进程中通过BENCHKIT_VERIFIER_TOKEN提供。 - 配置栅栏(§7.3,F-B14)。 如果端点不是本地端点、包含线上密钥字符串、配置了供应商 nonce、
value_class的值不是test,或配置了 Assay/Cupel 定价或结账信息,启动时会硬退出并报告CONFIG_FENCE_REFUSED:<class>;在benchkit_run_begin时遇到包含线上 URL 的服务描述符,也会以相同的具名代码拒绝。 - 经过认证的构件(M1/M2)。 seal 签名绑定头部哈希、所有计数和格式版本;重新计算时会验证回执签名、结果记录链和重跑链头,并拒绝额外结果。
- 密钥(§7.4,M3)。 所有 fixture 密钥均在本地的
keys/中生成(chmod 600,已加入 gitignore,并标注为 fixture)。源代码中不包含任何密钥材料。
创新机制
由供应商运行的评分卡内嵌抽查钩子;内部基准测试会重新运行随机抽取的样本,因此可以通过统计方法检测伪造的自测基准。该协议采用先提交后抽样:在任何样本产生之前,评分卡就已封存(经哈希链处理并由供应商签名),样本种子由 scorecard_hash ‖ verifier_nonce 派生,而 nonce 只有在评分卡封存后才会公布。回执会直接列明计算方式:样本量为 k、伪造比例为 f 时,检测概率为 1 − (1−f)^k——默认 k = 30(若带钩子的检查项少于 30,则全部抽取),当 f ≥ 0.10 时,检测概率 ≥ 95%。没有钩子的检查项会在评分卡上直接标记为 HOOKLESS,不纳入任何样本或经过验证的声明;抽中的非确定性检查项或需要机密信息的检查项会判定为 UNVERIFIABLE,绝不会被默认为通过。回执判定结果:VERIFIED_SAMPLE · DIVERGENT(列明不匹配的检查项 ID)· UNVERIFIABLE。
每份供应商评分卡都会直接标记为 供应商运行 / 自测基准。抽查回执仅表明:已重新运行 N 个带钩子检查项中的随机 k 个,并且结果匹配(或不匹配——以实际判定为准);检测伪造比例 ≥ f 的能力对应的概率为 p。这不是内部基准测试的判定,也不是对供应商服务的认证,绝不会将自测基准升级为内部基准测试。不可验证的评分卡只能以 DOWNGRADED_EXPORT 导出,绝不会在事后升级。
格式归属说明,准确且精简:评分卡以 Assay 评分卡格式生成。Eclipse Assay 和 Eclipse Cupel 是内部工具;Benchkit 仅将其评分卡格式作为规范使用,不包含这两款产品的任何产品界面、价格、许可或购买渠道。完整基准测试是一项付费服务项目;通过现有渠道受理——Benchkit 不包含受理表单、项目结账功能或服务定价。Benchkit 自身的计量点为每次已完成的验证记录一个 spotcheck_verification_completed 事件(每次验证 $10 的计量方式,仅作计量记录;此版本不含收费渠道),并以 (scorecard_hash, verifier_nonce) 为键,避免幂等返回导致重复计量。
工具
供应商界面(默认,ECLIPSE_BENCHKIT_SURFACE=vendor):
benchkit_run_begin、benchkit_check_record、
benchkit_scorecard_seal、benchkit_scorecard_get、
benchkit_export_get。
验证方界面(ECLIPSE_BENCHKIT_SURFACE=verifier):
spotcheck_request、spotcheck_run、spotcheck_receipt_get、
spotcheck_recompute、anomaly_queue_read。
两个界面彼此隔离;跨界面调用会返回与无意义名称完全相同的未知工具拒绝。封存前尝试抽样、由供应商提供的 nonce,以及判定结果产生后使用同一 nonce 重新抽样,都会被明确拒绝,并记录在异常队列中。
测试夹具
fixtures/battery-*.json — 针对测试夹具供应商服务的确定性测试夹具集合:良好(40 项检查)、小型(8 项)、诚实失败(3 项确实失败的检查,以失败状态封存)、无钩子(12 项中有 5 项无钩子)、不稳定(1 项非确定性检查)、机密钩子(1 项无法运行的钩子)、伪造(声称有 40 项检查,其中 12 项为伪造检查,使用 fabricated-source 服务——关键测试夹具:按种子执行的抽查必须至少发现一项)。
运行
python3 server.py # MCP over stdio JSON-RPC
python3 -m unittest discover -s tests -v
状态保存在 data/ 或 BENCHKIT_DATA_DIR 中。仅需 Python 3 和标准库。
由 Cyan Eclipse Technologies 提供支持 — https://cetech.ai
MIT License · Copyright © 2026 Cyan Eclipse Technologies LLC · cetech.ai
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。