mcpField
S
SoulInTime

SoulInTime

远程服务
github.com/SoulinTime安全0今天更新
代码仓库

关于 SoulInTime

SoulInTime 为文件哈希提供时间戳收据,并规定如何引用已确认的证明。它适用于需要核查字节记录时间的客户端和 Agent;原始文件保留在设备上。

主要功能

  1. 01验证已封存哈希的收据
  2. 02查找最早的已确认公开收据
  3. 03创建时间戳收据
  4. 04下载 OpenTimestamps 证明
  5. 05拒绝引用未确认或缺少依据的记录

适用场景

  1. 01检查哈希是否有已确认收据
  2. 02查找指定高度之前最早的公开收据
  3. 03仅在满足证明条件时引用时间戳

MCP 相关

托管的 Streamable HTTP MCP 提供只读 `verify` 和 `first_at` 工具;`stamp` 用于创建收据。本地 stdio MCP 包提供相同的只读工具和收据创建功能。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://soulintime.com/functions/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;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=1 URL。本地版本不会检查。

测试:

  • test_http.py 会模拟所有 HTTP 请求。
  • test_protocol.py 会模拟每次盖章操作。最后一个用例会对已封存哈希执行一次实时、只读的 verify GET 请求;运行该文件时会执行此请求。它绝不会发起实时 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。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。