Evercycle-style local facade: GlobalClient posts /api/timestamp and /api/verify with Bearer from VERAE_GLOBAL_TOKEN or ~/.verae/auth.properties.
52 lines
1.6 KiB
Markdown
52 lines
1.6 KiB
Markdown
# verae-mcp-timestamping-server
|
|
|
|
[](https://github.com/RichardLitt/standard-readme)
|
|
|
|
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
|
|
|
|
```sh
|
|
cd /Users/marchon/research/modelcontextprotocol/verae-mcp-timestamping-server
|
|
uv sync --group dev
|
|
```
|
|
|
|
## Usage
|
|
|
|
Inspector (stdio, memory ledger):
|
|
|
|
```sh
|
|
uv run mcp dev src/verae_mcp_timestamping_server/server.py
|
|
```
|
|
|
|
Streamable HTTP (`http://127.0.0.1:8000/mcp`):
|
|
|
|
```sh
|
|
VERAE_MCP_TRANSPORT=streamable-http uv run verae-mcp-timestamping-server
|
|
```
|
|
|
|
Tests:
|
|
|
|
```sh
|
|
uv run pytest
|
|
```
|
|
|
|
Global stamp (central VeraeTime):
|
|
|
|
```sh
|
|
export VERAE_GLOBAL_URL=https://api.veraetime.net
|
|
export VERAE_GLOBAL_TOKEN= # or put access_token= in ~/.verae/auth.properties
|
|
# then call tool 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
|