# io.github.SPAZIO-GENESI/attest-mcp-remote (remote · attest-mcp-remote.it-e3f.workers.dev)

Zero-install remote MCP server for proof-of-existence file attestation.

- Trust score: 60/100 (medium)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `attest-mcp-remote.it-e3f.workers.dev`: 60/100 (this document), [markdown](https://verifymcp.io/servers/spazio-genesi-attest-mcp-remote/attest-mcp-remote.md), [page](https://verifymcp.io/servers/spazio-genesi-attest-mcp-remote/attest-mcp-remote)

## Channel facts

- Endpoint: `https://attest-mcp-remote.it-e3f.workers.dev/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 8 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS not yet verified: we couldn't determine whether a plaintext access path exists.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1536 tokens (~192/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http spazio-genesi-attest-mcp-remote https://attest-mcp-remote.it-e3f.workers.dev/mcp
```

### Codex

```toml
[mcp_servers.spazio-genesi-attest-mcp-remote]
url = "https://attest-mcp-remote.it-e3f.workers.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "spazio-genesi-attest-mcp-remote": {
      "type": "remote",
      "url": "https://attest-mcp-remote.it-e3f.workers.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add spazio-genesi-attest-mcp-remote --url https://attest-mcp-remote.it-e3f.workers.dev/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  spazio-genesi-attest-mcp-remote:
    url: "https://attest-mcp-remote.it-e3f.workers.dev/mcp"
```

### Other

```json
{
  "mcpServers": {
    "spazio-genesi-attest-mcp-remote": {
      "type": "http",
      "url": "https://attest-mcp-remote.it-e3f.workers.dev/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 60, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 59, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 60, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 60, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 59, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 58, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 58)

First indexed and scored.

## MCP tools (8)

### `service_status` (~57 tokens)

Health of the Spazio Genesi attestation service components: worker (attestation engine), archive (certificate storage), signer (PDF cryptographic signature), anchor (Bitcoin/OpenTimestamps calendars). Values: ok | degraded | down | n/d.

### `check_anchor` (~175 tokens)

Check whether a work's SHA-256 fingerprint has an OpenTimestamps proof anchored in Bitcoin. The proof is created at attestation time and matures (pending → Bitcoin-confirmed) within a few hours.

Input parameters:

- `sha256` (string, required): SHA-256 fingerprint of the work: 64 hexadecimal characters. Compute the SHA-256 locally if you have code execution (`sha256sum <file>` / `shasum -a 256 <file>` / `certutil -hashfile <file> SHA256`).…

### `verify_attestation` (~376 tokens)

Verify the server HMAC signature of an attestation issued by the Spazio Genesi service. Confirms that the attestation string (fingerprint + timestamp) and any declared metadata are authentic and untampered. Note: this checks the SIGNATURE only. Whether a given file matches the fingerprint must be checked locally by re-hashing the file. If the certificate carried declared metadata (title/author/year/notes), they must be provided EXACTLY as printed for the signature to verify.

Input parameters:

- `anno` (string): Declared year/version, exactly as printed (only if the certificate shows it).
- `attestazione` (string, required): The attestation string exactly as printed on the certificate: "SHA-256:<hash>@<ISO timestamp>Z"
- `autore` (string): Declared author, exactly as printed (only if the certificate shows it).
- `hmac` (string, required): The server HMAC signature exactly as printed on the certificate (base64, 44 characters ending with '=').
- `note` (string): Declared notes, exactly as printed (only if the certificate shows them).
- `sha256` (string, required): SHA-256 fingerprint of the work: 64 hexadecimal characters. Compute the SHA-256 locally if you have code execution (`sha256sum <file>` / `shasum -a 256 <file>` / `certutil -hashfile <file> SHA256`).…
- `titolo` (string): Declared title, exactly as printed (only if the certificate shows it).

### `lookup_certificate` (~188 tokens)

Look up whether a work's SHA-256 fingerprint has an attestation certificate in the public archive, and get its permanent links (public certificate page, PDF download, OpenTimestamps proof, browser verification). Trust model: this information is reachable only by whoever knows the fingerprint.

Input parameters:

- `sha256` (string, required): SHA-256 fingerprint of the work: 64 hexadecimal characters. Compute the SHA-256 locally if you have code execution (`sha256sum <file>` / `shasum -a 256 <file>` / `certutil -hashfile <file> SHA256`).…

### `authorize` (~77 tokens)

Start the device-flow authorization to attest works in this session (up to 20 attestations, 24h). Returns a link the USER must open in a browser and approve (anti-bot check included). After the user approves, call `complete_authorization`. Not needed if the connection already carries an API key header, or for verification tools.

### `complete_authorization` (~40 tokens)

Complete the device-flow authorization after the user approved in the browser. Polls the service briefly; if approval hasn't happened yet, just call this tool again.

### `attest_hash` (~426 tokens)

Attest a work: the service binds the SHA-256 fingerprint to a server-side timestamp and signs it (HMAC). Requires a credential (device flow via `authorize`, or an API key header). Optional declared metadata (title/author/year/notes) are normalized and BOUND by the signature — immutable after issuance, but they remain self-declared (they don't prove authorship). Compute the SHA-256 locally if you have code execution (`sha256sum <file>` / `shasum -a 256 <file>` / `certutil -hashfile <file> SHA256`). NEVER send file bytes or base64 through tool arguments: this server never receives files. If you cannot compute a hash locally, point the user to the website (https://attestazione.spaziogenesi.org, full privacy: hashing happens in the browser) or the Telegram bot @SGAttestBot.

Input parameters:

- `anno` (string): Declared year/version (bound by the signature).
- `autore` (string): Declared author (bound by the signature).
- `name` (string): File name (descriptive only, shown on the certificate).
- `note` (string): Declared notes (bound by the signature).
- `sha256` (string, required): SHA-256 fingerprint of the work: 64 hexadecimal characters. Compute the SHA-256 locally if you have code execution (`sha256sum <file>` / `shasum -a 256 <file>` / `certutil -hashfile <file> SHA256`).…
- `size` (integer): File size in bytes (descriptive only).
- `titolo` (string): Declared title of the work (bound by the signature).
- `type` (string): MIME type (descriptive only).

### `create_certificate_pdf` (~197 tokens)

Generate and archive the certificate PDF for a fingerprint attested in this session with `attest_hash`. The PDF is cryptographically signed, anchored in Bitcoin (OpenTimestamps) and archived server-side; this tool returns the permanent links (the PDF itself is downloadable from its URL — it is never inlined here).

Input parameters:

- `sha256` (string, required): SHA-256 fingerprint of the work: 64 hexadecimal characters. Compute the SHA-256 locally if you have code execution (`sha256sum <file>` / `shasum -a 256 <file>` / `certutil -hashfile <file> SHA256`).…

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/spazio-genesi-attest-mcp-remote/attest-mcp-remote#diagnostics

## Score history

- 2026-08-03: 60
- 2026-08-02: 60
- 2026-08-01: 59
- 2026-07-31: 59
- 2026-07-30: 60
- 2026-07-29: 60
- 2026-07-28: 59
- 2026-07-27: 58
- 2026-07-26: 58

## Links

- Remote endpoint: https://attest-mcp-remote.it-e3f.workers.dev/mcp
- Repository: https://github.com/SPAZIO-GENESI/attest-mcp-remote
- Website: https://attestazione.spaziogenesi.org/
- Changelog RSS feed: https://verifymcp.io/servers/spazio-genesi-attest-mcp-remote/attest-mcp-remote/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/spazio-genesi-attest-mcp-remote/attest-mcp-remote/changelog.json
- HTML version of this page: https://verifymcp.io/servers/spazio-genesi-attest-mcp-remote/attest-mcp-remote
