关于 Doichain
Doichain MCP 服务供 Agent 锚定文档哈希时间戳,并查询 Doichain 名称与链数据。文档本身不会发送到服务器,可用于验证存在性证明。
主要功能
- 01锚定文档的 SHA-256 哈希
- 02查询证明时间与区块
- 03查询名称及其历史记录
- 04查看区块、交易和地址
- 05检查链状态与签名消息
适用场景
- 01记录文档在某时点前已存在
- 02根据链上记录验证文档哈希
- 03检查名称所有权、历史或到期时间
- 04查看 Doichain 区块或地址活动
MCP 相关
通过 MCP 工具提供 Doichain 存在性证明、名称和区块链数据操作。托管端点使用无状态 Streamable HTTP,且无需身份验证。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://doi-api.sendlabs.de/mcpclaude mcp add --transport http neubuot-doichain https://doi-api.sendlabs.de/mcp{"mcpServers":{"neubuot-doichain":{"type":"http","url":"https://doi-api.sendlabs.de/mcp"}}}在 Cursor 中打开{"servers":{"neubuot-doichain":{"type":"http","url":"https://doi-api.sendlabs.de/mcp"}}}在 VS Code 中打开{"mcpServers":{"neubuot-doichain":{"type":"http","url":"https://doi-api.sendlabs.de/mcp"}}}{"mcpServers":{"neubuot-doichain":{"serverUrl":"https://doi-api.sendlabs.de/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
13此工具无需参数。
详细介绍
Doichain MCP 服务
为你的 AI Agent 提供可检测篡改的时间戳。
证明某份文档在特定时间已经存在:将其哈希锚定到 Doichain(存在性证明),验证证明并读取名称、区块和地址。
一个 URL,无需账户、API 密钥或安装。
快速开始 · 工具 · 工作原理 · 限制 · 安全与隐私 · 工具参考 · 自托管 · Deutsch
端点: https://doi-api.sendlabs.de/mcp · Streamable HTTP · 无状态 · 无需身份验证
Doichain 是一个公有区块链,内置名称-值存储(Namecoin 的衍生链,与 Bitcoin 合并挖矿)。此服务让任何使用 Model Context Protocol 的 Agent 都能使用它:Claude、ChatGPT、Cursor、VS Code Copilot 等等。用日常语言向 Agent 提问,它会自行选择合适的工具:
“将 offer-2026.pdf 的哈希锚定到 Doichain 上。” “这份合同在 10 月 1 日之前就已经存在了吗?” “d/example 或 id/alice 是否即将过期?” “Doichain 目前运行情况如何?”
在浏览器中打开此端点,即可查看包含设置说明的落地页。
快速开始
Claude Code
claude mcp add --scope user --transport http doichain https://doi-api.sendlabs.de/mcp
使用 claude mcp list 检查。如果不使用 --scope user,该服务仅适用于当前项目。
Claude(网页端和桌面端)
- 打开 Customize → Connectors,然后点击 +。
- 选择 Add custom connector,将其命名为
Doichain,并粘贴https://doi-api.sendlabs.de/mcp。 - 在聊天中,通过 + → Connectors 启用它。
自定义连接器也可在免费套餐中使用(限一个连接器)。在 Team 和 Enterprise 套餐中,所有者需在组织设置中添加它。
ChatGPT
打开 Settings → Security and login → Developer mode,然后在 Plugins → + 下使用上面的 URL 和 None 身份验证方式创建应用。网页端的开发者模式适用于 Plus、Pro、Business、Enterprise 和 Education。
Cursor
~/.cursor/mcp.json(所有项目)或 .cursor/mcp.json(单个项目):
{
"mcpServers": {
"doichain": { "url": "https://doi-api.sendlabs.de/mcp" }
}
}
VS Code(Copilot Agent 模式)
.vscode/mcp.json:
{
"servers": {
"doichain": { "type": "http", "url": "https://doi-api.sendlabs.de/mcp" }
}
}
其他客户端
| 设置 | 值 |
|---|---|
| URL | https://doi-api.sendlabs.de/mcp |
| 传输方式 | Streamable HTTP(http / streamable-http),无状态,JSON 响应 |
| 身份验证 | 无;也可选择在 X-API-Key 标头中使用自己的密钥 |
| 协议版本 | 2024-11-05、2025-03-26、2025-06-18、2025-11-25、2026-07-28 |
无需 AI 客户端即可使用 MCP Inspector 试用:运行 npx @modelcontextprotocol/inspector,选择 Streamable HTTP 并输入 URL。examples/check_proof.py 中提供了一个简短的 Python 示例。
工具
| 工具 | 功能 | 访问权限 |
|---|---|---|
anchor_proof | 将文档的 SHA-256 哈希锚定为可防篡改的时间戳(存在性证明,名称为 poe/<sha256>)。已锚定的哈希会返回现有证明。只有设置 reanchor_expired: true,才会重新登记已过期的哈希。 | 写入 |
check_proof | 检查此哈希是否已锚定、何时锚定、位于哪个区块。始终报告首次锚定时间,并单独显示之后的名称登记。 | 读取 |
hash_text | 计算短文本(最多 40,000 个字符)的 SHA-256 哈希,由服务端计算,不存储任何内容。 | 服务端 |
get_anchoring_quota | 查询调用者 IP 地址今天剩余可用的证明数量。 | 读取 |
lookup_name | 查询名称(例如 d/example 或 id/alice)的当前值、所有者和到期时间。 | 读取 |
get_name_history | 查询名称的所有登记和更新记录,按时间从新到旧排列。 | 读取 |
check_name_expiry | 一次检查最多 25 个名称,并返回有效、即将到期、已过期或空闲状态及日期。 | 读取 |
search_names | 按前缀搜索名称(例如所有 poe/ 证明),支持分页。使用 include_expired 可包含已过期名称。 | 读取 |
get_chain_status | 查询区块高度、同步状态、最新区块、分叉检查和平均区块间隔。 | 读取 |
get_block | 按高度或哈希查询区块。 | 读取 |
get_transaction | 查询包含输出、地址和名称操作的交易。 | 读取 |
get_address | 查询地址余额,也可选择包含近期交易。 | 读取 |
verify_message | 验证使用 Doichain 地址签名的消息(旧版 M…/N… 地址)。 | 读取 |
所有工具均返回结构化 JSON(structuredContent),并带有 MCP 工具注释。只有 anchor_proof 不是只读工具。参数、返回字段和示例:docs/tools.md。
存在性证明的工作原理
sequenceDiagram
participant U as You
participant A as AI agent
participant M as Doichain MCP server
participant D as Doichain
U->>A: "Anchor offer-2026.pdf"
A->>A: sha256sum offer-2026.pdf (the file never leaves your machine)
A->>M: anchor_proof(sha256)
M->>D: name_doi poe/<sha256> = {"v":1,"alg":"sha256",...}
D-->>M: transaction id (pending)
M-->>A: txid, verify URL
Note over D: next block, usually within 10 minutes
U->>A: "Did this document exist before October 1?"
A->>M: check_proof(sha256)
M->>D: name_show / name_history
M-->>A: confirmed, block 433,335, 2026-09-25 23:21 UTC
只有哈希,以及可选的公开备注或文件名会写入链上。SHA-256 哈希无法还原为原始文档。任何人之后都可以使用 check_proof 或在 verifile.it 上验证证明;文档只要有一个字节发生变化,哈希就会不同。
证明能说明什么,以及有效期有多长:
- 时间戳永久有效。 锚定交易及其区块时间会永久保留在区块链历史中。
- 名称并非永久有效。
poe/<sha256>会在 36,000 个区块内保持有效(按每个区块 10 分钟计算,约为 250 天)。之后,任何人都可以使用自己的备注和地址重新登记该名称。check_proof始终将首次锚定时间报告为证明时间,并在latest_registration中单独显示之后的登记。除非你通过reanchor_expired明确请求,否则anchor_proof不会重新登记已过期的哈希;search_names使用include_expired列出已过期的证明。 - 证明存在,而非作者身份。 证明只能说明该哈希对应的文档不晚于区块时间时已经存在,不能说明是谁提交了它。托管端点使用运营方的钱包登记名称,并由运营方支付费用并持有这些名称。
Agent 需要访问文件才能计算其哈希(Claude Code、Cursor、VS Code)。在普通聊天中,Verifile 是最简单的方式:上传文件后,浏览器会计算哈希,点击一次即可完成锚定。
限制和配额
| 限制 | 值 |
|---|---|
| 锚定 | 对用户免费;每个 IP 地址每天(UTC)最多 10 次证明;所有用户合计每天最多 200 次 |
| 请求 | 每个 IP 地址每秒 10 次(突发上限为 40 次),超过时返回 JSON-RPC 错误 -32000,并附带 Retry-After: 1 |
| 请求大小 | 256 KB,hash_text 最多 40,000 个字符 |
| 读取和检查 | 在请求速率限制内不受限制 |
托管聊天应用(网页端的 Claude、ChatGPT)从其服务提供商的数据中心连接,因此这些地址的所有用户共用配额。如需经常进行锚定,请使用从你自己的设备连接的客户端(Claude Code、Cursor、VS Code),或向 DOI Labs 申请专属密钥。当节点钱包的运营余额低于储备金时,锚定会自动暂停;读取功能仍可正常使用。
安全和隐私
- 仅处理哈希。 服务端不接收文件。
hash_text会读取短文本,并立即将其忘记。 - 不具备钱包功能。 服务端无法发送代币、更改名称或调用节点 RPC。它唯一的写入操作是
anchor_proof,REST API 会使用运营方的钱包注册名称。该服务以独立系统用户身份运行,无法读取 API 密钥文件,并且只能建立本地连接。 - 防范提示词注入。 陌生人写入链上的名称和值会放在以
_untrusted结尾的字段中返回,并附带提示;服务端指令会告知 Agent 仅将这些内容视为数据。 - 防范 DNS 重绑定。 会验证 Host 和 Origin 标头。
- 不追踪用户。 不使用 Cookie,着陆页上没有第三方资源。与任何 Web 服务端一样,访问日志会记录 IP 地址,且这些地址会计入每日配额。不会存储内容。
发现漏洞?请使用私密漏洞报告,另请参阅 SECURITY.md。
协议行为
- 采用无状态模式的可流式 HTTP,并返回 JSON 响应,因此任意数量的工作进程都能处理请求,无需保持会话亲和性。
- 所有 MCP 消息均使用
POST /mcp。浏览器访问GET /mcp时会返回着陆页;其他任何GET或HEAD请求都会返回405和Allow: POST(无状态模式下不存在服务端到客户端的 SSE 流)。 - 不支持 JSON-RPC 批处理(已于 2025-06-18 从协议中移除)。不支持 CORS,因此不支持直接在网页内运行的客户端。
- 使用
GET /mcp/health进行监控。
架构
AI agent ──HTTPS──▶ nginx ──▶ doichain-mcp (this repo, 127.0.0.1:8081)
│ REST calls only, client IP passed on for the quota
▼
Doichain REST API (127.0.0.1:8080) ──▶ Doichain Core v31.1.6 + ElectrumX
MCP 服务是基于 Doichain REST API(交互式文档)构建的轻量无状态层,该 API 与完整的 Doichain Core 节点相邻运行。请参阅 docs/self-hosting.md 运行自己的实例。
开发
python -m venv .venv
. .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
pytest -q # offline tests, the REST API is mocked
ruff check .
# run locally against the public REST API (reading works, anchoring needs your own key)
[](https://doi-api.sendlabs.de/seal/github/neubuot/doichain-mcp)
DOI_MCP_API_URL=https://doi-api.sendlabs.de python -m doichain_mcp
npx @modelcontextprotocol/inspector # connect to http://127.0.0.1:8081/mcp
发行版本遵循语义化版本规范。推送 vX.Y.Z 标签后,会运行测试,并通过 GitHub Actions(OIDC,无需密钥)将 server.json 发布到官方 MCP 注册表。标签、server.json 和 pyproject.toml 必须使用相同的版本。请参阅 CONTRIBUTING.md 和 CHANGELOG.md。
相关项目
- Verifile:通过拖放证明文件存在,无需上传
- Doichain REST API:本服务背后的 HTTP 接口,带有在线体验环境
- Doichain Core:参考节点
- Doichain Explorer:区块、交易和名称
许可证和运营方
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。