mcpField
M
MCP Time Server - Streamable HTTP

MCP Time Server - Streamable HTTP

ローカル
github.com/Cam10001110101生産性055 週間前に更新

MCP Time Server - Streamable HTTP について

MCP Time Serverは、LLM向けに日付と時刻を扱うツールを提供し、ローカルのMCPクライアントとリモートのStreamable HTTP接続に対応します。タイムゾーン変換、相対時刻、タイムスタンプ、週番号などを処理できます。

主な機能

  1. 01指定タイムゾーンの現在時刻を取得
  2. 02読みやすい相対時刻を生成
  3. 03月の日数を計算
  4. 04Unixタイムスタンプを生成
  5. 05IANAタイムゾーン間で時刻を変換
  6. 06日付の週番号を取得

活用シーン

  1. 01複数タイムゾーンの現在時刻を確認
  2. 02時差のある会議時刻を変換
  3. 03月の日数や日付の週番号を調べる

MCP 対応

6種類の日付・時刻ツールを、ローカルのstdioまたはリモートのStreamable HTTP経由でMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"http-time": {
"command": "npx",
"args": [
"-y",
"wrangler"
]
}
}
}
起動コマンドnpx -y wrangler

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmwrangler

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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"
    }
  }
}

開発

  1. リポジトリをクローンする:

    git clone https://github.com/Cam10001110101/mcp-server-http-time.git
    cd mcp-server-http-time
    
  2. 依存関係をインストールする:

    npm install
    
  3. ビルドする: TypeScript コードをコンパイルします。

    npm run build
    

    (これにより、src/index.ts が dist/index.js にコンパイルされます)

  4. ローカルでテストする:

    Stdio モードをテストする:

    echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | node dist/index.js
    

    HTTP モードをテストする(Wrangler 経由):

    npx wrangler dev
    

    これにより、サーバーが http://localhost:8787 で起動します。その後、curl でテストするか、このローカルエンドポイントを MCP クライアントに指定できます。

デプロイ

Cloudflare Workers にデプロイする(HTTP モード)
  1. Cloudflare を設定する:

    cp wrangler.toml.example wrangler.toml
    

    wrangler.toml を編集して、ドメインを設定します(任意)。

  2. ログインしてデプロイする:

    wrangler login
    npx wrangler deploy
    
npm に公開する(Stdio モード)
  1. パッケージをビルドする:

    npm run build
    
  2. 公開する:

    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 に接続できます。

  1. カスタムコネクタを構築することで、MCP サーバーを Copilot Studio に接続します
  2. Copilot Studio でツールを追加するには、「Add a Tool」を選択して MCP サーバーを検索します
  3. 生成オーケストレーションを有効にして、エージェントでサーバーを直接使用します
今後、さらに多くの MCP クライアントに対応予定

さらに多くの MCP クライアントで Streamable HTTP のサポートが採用される予定です。MCP クライアントとその機能の一覧を掲載しているリソースをいくつか紹介します。

テストと検証

MCP Inspector(HTTP モード)

公式の MCP Inspector ツールを使うと、ウェブベースのインターフェースでサーバーをテストできます。

  1. サーバーを起動します:

    # Local HTTP server
    npx wrangler dev
    
    # Or use deployed URL: https://mcp.time.mcpcentral.io
    
  2. MCP Inspector を開きます:

  3. 接続を設定します:

    • トランスポート: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 ドキュメントに記載されている適切な認証を実装してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。