关于 attest-mcp-remote
attest-mcp-remote 是面向 Spazio Genesi 数字作品认证服务的托管 MCP 服务。客户端可验证文件指纹并创建认证,全程无需传输文件。
主要功能
- 01检查服务与比特币锚定状态
- 02验证认证签名
- 03按指纹查找证书
- 04通过浏览器设备流程授权
- 05认证指纹并生成 PDF 证书
适用场景
- 01检查指纹是否有 OpenTimestamps 证明
- 02验证已签名的认证
- 03为作品指纹登记服务器时间戳
- 04生成并获取 PDF 证书
MCP 相关
它通过 Streamable HTTP 向 MCP 客户端提供 8 个工具。工具处理 SHA-256 指纹,因此文件不会发送到服务器。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://attest-mcp-remote.it-e3f.workers.dev/mcpclaude mcp add --transport http spazio-genesi-attest-mcp-remote https://attest-mcp-remote.it-e3f.workers.dev/mcp{"mcpServers":{"spazio-genesi-attest-mcp-remote":{"type":"http","url":"https://attest-mcp-remote.it-e3f.workers.dev/mcp"}}}在 Cursor 中打开{"servers":{"spazio-genesi-attest-mcp-remote":{"type":"http","url":"https://attest-mcp-remote.it-e3f.workers.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"spazio-genesi-attest-mcp-remote":{"type":"http","url":"https://attest-mcp-remote.it-e3f.workers.dev/mcp"}}}{"mcpServers":{"spazio-genesi-attest-mcp-remote":{"serverUrl":"https://attest-mcp-remote.it-e3f.workers.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
8此工具无需参数。
详细介绍
attest-mcp-remote
已列入官方 MCP Registry,登记名为
io.github.SPAZIO-GENESI/attest-mcp-remote。
适用于 Spazio Genesi digital-work attestation service 的远程 MCP 服务(Streamable HTTP)。无需安装: 在 MCP 客户端中将 URL 添加为连接器,即可开始验证和存证。
有意确保文件绝不传输。 MCP 没有可靠的客户端→服务端文件传输通道,而此服务也不需要这样的通道:每个工具都基于作品的 SHA-256 指纹运行。具备代码执行能力的 Agent 会在本地计算指纹
(sha256sum <file>),因此文件绝不会离开其所在设备——甚至不会经由此服务传输。如需处理本地文件的工具,请使用 stdio 包
@spazio-genesi/attest-mcp;
人工用户可使用网站(在浏览器中计算哈希,充分保护隐私)或 Telegram 机器人 @SGAttestBot。
状态
已投入生产。 服务运行于 https://attest-mcp-remote.it-e3f.workers.dev/mcp。
全部 8 个工具均已实现、测试,并通过生产环境端到端验证,其中包括在 claude.ai 上实际完成的一次零安装操作(通过 URL 添加连接器,经人工 Turnstile 审批,签发并归档证书 PDF)。
工具
| 工具 | 身份验证 | 功能 |
|---|---|---|
service_status | 无 | 检查 Worker / 归档服务 / 签名服务 / Bitcoin 锚定状态 |
check_anchor | 无 | 查询指纹的 OpenTimestamps 证明 |
verify_attestation | 无 | 验证存证的服务器 HMAC 签名 |
lookup_certificate | 无 | 查询指纹的归档记录和永久链接 |
authorize | 启动设备授权流程 | 用户在浏览器中审批一次(反机器人检查) |
complete_authorization | 设备授权流程 | 获取 24 小时会话令牌(保存在会话状态中,绝不回显) |
attest_hash | 会话令牌或 API 密钥标头 | 将指纹绑定到带服务器签名的时间戳 |
create_certificate_pdf | 会话级 | 生成并归档证书 PDF,返回永久链接 |
凭据:可以使用上述零配置设备授权流程,也可以在连接中添加
Authorization: Bearer sg_k_… 标头(例如 Claude Code:
claude mcp add --transport http attest <url> --header "Authorization: Bearer sg_k_…")。
自助申请密钥:https://imgauth.spaziogenesi.org/developer/keys
开发
npm install
npm run dev # wrangler dev (default port 8787)
node test/smoke.mjs http://127.0.0.1:8787
test/smoke.mjs 针对真实的公开生产数据(只读),对 Streamable HTTP 传输执行端到端测试(initialize →
tools/list → tools/call)。
test/smoke-auth.mjs 覆盖凭据验证流程,是一个仅供本地使用的测试工具:它需要隔离运行的 imgauth wrangler dev(使用独立的 --persist-to
状态,并清空 SIGNER_URL),因为用户审批步骤是通过直接写入本地 D1 来模拟的——详见文件开头的注释。
⚠️ 提升版本号时
此服务还通过 Web 界面发布的 MCP Server Card 进行展示,其中重复列出了此服务的名称、版本和端点:
https://attestazione.spaziogenesi.org/.well-known/mcp/server-card.json
→ 文件:imgauthweb/.well-known/mcp/server-card.json
此文件不会根据此仓库生成,因此在此处提升版本号会导致内容悄然过时。更改 package.json 和
server.json 中的 version 时,也要更新卡片中的 serverInfo.version——确保属于同一版本发布,并在同一天完成。(发布一张版本号错误的卡片,与将过时的 openapi.json 留在项目中属于同一类问题:会提供错误信息的描述文件,还不如没有。)
安全
报告漏洞 → /sicurezza/
(负责任披露政策,为善意研究提供安全港)——此仓库没有自己的 security.txt(这是一个没有静态资源的 Worker),但该政策适用于整个项目,包括此 workers.dev 服务。
许可证
MIT — © Spazio Genesi ETS。这是公共 imgauth API 的纯客户端,不定义自身的 API 契约。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。