No description
  • HTML 75.2%
  • Python 19.3%
  • JavaScript 4.9%
  • Shell 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
George Lambert f919d932f6 feat: stamp wait=true so MCP skips HTTP job polling
WhatToChange: /Users/marchon/research/recommended-changes/2026-09-20-forgejo-ci-138
  What-to-Change.md

What was actually done:
- GlobalClient POST includes wait:true

What was not done:
- MCP NATS subscriber (HTTP wait is enough for the client)
2026-09-20 13:16:22 -04:00
debug-trace docs: 20-stamp trace after live CID idempotency (same receipt) 2026-09-20 12:59:32 -04:00
scripts docs: store stamp HTML traces under dated debug-trace run dirs 2026-09-20 11:34:36 -04:00
src/verae_mcp_timestamping_server feat: stamp wait=true so MCP skips HTTP job polling 2026-09-20 13:16:22 -04:00
tests feat: stamp wait=true so MCP skips HTTP job polling 2026-09-20 13:16:22 -04:00
.gitignore chore: initialize verae-mcp-timestamping-server 2026-09-20 01:24:13 -04:00
LICENSE chore: initialize verae-mcp-timestamping-server 2026-09-20 01:24:13 -04:00
pyproject.toml feat: hash-only stamp, verify, and hash_report MCP tools 2026-09-20 02:59:00 -04:00
README.md docs: store stamp HTML traces under dated debug-trace run dirs 2026-09-20 11:34:36 -04:00
uv.lock feat: hash-only stamp, verify, and hash_report MCP tools 2026-09-20 02:59:00 -04:00

verae-mcp-timestamping-server

standard-readme compliant

Verae MCP timestamping server. Hash-only stamps via leaf locald/NATS.

The MCP process never hashes content. Clients send a SHA-256 hex digest. scope=local writes ~/.verae/mcp-timestamp-local.json. scope=global POSTs to https://api.veraetime.net/api/timestamp (same wire as verae-timestamp/global.Client). want_scope=global verifies against that API as the central source of truth. Bearer token: VERAE_GLOBAL_TOKEN or ~/.verae/auth.properties.

Install

cd /Users/marchon/research/modelcontextprotocol/verae-mcp-timestamping-server
uv sync --group dev

Usage

Inspector (stdio, memory ledger):

uv run mcp dev src/verae_mcp_timestamping_server/server.py

Streamable HTTP (http://127.0.0.1:8000/mcp):

VERAE_MCP_TRANSPORT=streamable-http uv run verae-mcp-timestamping-server

Tests:

uv run pytest

HTTP stamp traces (HTML viewer) live under debug-trace/<YYYY-MM-DDTHHMMSSZ>-<slug>/:

uv run python scripts/transaction_log_test.py
open debug-trace/2026-09-20T143541Z-verae-debug-test/transaction-log-test.html

Global stamp (central VeraeTime). Token lives at ~/.verae/auth.properties (mode 600):

# refresh: POST https://api.veraetime.net/auth/login → access_token=
# or: export VERAE_GLOBAL_TOKEN=...
# then stamp with scope=global

Do not send file bytes to stamp. Local receipts persist at ~/.verae/mcp-timestamp-local.json (VERAE_LEDGER_PATH).

Contributing

Questions: this research workspace. PRs welcome. Protocol questions belong at https://github.com/modelcontextprotocol. Timestamp ledger questions belong with verae-timestamp / locald.

License

UNLICENSED © George Lambert