mcpField
A
attest-mcp-remote

attest-mcp-remote

Remote
attestazione.spaziogenesi.orgSecurity0Updated 10w ago

About attest-mcp-remote

attest-mcp-remote is a hosted MCP server for Spazio Genesi’s digital-work attestation service. It lets clients verify fingerprints and create attestations without transferring files.

Key features

  1. 01Check service and Bitcoin anchor status
  2. 02Verify attestation signatures
  3. 03Find certificates by fingerprint
  4. 04Authorize with a browser device flow
  5. 05Attest fingerprints and create PDF certificates

Use cases

  1. 01Check whether a fingerprint has an OpenTimestamps proof
  2. 02Verify a signed attestation
  3. 03Record a work fingerprint with a server timestamp
  4. 04Generate and retrieve a certificate PDF

MCP support

It exposes eight tools to MCP clients over Streamable HTTP. Tools operate on SHA-256 fingerprints, so files are not sent to the server.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://attest-mcp-remote.it-e3f.workers.dev/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

8

This tool takes no parameters.

Details

From the project README

attest-mcp-remote

Listed on the official MCP Registry as io.github.SPAZIO-GENESI/attest-mcp-remote.

Remote MCP server (Streamable HTTP) for the Spazio Genesi digital-work attestation service. Zero install: add the URL as a connector in your MCP client and start verifying and attesting.

No file ever transits — by design. MCP has no reliable client→server file channel, and this service doesn't want one: every tool works on the SHA-256 fingerprint of the work. Agents with code execution compute it locally (sha256sum <file>), so the file never leaves the machine it lives on — not even through this server. For local-file tooling use the stdio package @spazio-genesi/attest-mcp; for humans, the website (in-browser hashing, full privacy) or the Telegram bot @SGAttestBot.

Status

In production. Live at https://attest-mcp-remote.it-e3f.workers.dev/mcp. All 8 tools implemented, tested, and validated end-to-end against production, including a real zero-install run from claude.ai (connector by URL, human Turnstile approval, certificate PDF issued and archived).

Tools

ToolAuthWhat it does
service_statusnoneHealth of worker / archive / signer / Bitcoin anchor
check_anchornoneOpenTimestamps proof lookup for a fingerprint
verify_attestationnoneVerify the server HMAC signature of an attestation
lookup_certificatenoneArchive lookup + permanent links for a fingerprint
authorizestarts device flowUser approves once in the browser (anti-bot check)
complete_authorizationdevice flowClaims the 24h session token (kept in session state, never echoed)
attest_hashsession token or API key headerBind a fingerprint to a signed server timestamp
create_certificate_pdfsession-scopedGenerate + archive the certificate PDF, returns permanent links

Credentials: either the zero-config device flow above, or an Authorization: Bearer sg_k_… header on the connection (e.g. Claude Code: claude mcp add --transport http attest <url> --header "Authorization: Bearer sg_k_…"). Self-service keys: https://imgauth.spaziogenesi.org/developer/keys

Develop

npm install
npm run dev            # wrangler dev (default port 8787)
node test/smoke.mjs http://127.0.0.1:8787

test/smoke.mjs drives the Streamable HTTP transport end-to-end (initialize → tools/list → tools/call) against real, public production data (read-only). test/smoke-auth.mjs covers the credentialed flow and is a local-only harness: it needs an isolated imgauth wrangler dev (own --persist-to state, SIGNER_URL emptied) because the user-approval step is simulated by writing the local D1 directly — see the header comment in the file.

⚠️ When bumping the version

This server is also advertised through an MCP Server Card published by the web interface, which repeats this server's name, version and endpoint:

https://attestazione.spaziogenesi.org/.well-known/mcp/server-card.json
→ file: imgauthweb/.well-known/mcp/server-card.json

That file is not generated from this repository, so a version bump here silently makes it wrong. When you change version in package.json and server.json, update serverInfo.version in the card too — same release, same day. (Publishing a card that misstates the version is the same class of problem as an openapi.json left behind: a descriptor that lies is worse than none.)

Security

Report vulnerabilities → /sicurezza/ (responsible disclosure policy, safe harbor for good-faith research) — this repo has no security.txt of its own (Worker with no static assets), but the policy covers the whole project, including this workers.dev service.

License

MIT — © Spazio Genesi ETS. This is a pure client of the public imgauth API; it defines no API contract of its own.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.