
temporal-mcp
Gives Claude a persistent wall clock so it knows how much time passed between conversation turns. Exposes two MCP tools: temporal_tick advances the timeline and returns elapsed seconds plus day rollover detection, temporal_peek reads the gap without advancing state. Useful when you want the model to greet appropriately, detect resumed sessions, or reload daily context after midnight. Ships as both a Python stdio server for local use and a hosted HTTP endpoint at temporal-mcp.dev with bearer token or OAuth authentication. State persists per thread key in a local JSON file or remote D1 database. The hosted version is free tier Cloudflare Workers, self-hostable if you need scale or custom routing.
- GitHub stars
- 2
- tools
- 2
- auth
- Secret needed
- transport
- STDIO, HTTP
- last updated
- May 13, 2026
Install
From registry metadata$ npx add-mcp https://temporal-mcp.dev/mcp --name temporal-mcp --header 'Authorization: Bearer ${API_TOKEN}'Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http temporal-mcp https://temporal-mcp.dev/mcp --header 'Authorization: YOUR_AUTHORIZATION'Run in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 2 toolsVerified live against the running server on Nov 6, 2026.
temporal_tickAdvance the temporal clock for a thread and return a snapshot (now / prev / gap / day_rollover / fresh_thread). Call once per user turn. Pass a stable `thread_key` (e.g. the conversation ID) so gap deltas remain meaningful across page reloads.4 params
Advance the temporal clock for a thread and return a snapshot (now / prev / gap / day_rollover / fresh_thread). Call once per user turn. Pass a stable `thread_key` (e.g. the conversation ID) so gap deltas remain meaningful across page reloads.
client_idstringthread_keystringtz_namestringtz_offset_minutesintegertemporal_peekRead the current temporal snapshot for a thread WITHOUT advancing state. Use this when you want the gap delta but the call is not the canonical per-turn event.4 params
Read the current temporal snapshot for a thread WITHOUT advancing state. Use this when you want the gap delta but the call is not the canonical per-turn event.
client_idstringthread_keystringtz_namestringtz_offset_minutesintegerSponsors
Readme
temporal-mcp
Your model knows calculus but not what day it is. Fix that.
temporal-mcp is a tiny Model Context Protocol
server that gives LLM agents a sense of time between turns. Two tools, a few
hundred lines, stdlib + mcp + platformdirs. That's the whole thing.
The problem
Open a fresh chat at 11 PM. The model says "good morning." Resume a conversation three weeks later. The model picks up mid-sentence like no time passed. Ask for "today's status." Get yesterday's status. Or last Tuesday's.
LLMs don't have wall clocks. They don't know when the last user message was, whether the calendar flipped, or whether this is a fresh thread or one resumed after a long gap. Most of the time this is harmless. Sometimes it makes your agent sound like it just woke up from cryosleep.
The fix
A persistent per-thread last-seen log, exposed as two MCP tools:
Details
- Repository
- github.com/mirrorethic/temporal-mcp
- Website
- temporal-mcp.dev
- Categories
- AI & LLM Tools, Automation & Workflows
- Package
temporal-mcp- Transport
- STDIO, HTTP
- Auth
- Required
- Registry
- MCP registry, active
- Tools verified
- Nov 6, 2026