Stamp
Stamp is a utility MCP for agents and pipelines that need reliable attribution primitives they cannot safely produce themselves.
What it can do
- Get Time: Query an NTP server for current UTC time and this clock's offset. Appends the sample to the drift log and returns the trend inline: current offset, drift rate (ms/day), and whether the clock
- Generate Uuid: Generate one or more random UUIDv4 identifiers -- for records, sessions, and IDs created in agent pipelines.
- Diff: Unified diff between two texts, with added/removed line counts. For reviewing edits, comparing outputs, or validating transformations.
What data it sees
Do you need an account
No: the server works without sign-in
Stamp is a utility MCP for agents and pipelines that need reliable attribution primitives they cannot safely produce themselves. 6 commands.
NOTE Canonicalization change: records attested before this change on September 11th won't verify under JCS, the hash input changed. That's inherent to fixing the canonicalization, old records were only verifiable against Python's json.dumps.
calculate: evaluates math expressions in a sandboxed AST evaluator. Agents offload arithmetic here rather than computing it through token generation, which is unreliable. Supports arithmetic operators, exponentiation, modulo, logarithms, trigonometry, rounding, and mathematical constants.
generate_uuid: mints one or more UUIDv4 identifiers on demand, up to 1000 at a time. Any agent that creates records, sessions, events, or transactions needs collision-resistant IDs that come from a trusted source rather than being synthesized by the model.
get_time: queries an NTP server (Cloudflare by default) and returns verified UTC or other select timezones alongside the container clock's current offset in milliseconds. Agents writing audit logs, timestamping financial events, or coordinating across distributed nodes get actual time rather than whatever the host clock believes.
diff: returns a unified diff between two text strings with added and removed line counts and configurable context. Agents that transform text can verify the exact delta before committing rather than reasoning about what changed.
attest: takes anything, returns it back wrapped with a verified timestamp, a UUID, and a hash of the payload. One call, the record is complete and tamper-evident.
verify: takes an attested record, returns pass/fail. Did this payload produce this hash at this timestamp. Provable.
DISCLAIMER Stamp queries public NTP infrastructure (Cloudflare, stratum 3), alongside public Python libraries, and is suitable for general agentic workflows. Implementers are responsible for what they put in payloads, Stamp doesn't log payload content. Usage in production systems is at the implementer's risk.
Server tool list (6)
Raw names from tools/list. Only developers need these.
| get_time | Query an NTP server for current UTC time and this clock's offset. Appends the sample to the drift log and returns the trend inline: current offset, drift rate (ms/day), and whether the clock is stable, drifting, or accelerating. |
| generate_uuid | Generate one or more random UUIDv4 identifiers -- for records, sessions, and IDs created in agent pipelines. |
| diff | Unified diff between two texts, with added/removed line counts. For reviewing edits, comparing outputs, or validating transformations. |
| calculate | Evaluate a math expression safely: + - * / // % **, parentheses, functions (abs round min max sqrt floor ceil exp log log2 log10 pow sin cos tan), constants pi e tau inf. Parsed to an AST and only whitelisted nodes are computed -- no eval(), no names, no arbitrary code. |
| attest | Wrap any payload in a tamper-evident record: a UUID, a timestamp (NTP-verified when reachable, local clock otherwise -- the record says which), and a sha256 over the canonical record. One call, the record is complete and tamper-evident. |
| verify | Check a record produced by attest: recompute the sha256 over the record and compare. Pass/fail -- did this payload produce this hash at this timestamp. Any modified field breaks it. |