Skip to main content
Glama
jyagunii-bot

now-mcp

by jyagunii-bot
README.md
# now-mcp

> A small MCP server that gives Claude the current date and time. Paste a URL, done.
>
> Claudeに今の日付と時刻を渡すだけのMCPサーバー。URL貼って終わり。

---

## Why I made this / なぜ作ったか

**English**: I needed time-awareness in my own Claude workflow. Claude doesn't know the current date or time by default — it guesses or refuses. So I built this for myself. Anthropic will probably ship this natively at some point; when they do, this becomes obsolete and that's fine.

**日本語**: 自分の作業に時間の感覚が必要だったから作っただけ。Claudeはデフォルトで日付も時刻も知らない(推測するか答えない)。Anthropicがいずれ公式対応するはずで、そうなったらこれは不要になる。それでいい。

---

## How to use / 使い方

claude.ai → **Settings** → **Connectors** → **Add custom connector**
claude.ai → 設定 → コネクタ → カスタムコネクタを追加

Paste this URL / このURLを貼る:

```
https://now-mcp.jyagunii.workers.dev/mcp
```

That's it. No setup, no copy-paste prompts.
それだけ。設定もコピペプロンプトも不要。

> Custom MCP connectors on claude.ai require Pro / Max / Team / Enterprise plans (Free added MCP support in Feb 2026).
> claude.ai のカスタムMCPコネクタは Pro / Max / Team / Enterprise 対応(Free でも 2026年2月から対応)。

### Optional: pin your timezone / オプション: タイムゾーン固定

Append `?tz=` with your IANA timezone for guaranteed accuracy:

確実に正しい時刻にしたい場合は、IANAタイムゾーンを付ける:

```
https://now-mcp.jyagunii.workers.dev/mcp?tz=Asia/Tokyo
```

To find your timezone, visit: https://now-mcp.jyagunii.workers.dev/

---

## What it does / 何をするか

One tool: `get_current_time(timezone?)`

- Returns ISO 8601 timestamp, human-readable time, weekday, unix milliseconds
- Timezone resolution: argument → URL param `?tz=` → Cloudflare geolocation → UTC

ツールは1つ: `get_current_time(timezone?)`

- ISO 8601、人が読める形式、曜日、unixミリ秒を返す
- タイムゾーン決定優先順位: 引数 → URLパラメータ → Cloudflare地理情報 → UTC

### Example response / レスポンス例

```json
{
  "iso": "2026-05-08T13:09:20+09:00",
  "human": "2026-05-08 13:09 Fri (Asia/Tokyo)",
  "timezone": "Asia/Tokyo",
  "weekday": "Fri",
  "unix_ms": 1778632000000,
  "_timezone_source": "argument"
}
```

`_timezone_source` indicates where the timezone came from: `argument`, `url_param`, `cloudflare_geo`, or `fallback`.

---

## Where it works, where it doesn't / 動く場合と動かない場合

### Works / 動く

- claude.ai web/mobile users with default location settings
  デフォルト設定の claude.ai web/モバイルユーザー
- Users with `?tz=...` URL param set
  URLパラメータ `?tz=...` を設定した人
- Users running [Now Extension for Claude](https://github.com/jyagunii-bot/now-extension-for-claude) (Chrome extension that injects timestamps)
  姉妹のChrome拡張 [Now Extension for Claude](https://github.com/jyagunii-bot/now-extension-for-claude) を使っている人

### Doesn't work / 動かない

- Users who disabled location in Claude privacy settings
  Claudeのプライバシー設定で位置情報を無効化したユーザー
- VPN users (gets the VPN exit node's timezone)
  VPN経由のユーザー(VPN出口のタイムゾーンが返る)
- Direct Anthropic API users (no system prompt with location)
  Anthropic API直接利用者(システムプロンプトに位置情報なし)
- Other MCP clients (Cursor, Zed, etc. — depends on the client)
  他のMCPクライアント(Cursor, Zed など — クライアント次第)

These are mostly technical users. If that's you, just pass the `timezone` argument explicitly, set the URL param, fork the repo, or self-host. You can solve it.

これらは大体、技術力のあるユーザー層なので、`timezone` 引数を明示的に渡すか、URLパラメータを設定するか、フォークするか、自前デプロイで解決できるはずです。

---

## Why MCP alone can't perfectly handle "world support" / なぜMCP単体で完璧な世界対応は不可能か

Documenting this because it took a while to figure out:

ここに書いておくのは、自分でこれを解明するのに時間がかかったからです:

1. **MCP protocol has no way to convey user locale to the server.** Confirmed in the official spec.
   MCPプロトコル仕様には、ユーザーロケールをサーバーに伝えるフィールドが存在しない(公式仕様確認済み)。

2. **For remote MCP servers, the request comes from the AI provider's datacenter, not the user.** Verified: Claude calls reach this server from `Anthropic, PBC` in Virginia, not from the user's actual location.
   リモートMCPサーバーへのリクエストは、AIプロバイダのデータセンター経由で届く。実測済み: Claudeから時間君を呼ぶと、Cloudflareから見える送信元はバージニア州の `Anthropic, PBC` で、ユーザーの実位置ではない。

3. **The AI must read user location from its system prompt and pass it as an argument.** This is the only viable path, and it depends on the AI's judgment — not 100% reliable.
   AIがシステムプロンプトから位置情報を読み取り、引数として渡すのが唯一の方法。AIの判断頼みで100%ではない。

This is a structural limitation of MCP, not a bug.
これはMCPの構造的な制約で、バグではありません。

---

## Self-host / 自分でデプロイする

```bash
git clone https://github.com/jyagunii-bot/now-mcp.git
cd now-mcp
npm install
npx wrangler login
npm run deploy
```

Runs on Cloudflare Workers free tier.
Cloudflare Workersの無料枠で動きます。

---

## Customize / カスタマイズ

Edit `src/index.ts`:

- `tools[0].description` — how Claude perceives the tool
- `instructions` (in the `initialize` handler) — operating rules sent to Claude
- `resolveTimezone()` — fallback behavior

Then `npm run deploy`.

---

## Companion / 姉妹プロジェクト

🔗 **[Now Extension for Claude](https://github.com/jyagunii-bot/now-extension-for-claude)** — Chrome extension that injects current timestamp into every message. Works alongside this MCP for full accuracy in Chrome.

姉妹のChrome拡張。送信メッセージ毎にタイムスタンプを注入することで、Chromeブラウザ環境では確実に動きます。

---

## License

MIT — no warranty, use at your own risk.

---

## Author

[@jyagunii-bot](https://github.com/jyagunii-bot)