standards

Standards

Rules for the Verae MCP timestamping server.

Protocol

This process is an MCP server (Model Context Protocol). Clients are assistants and inspectors that speak MCP. It is not a REST product API and not a browser session by itself.

Hash only

Scopes

Scope Where the receipt lives
local JSON file, default ~/.verae/mcp-timestamp-local.json
shared Same file. There is no separate shared store in this process
global POST https://api.veraetime.net/api/timestamp with wait=true

want_scope=global on verify asks VeraeTime. A local receipt cannot satisfy global.

Global history

hash_report reads the local file only. VeraeTime is not queried for a digest history. A global stamp can verify by certificate id and still be absent from hash_report. An empty list means “not in the local file,” not “VeraeTime has no record.”

Credentials

NATS

NatsLedger is optional and is not the default. It uses core NATS request/reply:

Job-complete and receipt notifications stay ephemeral core NATS (verae.ts.completed, verae.ts.receipt). This server does not put those events on JetStream.

Transports

VERAE_MCP_TRANSPORT Bind
unset or stdio Parent process stdin/stdout
streamable-http VERAE_MCP_HOST (default 127.0.0.1) and VERAE_MCP_PORT (default 8000), path /mcp

Leave the HTTP bind on loopback unless a reverse proxy terminates TLS and authentication in front of it. Do not publish the VeraeTime bearer token on an open internet listener.

Errors

Invalid digests and unknown scopes raise ToolError with the ValueError text. HTTP failures from VeraeTime surface as global timestamp HTTP <status>.