关于 dmt-receipts
dmt-receipts 是用于 Agent 记忆的本地 stdio MCP 服务,可将五字段 JSON 规范化为 TAP/Ordinals 铭文载荷,并校验铭文内容。它不广播交易或支付费用,适合需要在 Bitcoin 上保存并核验记忆字节的开发者。
主要功能
- 01规范化五字段记忆 JSON
- 02生成 TAP/Ordinals 铭文配方
- 03重新计算记忆摘要
- 04按需获取并比对铭文内容
适用场景
- 01准备可供铭刻的 Agent 记忆
- 02检查铭文是否匹配原始字节
- 03在浏览器中准备和校验记忆
MCP 相关
它作为本地 stdio MCP 服务,向客户端提供 `prepare_memory` 和 `verify_inscription` 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
原文在翻译后有更新,译文可能不是最新。
DMT Receipts
通过 TAP Protocol / Ordinals 实现可移植、永久保存在 Bitcoin 上的 Agent 记忆。
DMT Receipts 是一个本地 stdio MCP 服务(prepare_memory、verify_inscription),并提供浏览器演示。它会将包含 5 个字段的 dmt-memory/v1 JSON 对象转换为可用于铭文的载荷。这里所说的永久保存,意味着这些记忆字节已作为 Ordinals 铭文内容提交到 Bitcoin L1,并符合 TAP("p":"tap")规范。请在你控制的存储中保留记忆,以及铭文 ID / txid。调用 prepare_memory 后,状态为 已准备。钱包或 Ordinals 工具负责铭刻这些字节并支付 Bitcoin 费用。
在线站点 · 协议指南 · 仓库介绍 · 完整规范 · TAP 规范
从这里开始
在线站点可在浏览器中准备并验证记忆。不会上传任何内容;收据会保存在 localStorage 中,直到你将其导出。本软件包与本地 MCP 服务使用相同的协议。它未发布到 npm registry,因此请从克隆的仓库安装(见下文)或使用在线站点。
| 你的需求 | 位置 |
|---|---|
| 准备记忆,无需安装 | 在线应用 → 锚定 |
| 验证铭文 | 在线应用 → 验证 |
| 查看保存在此浏览器中的收据 | 在线应用 → 收据 |
| 验证本地工具 | 先运行 npm ci,再运行 node examples/run-demo.mjs |
| Agent 索引(工具、运行、演示) | 此仓库中的 llms.txt |
| 规范字节规则 | 在线 llms.txt |
| 完整协议 | spec.md |
| 机器可读清单 | agent.json |
| MCP 注册表 ID | io.github.Colchora/dmt-receipts(server.json、glama.json) |
收据能证明什么——以及不能证明什么
| 收据可以证明 | 收据无法证明 |
|---|---|
这些确切的规范字节已作为 Ordinals 内容铭刻在 Bitcoin 交易中(当 inscription_id / 内容匹配时)。 | 谁创建或拥有这些字节;作者身份需要另行采用签名方案。 |
本地 verify_inscription 可以重新计算摘要,并可选地获取公开的铭文内容进行比较。 | 记忆的真实性、准确性、原创性、意图或排他性所有权。 |
| TAP 索引器 / Ordinals 浏览器可以独立于此仓库显示该铭文。 | 免费的仅哈希日历证明。铭文费用是真实的 Bitcoin 费用。 |
此 MCP 服务不会广播交易或支付费用。调用 prepare_memory 后,状态为已准备,而非已铭刻。
展示与说明
Node.js 18+。npm ci 会安装依赖并构建 dist/index.js。该服务通过 stdin 使用 MCP 协议,并保持运行,直到客户端连接。
git clone https://github.com/Colchora/dmt-receipts.git
cd dmt-receipts
npm ci
node examples/run-demo.mjs
该脚本会对 examples/demo-memory.json 调用 prepare_memory,然后在不提供 inscription id 的情况下调用 verify_inscription。运行通过时会打印:
| 检查项 | 值 |
|---|---|
sha256 | 76f3f9ff531cecbfe46e676e932f9b0d9d02b3d7c04e5a558924a8092cb0294b |
byte_length | 170 |
status | prepared |
matches_expected_sha256 | true |
ok | 在字节被铭刻前为 false |
内存仅处于准备状态时,ok 会保持为 false。与规范字节匹配的铭刻内容,才能使后续验证成功。相同数值也在 examples/expected-digest.json 中。
构建后,Cursor 会加载 .cursor/mcp.json。${workspaceFolder} 是包含该文件的目录:
{
"mcpServers": {
"dmt-receipts": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"]
}
}
}
Claude Desktop 和其他客户端会使用构建文件的绝对路径:
{
"mcpServers": {
"dmt-receipts": {
"command": "node",
"args": ["/absolute/path/to/dmt-receipts/dist/index.js"]
}
}
}
使用 examples/demo-memory.json 中的五个字段(agent_id、key、content、tags、created_at)调用 prepare_memory。在获得 inscription_id 之前,将返回的 memory 和 sha256 传给 verify_inscription,并设置 fetch_content: false 和 include_trac: false。
工具:
prepare_memory— 规范化内存、计算哈希,并返回 Ordinals/TAP 铭刻方案(UTF-8 内容 + 可选的dta指针)。verify_inscription— 重新计算摘要;可选择获取铭刻内容并进行比对;返回区块浏览器链接。
操作指南:examples/README.md。Agent 索引:llms.txt。协议字节:实时 llms.txt。
准备、铭刻、验证
- 使用
agent_id、key和content调用prepare_memory。 - 使用 TAP Wallet 或任何 Ordinals/TAP 工具,将
inscription_recipe.content_utf8作为 Ordinals 内容(application/json或text/plain)进行铭刻。在代币部署流程中,可选的 TAPdta(≤512 字节)可携带sha256:<hex>。 - 使用
inscription_id/txid存储内存。 - 使用内存和
inscription_id调用verify_inscription。
无需安装,也可在浏览器中执行相同的准备和验证步骤:锚定,然后验证。
规范内存格式
紧凑的 UTF-8 JSON,无尾随换行符,按 Unicode 码点排序键,非 ASCII 字符直接写入:
{"agent_id":"demo-agent","content":"Remember this exact state.","created_at":"2026-11-05T17:00:00Z","key":"notes/hello","tags":["demo"]}
| 字段 | 类型 | 说明 |
|---|---|---|
agent_id | 字符串 | Agent 的稳定标识符。 |
key | 字符串 | 内存键、slug 或路径。 |
content | 字符串、对象、数组、数字或布尔值 | 嵌套值必须与 JSON 兼容。 |
tags | 字符串数组 | 没有标签时使用 []。 |
created_at | 字符串 | 以 Z 结尾的 ISO-8601 UTC 时间,精确到整秒。 |
| (扩展字段) | 任意 JSON 值 | 可选。额外字段会与其他字段一起排序,并纳入哈希。prepare_memory 会保留额外的工具参数。 |
协议与隐私
铭刻内容会公开在 Bitcoin 上。请勿铭刻机密信息。此工具绝不会将内存字节上传到自有后端;如果你在验证期间获取内容,则会连接到公共区块浏览器。
许可证
MIT
支持与 Tap 回购
实时网站上提供可选的诚信制资助:
除支付给矿工/铭刻者的 Bitcoin 网络铭刻费用外,准备/铭刻内存工具始终免费。本仓库不处理银行卡付款。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。