Provides deployment capabilities for the MCP server on Cloudflare Workers, including OAuth authentication, allowing the server to be accessible remotely with proper authentication.
⏱️ Time MCP Server on Cloudflare Workers (Remote, No Auth)
This project is a remote MCP server running on Cloudflare Workers that gives LLMs rich time awareness:
Current time (UTC + any timezone)
Relative time (“3 hours ago”, “in 2 days”)
Days in month
Timestamps
Timezone conversion
Week / ISO week of the year
It is based on Cloudflare’s remote-mcp-authless template, but exposes a full time toolkit over MCP.
Tools
The server exposes these MCP tools:
current_time
Get the current time in UTC and in a target timezone, in a configurable format.relative_time
Get the relative time from now for a given timestamp (e.g."2025-03-23 12:00:00"→"in 2 days").days_in_month
Get the number of days in a given month (or the current month if no date is provided).get_timestamp
Get the Unix timestamp (milliseconds) for a given time, or for now.convert_time
Convert a given time between two IANA timezones (e.g.Europe/Amsterdam→Asia/Tokyo).get_week_year
Get the week number and ISO week number for a given date, or for today.
All tools are implemented in src/index.ts using this.server.tool(...) on a McpServer instance.
Related MCP server: Remote MCP Server (Authless)
Get Started
You can either:
1. Deploy from this repo (once it’s on GitHub)
Use the Deploy to Workers button (update the URL to match your GitHub repo):
This will deploy your MCP server to a URL like:
2. Create locally from the Cloudflare template
If you want to reproduce this setup from scratch:
Then replace src/index.ts with the time MCP implementation from this repo and install dayjs:
Running Locally
From the project directory:
This starts a local dev server, usually at:
Exposed endpoints:
SSE MCP transport:
http://localhost:8787/sseHTTP (streamable) MCP transport:
http://localhost:8787/mcpHealth check:
http://localhost:8787/health
Deploying to Cloudflare
To deploy the Worker:
After deploy you’ll get a URL like:
With MCP endpoints:
SSE:
https://mcp-timeserver.<your-account>.workers.dev/sseHTTP:
https://mcp-timeserver.<your-account>.workers.dev/mcp
Using the MCP Server
1. Cloudflare AI Playground
You can use this Worker as a remote MCP server from the Cloudflare AI Playground:
Go to https://playground.ai.cloudflare.com/
Add a new MCP server and use your deployed URL, for example:
https://mcp-timeserver.<your-account>.workers.dev/sseThe tools
current_time,relative_time, etc. will be available for the model to call.
2. MCP Inspector (local testing)
To inspect tools and make test calls:
In the Inspector UI:
Use
http://localhost:8787/sse(dev) or your deployed/sseURL.Connect and then List Tools to see all time tools.
Call tools like
current_timewith JSON arguments, for example:{ "format": "YYYY-MM-DD HH:mm:ss", "timezone": "Europe/Amsterdam" }
3. Connect Claude Desktop via mcp-remote
Most desktop clients still speak stdio MCP, so you can use mcp-remote as a proxy to your Cloudflare Worker.
In your Claude Desktop config (e.g. claude_desktop_config.json):
Restart Claude. You should now see:
current_timerelative_timedays_in_monthget_timestampconvert_timeget_week_year
available as tools.
Development Notes
Runtime: Cloudflare Workers + Durable Objects
MCP:
@modelcontextprotocol/sdkvia Cloudflareagents/mcpTime library:
dayjswithutc,timezone,relativeTime,weekOfYear,isoWeekplugins.Entry point:
src/index.tsConfig:
wrangler.toml
License
MIT – feel free to fork, extend, and adapt.