关于 dokimo-mcp
dokimo-mcp 是供 Agent 和客户端检查 Dokimo 收入证据记录的 MCP 服务,可在本地重算 Merkle 证明,并检查承诺是否锚定在 Base 链上。
主要功能
- 01本地重算 Merkle 证明
- 02通过 Dokimo 核验链上锚定
- 03获取 Dokimo 公共 Agent 卡
- 04支持 stdio 和 Streamable HTTP
适用场景
- 01检查记录证明是否对应声明的根
- 02核验证据包是否锚定在 Base 链上
- 03查看 Dokimo 的公开核验能力
MCP 相关
向 MCP 客户端提供证据检查工具,包括本地重算证明,以及通过 Dokimo 端点检查链上锚定。支持 stdio 和 Streamable HTTP。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://dokimo.augaster.com/mcpclaude mcp add --transport http ypratap11-dokimo https://dokimo.augaster.com/mcp{"mcpServers":{"ypratap11-dokimo":{"type":"http","url":"https://dokimo.augaster.com/mcp"}}}在 Cursor 中打开{"servers":{"ypratap11-dokimo":{"type":"http","url":"https://dokimo.augaster.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"ypratap11-dokimo":{"type":"http","url":"https://dokimo.augaster.com/mcp"}}}{"mcpServers":{"ypratap11-dokimo":{"serverUrl":"https://dokimo.augaster.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
3| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| leaf | string | 是 | 原始叶值(例如 JSON 字符串 '{"k":"total_assets","v":"..."}')。在叶子域中计算哈希:H(0x00 ‖ leaf)。 |
| proof_path | array | 是 | 有序 Merkle 证明路径:由 [sibling_hash_hex, side] 对组成的列表,其中 sibling 位于左侧时 side 为 "L",位于右侧时为 "R"。单叶树时为空列表。 |
详细介绍
dokimo-mcp
让 AI Agent 能够验证另一个 Agent 的收入声明。
一个 MCP 服务,将 Dokimo 的证据检查作为工具提供,供任何 MCP 客户端(Claude Desktop、IDE Agent、自定义 Agent)调用。这就是“审计 Agent 的 Agent”——以工具的形式提供。
这些工具功能的实时可交互版本: https://dokimo.augaster.com/agent-audits-agents.html
这是一个精简、独立的客户端:它调用 Dokimo 的公共端点,并 实现公开的
dokimo-merkle-v1哈希方案。其中不含专有 代码。采用 MIT 许可证。
工具
| 工具 | 功能 | 网络? |
|---|---|---|
recompute_merkle_root(leaf, proof_path) | 本地重新计算 — 在此进程中,根据 dokimo-merkle-v1 对叶子哈希,并沿证明路径逐步计算到根,不会调用网络。你可以自行将其与软件包声明的 root 比较。它不会检查链上锚定。 | 无 |
verify_evidence_package(package) | Dokimo 对一条记录的检查,通过其公共 A2A 端点执行:重新计算并检查已锚定的承诺(根 + 规则版本,以及 v2 关闭记录的关闭摘要)是否与 Base 上的链上锚定一致。仅当两者都成立时才返回 verified: true。该判定是 Dokimo 给出的答案,且未签名——若要避免依赖此判定,请在本地重新计算并自行读取锚定(例如 /verify.html)。 | Dokimo A2A |
dokimo_agent_card() | 获取 Dokimo 的公共 A2A Agent 卡片——查看它能验证什么。 | Dokimo |
**验证模型:**只有同时满足以下条件,才可能得到 verified: true:(1)
调用方的 (leaf, proof_path) 重新计算出的结果与声明的 root 一致;并且 (2)
(root, rule_version_commitment) 的承诺——对于 dokimo-anchor-v2
关闭记录,还包括其 summary——已在链上锚定。篡改一个字节 → 重新计算失败。
替换规则版本 → 承诺改变 → 未被锚定。不含
summary 和 binding 的软件包会按旧版 v1 检查,只能验证在 v2 切换前锚定的关闭记录。
**如实说明范围:**对于一条记录,检查其证明是否指向根,以及承诺是否已在链上锚定。它不会根据所有记录重新计算关闭记录中的数字(这需要完整的软件包,例如在 /verify.html 中),也不会判断某个业务数字是否“好”。非托管;仅读取公开的链上状态。
安装与运行
pip install dokimo-mcp
dokimo-mcp # runs over stdio
# or, from a clone:
pip install .
python -m dokimo_mcp
添加到 MCP 客户端
Claude Desktop — 添加到 claude_desktop_config.json:
{
"mcpServers": {
"dokimo": {
"command": "dokimo-mcp"
}
}
}
如果 dokimo-mcp 不在 PATH 中,请使用模块形式:
{
"mcpServers": {
"dokimo": {
"command": "python",
"args": ["-m", "dokimo_mcp"]
}
}
}
然后向 Agent 提问:“使用 Dokimo 验证这个证据软件包”(粘贴一个),或 “重新计算这个 Merkle 根,并告诉我是否匹配。”
Agent 技能
skills/dokimo-verify/SKILL.md 会告诉 Agent 何时
以及如何使用这些工具:检查软件包结构,先在本地重新计算,发送任何内容给 Dokimo 前先征求同意,并报告单条记录的结果,避免夸大结论。将 dokimo-verify 文件夹放入 Agent 的技能目录中(例如 Claude Code 的 ~/.claude/skills/)。该技能也已免费收录于
Agensi。
试用
实时演示页面内嵌了一个真实且已锚定的证据软件包。获取并验证它:
import re, json, urllib.request
import dokimo_mcp as d
html = urllib.request.urlopen(urllib.request.Request(
"https://dokimo.augaster.com/agent-audits-agents.html",
headers={"User-Agent": d._UA})).read().decode()
pkg = json.loads(re.search(r"const PKG\s*=\s*(\{.*?\})\s*;", html, re.S).group(1))
print(d.verify_evidence_package(pkg)["verified"]) # True
# tamper one unit -> False
pkg["leaf"] = pkg["leaf"].replace("1001190933933115", "1001190933933116")
print(d.verify_evidence_package(pkg)["verified"]) # False
托管 / HTTP 模式
默认传输方式为 stdio(本地使用)。设置 MCP_TRANSPORT=http,即可在 $PORT(默认为 8081)上通过 CORS 提供
MCP Streamable HTTP,路径为 /mcp——这是 Smithery 等托管平台要求的格式。随附的
Dockerfile + smithery.yaml(runtime: container)已针对这一模式配置,因此 Smithery 可以直接从此仓库构建并托管服务。
MCP_TRANSPORT=http PORT=8081 dokimo-mcp # or: docker run -p 8081:8081 <image>
Dokimo 是什么?
面向自主商务的可验证收入基础设施——为 AI Agent 机器支付(x402 / AP2 / Stripe)提供可供审计、可独立复现的账簿,每个数据均以可检测篡改的方式提交并锚定到链上。https://dokimo.augaster.com
许可证
MIT — 请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。