NTP time plus clock-drift history: stable vs. accelerating offsets.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
HTTPS URL Endpoint:
https://stamp-mcp.terradev.cloud
The concierge MCP for agentic workflows: the small tools agents reach for constantly -- NTP time and clock drift, UUIDs, diffs, safe arithmetic -- behind one endpoint. Zero dependencies, fully synchronous, raw JSON-RPC 2.0 over stdio -- no MCP library, no asyncio.
A single NTP query tells you where your clock is right now. Drift history
tells you where it is going: a clock that is consistently 200ms fast and
accelerating is a different problem than one that is stable at 200ms fast.
get_time takes the measurement; every call appends to a local log;
get_drift reads the log and reports the trend.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
Or run the module directly:
get_time -- one NTP query: UTC time, this clock's offset in ms,
network delay, stratum. Appends the sample to the drift log. Optional
argument: server (default time.cloudflare.com).get_drift -- analyzes the drift log: sample count, timespan,
current/mean/stddev offset, drift rate in ms/day (least-squares fit),
first-half vs. second-half rates, and a verdict: stable, drifting,
or accelerating. Optional argument: server to filter samples.generate_uuid -- random UUIDv4s for records, sessions, and
identifiers. Optional argument: count (1-1000, default 1).diff -- unified diff between text_a and text_b, with
added/removed line counts and an identical flag. Optional argument:
context (lines of context, default 3).calculate -- safe math evaluator: + - * / // % **, parentheses,
functions (abs round min max sqrt floor ceil exp log log2 log10 pow sin cos tan), constants pi e tau inf. The expression is parsed to an
AST and only whitelisted nodes are computed -- no eval(), no names,
no arbitrary code. Required argument: expression.Every get_time call appends one JSON line to ~/.stamp/drift.jsonl
(override with STAMP_DRIFT_LOG). The file is capped at 10,000 samples.
Call get_time periodically -- a cron job, a heartbeat, or just asking
Claude "check the clock" now and then -- and get_drift turns the
accumulated offsets into a trend.
The same dispatch() also serves MCP's streamable-HTTP transport via
stamp_mcp/http_server.py -- still zero dependencies (http.server):
POST /mcp -- JSON-RPC requests (single or batch); notifications get
202, requests get 200 application/json.GET /mcp -- 405 (no SSE streams; nothing server-initiated exists).GET /health -- 200 for proxies and monitors.TLS is terminated by a reverse proxy, not Python. The production layout
is two containers on one AWS instance, wired by docker-compose.yml:
stamp -- the server, built from Dockerfile, exposed only to the
internal compose network. Drift log persists in the stamp-data volume.caddy -- official Caddy image, terminates HTTPS at
stamp-mcp.terradev.cloud (automatic Let's Encrypt once DNS points at
the instance) and reverse-proxies to stamp:8000.deploy/ also has a non-container path (stamp-mcp.service systemd unit,
deploy.sh) if you ever want to run it bare-metal.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
Restart Claude Desktop, then ask it "what tools do you have?" -- get_time
should appear. If it doesn't, check the logs at
~/Library/Logs/Claude/mcp*.log -- a stray print or missing flush is the
usual culprit.
DISCLAIMER Stamp queries public NTP infrastructure (Cloudflare, stratum 3) and is suitable for general agentic workflows. It is not intended for use cases requiring certified atomic precision, legal timestamp authority, or regulated audit trails. Use in production systems is at the implementer's risk.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/stamp)<a href="https://allmcps.com/mcp/stamp"><img src="https://allmcps.com/api/badge/stamp?style=directory" alt="Stamp on AllMCPs" /></a>