MCP Time Server - Streamable HTTP について
MCP Time Serverは、LLM向けに日付と時刻を扱うツールを提供し、ローカルのMCPクライアントとリモートのStreamable HTTP接続に対応します。タイムゾーン変換、相対時刻、タイムスタンプ、週番号などを処理できます。
主な機能
- 01指定タイムゾーンの現在時刻を取得
- 02読みやすい相対時刻を生成
- 03月の日数を計算
- 04Unixタイムスタンプを生成
- 05IANAタイムゾーン間で時刻を変換
- 06日付の週番号を取得
活用シーン
- 01複数タイムゾーンの現在時刻を確認
- 02時差のある会議時刻を変換
- 03月の日数や日付の週番号を調べる
MCP 対応
6種類の日付・時刻ツールを、ローカルのstdioまたはリモートのStreamable HTTP経由でMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Time Server
デュアルモードに対応した、時間関連のツールを提供する Model Context Protocol(MCP)サーバーです。
- ローカルの MCP クライアント向けの Stdio トランスポート(npm 経由)
- リモートアクセス向けの Streamable HTTP トランスポート(Cloudflare Workers 経由)
このサーバーを使用すると、LLM は複数の接続方法を通じて、さまざまな日付・時刻の関数にアクセスできます。
機能
次の MCP ツールを提供します。
current_time:指定した形式とタイムゾーンで現在の日付と時刻を取得します。relative_time:人が読みやすい相対時刻の文字列(例:「5分後」「2時間前」)を取得します。days_in_month:指定した月の日数を取得します。get_timestamp:指定した時刻の Unix タイムスタンプ(ミリ秒)を取得します。convert_time:異なる IANA タイムゾーン間で時刻を変換します。get_week_year:指定した日付の週番号と ISO 週番号を取得します。
プロジェクト構成
mcp-time/
├── src/
│ └── index.ts # Cloudflare Worker entry point & MCP logic
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── wrangler.toml # Cloudflare Worker configuration
インストール
オプション 1:npm からインストール(Stdio モード)
パッケージをグローバルにインストールするか、npx で使用します。
# Global installation
npm install -g @cbuk100011/mcp-time
# Or use directly with npx
npx @cbuk100011/mcp-time
オプション 2:リモートサーバーを使用(HTTP モード)
デプロイ済みの Cloudflare Worker に直接接続します。
例:
https://mcp.time.mcpcentral.io
使用方法
Stdio トランスポート(ローカル)
stdio トランスポートを使用するように、MCP クライアント(例:Claude Desktop)を設定します。
{
"mcpServers": {
"time-server": {
"command": "npx",
"args": ["@cbuk100011/mcp-time"]
}
}
}
または、グローバルインストールを使用します。
{
"mcpServers": {
"time-server": {
"command": "/path/to/node/bin/mcp-time"
}
}
}
Streamable HTTP トランスポート(リモート)
リモート HTTP エンドポイントを使用するように、MCP クライアントを設定します。
{
"mcpServers": {
"time-server": {
"url": "https://mcp.time.mcpcentral.io",
"transport": "streamable-http"
}
}
}
開発
-
リポジトリをクローンする:
git clone https://github.com/Cam10001110101/mcp-server-http-time.git cd mcp-server-http-time -
依存関係をインストールする:
npm install -
ビルドする: TypeScript コードをコンパイルします。
npm run build(これにより、
src/index.tsがdist/index.jsにコンパイルされます) -
ローカルでテストする:
Stdio モードをテストする:
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | node dist/index.jsHTTP モードをテストする(Wrangler 経由):
npx wrangler devこれにより、サーバーが
http://localhost:8787で起動します。その後、curl でテストするか、このローカルエンドポイントを MCP クライアントに指定できます。
デプロイ
Cloudflare Workers にデプロイする(HTTP モード)
-
Cloudflare を設定する:
cp wrangler.toml.example wrangler.tomlwrangler.tomlを編集して、ドメインを設定します(任意)。 -
ログインしてデプロイする:
wrangler login npx wrangler deploy
npm に公開する(Stdio モード)
-
パッケージをビルドする:
npm run build -
公開する:
npm publish --access public
Streamable HTTP サーバー用のコネクター
新着:主要プロバイダーが Model Context Protocol を採用し、Streamable HTTP サーバーを直接サポートするようになりました。Anthropic、OpenAI、Microsoft はいずれも、この最新のトランスポートプロトコルを採用しています。
📋 プロトコルに関する注意:Streamable HTTP は、非推奨となった HTTP+SSE トランスポートに代わる最新の方式です。
Anthropic MCP Connector
Anthropic の MCP Connector を使用すると、別途 MCP クライアントを用意せずに、Messages API を通じて Streamable HTTP サーバーを直接利用できます。
このサーバーは Streamable HTTP アーキテクチャを使用しているため、MCP Connector に最適です。API リクエストにサーバーを含めるだけです。
curl https://api.anthropic.com/v1/messages \
-H "Content-Type: application/json" \
-H "X-API-Key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-04-04" \
-d '{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1000,
"messages": [{
"role": "user",
"content": "What time is it in Tokyo?"
}],
"mcp_servers": [{
"type": "url",
"url": "https://your.worker.url.workers.dev",
"name": "http-time-server"
}]
}'
Anthropic MCP Connector の利点:
- クライアントの設定は不要 — API を通じて直接接続できます
- Streamable HTTP をネイティブにサポート — このサーバーのようなサーバー向けに設計されています
OpenAI Agents SDK
OpenAI も、MCPServerStreamableHttp クラスを使用する Agents SDK を通じて、Streamable HTTP サーバーをサポートしています。
from agents.mcp.server import MCPServerStreamableHttp
# Connect to this Streamable HTTP server
server = MCPServerStreamableHttp({
"url": "https://your.worker.url.workers.dev",
"headers": {"Authorization": "Bearer your-token"}, # if needed
})
# Use the server in your OpenAI agent
await server.connect()
tools = await server.list_tools()
result = await server.call_tool("current_time", {"timezone": "Asia/Tokyo"})
Microsoft Copilot Studio
Microsoft Copilot Studio は、MCP 統合が一般提供となり、Streamable HTTP サーバーをサポートするようになりました。次の手順で、このサーバーを Copilot Studio に接続できます。
- カスタムコネクタを構築することで、MCP サーバーを Copilot Studio に接続します
- Copilot Studio でツールを追加するには、「Add a Tool」を選択して MCP サーバーを検索します
- 生成オーケストレーションを有効にして、エージェントでサーバーを直接使用します
今後、さらに多くの MCP クライアントに対応予定
さらに多くの MCP クライアントで Streamable HTTP のサポートが採用される予定です。MCP クライアントとその機能の一覧を掲載しているリソースをいくつか紹介します。
- PulseMCP クライアントディレクトリ - MCP クライアントの包括的な一覧
- 公式 MCP Servers リポジトリ - クライアント情報を含む公式コレクション
- MCP.so クライアント一覧 - コミュニティが管理するクライアントディレクトリ
テストと検証
MCP Inspector(HTTP モード)
公式の MCP Inspector ツールを使うと、ウェブベースのインターフェースでサーバーをテストできます。
-
サーバーを起動します:
# Local HTTP server npx wrangler dev # Or use deployed URL: https://mcp.time.mcpcentral.io -
MCP Inspector を開きます:
- 次の URL にアクセスします:https://github.com/modelcontextprotocol/inspector
- または、次を実行します:
npx @modelcontextprotocol/inspector
-
接続を設定します:
- トランスポート:Streamable HTTP
- URL:
http://localhost:8787またはhttps://mcp.time.mcpcentral.io - Connect をクリックします
コマンドラインでのテスト(Stdio モード)
stdio トランスポートを直接テストします:
# Test initialization
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | npx @cbuk100011/mcp-time
# Test tool call
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"current_time","arguments":{"timezone":"America/New_York"}}}' | npx @cbuk100011/mcp-time
テスト可能なツール
インスペクターには、時間関連の 6 つのツールがすべて表示されます。
current_time:さまざまなタイムゾーン(例:「America/New_York」、「Europe/London」)でテストしますrelative_time:さまざまな時間文字列(例:「2024-12-25T00:00:00Z」)でテストしますdays_in_month:異なる月と年でテストしますget_timestamp:日時文字列を Unix タイムスタンプに変換しますconvert_time:異なるタイムゾーン間で変換しますget_week_year:特定の日付の週番号を取得します
テストケースの例
インスペクターで次のテストケースを試してください:
// current_time
{"timezone": "Asia/Tokyo", "format": "iso"}
// relative_time
{"time": "2024-12-25T00:00:00Z"}
// days_in_month
{"month": 2, "year": 2024}
// get_timestamp
{"time": "2024-06-15T12:00:00Z"}
// convert_time
{"time": "2024-06-15T12:00:00", "from": "UTC", "to": "America/Los_Angeles"}
// get_week_year
{"date": "2024-06-15"}
検証チェックリスト
インスペクターを使って、次の項目を確認します。
- ✅ サーバーに正常に接続できる
- ✅ 6 つのツールがすべて一覧に表示される
- ✅ ツールのスキーマが適切に定義されている
- ✅ ツールがエラーなく実行される
- ✅ 結果が正しくフォーマットされている
- ✅ 無効な入力に対するエラー処理が機能する
MCP Inspector は、AI クライアントと統合する前にサーバーをテストするための、最も包括的な方法です。
認証とセキュリティに関する考慮事項
⚠️ 重要:このサンプルサーバーには、認証やセキュリティ対策が一切実装されていません。
本番環境の MCP サーバーでは、公式 MCP ドキュメントに記載されている適切な認証を実装してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。