关于 SoulInTime
SoulInTime 为文件哈希提供时间戳收据,并规定如何引用已确认的证明。它适用于需要核查字节记录时间的客户端和 Agent;原始文件保留在设备上。
主要功能
- 01验证已封存哈希的收据
- 02查找最早的已确认公开收据
- 03创建时间戳收据
- 04下载 OpenTimestamps 证明
- 05拒绝引用未确认或缺少依据的记录
适用场景
- 01检查哈希是否有已确认收据
- 02查找指定高度之前最早的公开收据
- 03仅在满足证明条件时引用时间戳
MCP 相关
托管的 Streamable HTTP MCP 提供只读 `verify` 和 `first_at` 工具;`stamp` 用于创建收据。本地 stdio MCP 包提供相同的只读工具和收据创建功能。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://soulintime.com/functions/mcpclaude mcp add --transport http morrismoe-soulintime https://soulintime.com/functions/mcp{"mcpServers":{"morrismoe-soulintime":{"type":"http","url":"https://soulintime.com/functions/mcp"}}}在 Cursor 中打开{"servers":{"morrismoe-soulintime":{"type":"http","url":"https://soulintime.com/functions/mcp"}}}在 VS Code 中打开{"mcpServers":{"morrismoe-soulintime":{"type":"http","url":"https://soulintime.com/functions/mcp"}}}{"mcpServers":{"morrismoe-soulintime":{"serverUrl":"https://soulintime.com/functions/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
无需创建即可测试
已封存哈希:019bd3056ae35f6eee3f61fcabdaabcfe5f374c07168a7e4d6fa38a828cbac2f
实时回执:https://soulintime.com/moment/a-hash-is-a-door-that-2026-019bd305(区块 965906)
最新封存示例:区块 965906(永久测试对象)。
引用规则:只有当状态为 confirmed 且存在 proofFile 时,才引用 slug@height;否则应拒绝。
在网页上验证:https://soulintime.com/verify?hash=019bd3056ae35f6eee3f61fcabdaabcfe5f374c07168a7e4d6fa38a828cbac2f
托管 MCP:https://soulintime.com/functions/mcp。将支持远程 Streamable HTTP 服务的任意 MCP 客户端指向此 URL。无需密钥。使用已封存哈希调用 verify。
本地 MCP 包:https://soulintime.com/functions/mcpDownload
运行参考客户端会创建回执。下面的 curl 命令不会。
哈希在你的设备上计算;原始文件字节会留在设备上。
.ots 证明无需此主机即可验证。
日历并非由我们发明。OpenTimestamps 才是。我们是在它之上提供回执和拒绝机制。
curl -s 'https://soulintime.com/functions/v1Verify?hash=019bd3056ae35f6eee3f61fcabdaabcfe5f374c07168a7e4d6fa38a828cbac2f'
预期结果:"status":"confirmed"、"blockHeight":965906、"slug":"a-hash-is-a-door-that-2026-019bd305",以及一个 proofFile。
本地运行
- 本地 stdio MCP 服务,提供相同的只读
verify和first_at工具:请参阅 mcp-local/README.md。 - 设置:在
mcp-local/内运行python3 -m venv .venv && .venv/bin/python -m pip install -r requirements.txt && .venv/bin/python server.py。 - 然后使用上面的已封存哈希调用
verify;stamp会创建回执。
下载并检查证明
下载证明:a-hash-is-a-door-that-2026-019bd305.ots
ots verify -d 019bd3056ae35f6eee3f61fcabdaabcfe5f374c07168a7e4d6fa38a828cbac2f a-hash-is-a-door-that-2026-019bd305.ots
ots 来自 pip install opentimestamps-client。如果没有 Bitcoin 节点,请运行 ots info,并在任意区块浏览器上将 merkle 根与区块 965906 进行比较。
拒绝引用(请复制)
当回执处于待处理状态、状态为 height_asserted、缺失或没有证明文件时,Agent 应说:
“我不会为此哈希引用区块高度。状态并非已确认,或不存在 proofFile。”
更多规则:
- 链的最新区块高度绝不是回执的高度。
- 标题或日期并非证明。
- 高度用于标记字节的时间,不代表内容属实。
first_at(v1FirstAt)会返回高度 N 及之前某个哈希最早的已确认公开回执。它不是全局历史记录,未列出和私有的回执都不会显示其中。- 无需密钥。只会发送 SHA-256。
MCP 工具(托管版和本地版)只会根据服务端元数据检查此规则。它们不会以密码学方式验证 .ots;如需验证,请使用 ots verify。
速率限制
创建操作有限制;读取操作也并非不受限制。
创建收据(createMoment):
- 每个网络每小时最多创建一个新的哈希。
- 在该小时内再次创建,或为已有收据的哈希再次创建,如果该收据不是私有的,则返回
429,并附带现有 slug。 already_stamped是永久状态,不会在小时重置时清除。请改为读取现有收据。
读取(v1Verify):
- 响应会携带
X-RateLimit-Limit、X-RateLimit-Remaining和X-RateLimit-Reset(Unix 秒)。我们观察到的一次读取响应中,X-RateLimit-Limit: 120。窗口时长未有文档说明,请以这些标头为准。
遇到 429 时:
- 等到
X-RateLimit-Reset指定的时间,不要紧密循环重试。 - 托管 MCP 调用共用后端的网络出口,因此可能共用上游配额。没有按用户划分的配额。
检查始终免费。若用量超过免费速率,则需要付费方案,但目前尚未提供。
需要超过免费速率的用量?请发送邮件至 [email protected],并注明哈希和用途。
用量简报(无需创建即可测试、免费限额、邮件需提供的信息):volume-brief.md
托管 MCP 与本地 MCP
托管版(/functions/mcp):
- 无状态的 Streamable HTTP,通过 POST 传输。
- 工具
verify(hash)和first_at(hash, height?)为只读操作。 stamp(hash)会创建收据,绝不会作为评估调用。
本地版(mcp-local/):
- 这是下载链接所提供的同一 0.1.0 软件包的源代码。它使用 stdio 通信。
- 设置说明见
mcp-local/README.md。该 README 编写时间早于托管端点。 - 托管 MCP 还会检查
proofFile是否为规范的v1Proof?id=<slug>&ots=1URL。本地版本不会检查。
测试:
test_http.py会模拟所有 HTTP 请求。test_protocol.py会模拟每次盖章操作。最后一个用例会对已封存哈希执行一次实时、只读的verifyGET 请求;运行该文件时会执行此请求。它绝不会发起实时 POST 请求。
会创建收据。
参考客户端
reference-client/soulintime_client.py 与 llms.txt 中发布的代码相同,仅使用标准库。运行它会创建收据:
- 它会将哈希 POST 到 createMoment。
- 它会轮询 v1Verify 并保存
.ots。 - 一旦盖章被接受,就会新增一条默认未列出的注册表记录。
若要无副作用地测试,请改用顶部的 curl 命令。
对主机的依赖
注册表查询(v1Verify、v1FirstAt、Firsts)依赖 soulintime.com。下载的 .ots 文件无需连接该网站,也可通过任何 OpenTimestamps 客户端进行验证。
API 合约:llms.txt 和 openapi.yaml。
状态
Gmail 已停用;价格未设定;总部邮寄待处理;公开的非官方示例首次记录:0。
永久封存对象:965906。非官方示例的公开首次记录:0。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。