mcpField
C
Chronos MCP Server

Chronos MCP Server

ローカル
github.com/aadversteegその他14 週間前に更新

Chronos MCP Server について

Chronos MCP Serverは、タイムゾーンを指定して日時を取得する.NET Core製サーバーです。現在時刻を必要とするアプリケーション向けで、デフォルトタイムゾーンを任意設定でき、.NETツールまたはDockerコンテナとして配置できます。

主な機能

  1. 01タイムゾーン別の日時取得
  2. 02任意のデフォルトタイムゾーン設定
  3. 03無効なタイムゾーン要求の処理
  4. 04.NETツールまたはDockerコンテナでの配置

活用シーン

  1. 01指定したタイムゾーンの現在時刻取得
  2. 02指定がない場合の設定済みタイムゾーン利用
  3. 03MCP対応アプリケーションへの時刻データ提供

MCP 対応

指定または設定済みタイムゾーンの現在日時取得と、設定されたデフォルトタイムゾーンの参照に使うMCPツールを公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"chronos": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pull"
]
}
}
}
起動コマンドdocker run -i --rm pull

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

パッケージ
ocipull

ツール

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

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

詳細

Chronos MCP サーバー

Model Context Protocol(MCP)を実装した、時刻関連のサーバーです。このサーバーは、シンプルな MCP インターフェースを通じて、タイムゾーンに対応した日付と時刻の情報を提供します。

概要

Chronos MCP サーバーは、.NET Core と Model Context Protocol C# SDK(github.com/modelcontextprotocol/csharp-sdk)を使用して構築されています。さまざまなタイムゾーンの日付と時刻の情報にアクセスするためのツールを提供します。軽量な設計で、実用的な機能と適切なエラー処理を備えたカスタム MCP サーバーの作成方法を示します。マシンに直接デプロイすることも、Docker コンテナーとしてデプロイすることもできます。

機能

  • 対応する任意のタイムゾーンで現在の日付と時刻を取得
  • appsettings.json と環境変数によるデフォルトのタイムゾーンの任意設定
  • 無効なタイムゾーンのリクエストやデフォルトのタイムゾーンがない場合の適切なエラー処理
  • Result パターンによる関数型エラー処理

はじめに

前提条件
  • .NET 10 SDK(ローカルでの開発または .NET ツールのインストール用)
  • Docker(コンテナーとしてデプロイする場合)
ビルド手順(開発用)

ソースからプロジェクトをビルドする場合は、次の手順に従います。

  1. このリポジトリをクローンします。

    git clone https://github.com/aadversteeg/chronos-mcp-server.git
    
  2. プロジェクトのルートディレクトリに移動します。

    cd chronos-mcp-server
    
  3. 次のコマンドでプロジェクトをビルドします。

    dotnet build src/chronos.sln
    
  4. テストを実行します。

    dotnet test src/chronos.sln
    

Docker のサポート

DockerHub イメージ

Chronos MCP Server は、DockerHub の aadversteeg/chronos-mcp-server で利用できます。

# Pull the latest version
docker pull aadversteeg/chronos-mcp-server:latest

# Or pull a specific version
docker pull aadversteeg/chronos-mcp-server:0.0.1
Docker イメージの手動ビルド

Docker イメージを自分でビルドする必要がある場合は、次のコマンドを実行します。

# Navigate to the repository root
cd chronos-mcp-server

# Build the Docker image
docker build -f src/Core.Infrastructure.McpServer/Dockerfile -t chronos-mcp-server:latest src/

# Run the locally built image (with optional DefaultTimeZoneId)
docker run -d --name chronos-mcp -e "DefaultTimeZoneId=Europe/Amsterdam" chronos-mcp-server:latest
GitHub Actions による自動ビルド

このリポジトリには、バージョンタグが作成されると Docker イメージを自動的にビルドし、DockerHub にプッシュする GitHub Actions ワークフローが含まれています。

新しいビルドを開始するには、次の手順に従います。

  1. セマンティックバージョンのタグを作成してプッシュします。

    git tag 1.0.0
    git push origin 1.0.0
    
  2. ワークフローによって、次のタグを付けた Docker イメージが自動的にビルドされ、プッシュされます。

    • aadversteeg/chronos-mcp-server:latest
    • aadversteeg/chronos-mcp-server:1.0.0

.NET ツール

Chronos MCP Server は、NuGet の .NET グローバルツールとして利用できます。

インストール
dotnet tool install --global Ave.McpServer.Chronos
実行
ave-mcpserver-chronos
一度だけ実行する(永続的なインストールなし)

.NET 10 SDK では、dotnet tool exec を使用して、グローバルにインストールせずにツールを実行できます。

dotnet tool exec -y ave.mcpserver.chronos

-y フラグを指定すると、プロンプトに自動的に同意します。ツールはローカルにキャッシュされますが、PATH には追加されません。

MCP プロトコルの使用方法

クライアントとの統合

アプリケーションから Chronos MCP Server に接続するには、次の手順に従います。

  1. Model Context Protocol C# SDK、または MCP 互換のクライアントを使用します
  2. サーバーのエンドポイントに接続するようクライアントを設定します
  3. 以下に記載されている利用可能なツールを呼び出します
利用可能なツール
get_current_date_and_time

指定したタイムゾーン、またはデフォルトのタイムゾーン(設定されている場合)で、現在の日付と時刻を取得します。

パラメーター:

  • timezoneId(DefaultTimeZoneId が設定されている場合は省略可能):タイムゾーン識別子(例:'America/New_York'、'Eastern Standard Time')。DefaultTimeZoneId が設定されていない場合、このパラメーターは必須です。

リクエスト例:

{
  "name": "get_current_date_and_time",
  "parameters": {
    "timezoneId": "Europe/London"
  }
}

レスポンス例:

{
  "date": "2023-12-25",
  "time": "12:00:00",
  "timezone": "Europe/London"
}
get_default_timezone_id

サーバーに設定されているデフォルトのタイムゾーン識別子を取得します。デフォルトのタイムゾーンが設定されていない場合は、エラーを返します。

リクエスト例:

{
  "name": "get_default_timezone_id",
  "parameters": {}
}

レスポンス例(設定されている場合):

Europe/Amsterdam

エラーレスポンス例(設定されていない場合):

{
  "error": {
    "message": "DefaultTimeZoneId is not set.",
    "code": "NoDefaultTimeZoneId"
  }
}

設定

DefaultTimeZoneId

DefaultTimeZoneId 設定では、特定のタイムゾーンが指定されていない場合に使用するタイムゾーンを決定します。この値は、オペレーティングシステムが認識する有効なタイムゾーン識別子である必要があります。この設定は省略可能です。指定しなくてもサーバーは動作しますが、リクエストごとにタイムゾーン ID パラメーターを指定する必要があります。

DefaultTimeZoneId は、次の 2 つの方法で設定できます。

  1. appsettings.json ファイル(ローカルデプロイの場合):
{
  "DefaultTimeZoneId": "America/New_York"
}
  1. 環境変数(コンテナー化されたデプロイの場合):
# When running the Docker container
docker run -e "DefaultTimeZoneId=Europe/Amsterdam" aadversteeg/chronos-mcp-server:latest

有効なタイムゾーン識別子には、次のものがあります。

  • 標準的な IANA タイムゾーン名(例:「America/New_York」、「Europe/London」、「Asia/Tokyo」)
  • Windows のタイムゾーン ID(例:「Eastern Standard Time」、「W. Europe Standard Time」)

DefaultTimeZoneId 設定を指定しない場合、デフォルトのタイムゾーンは使用されず、リクエストごとにタイムゾーン ID パラメーターを明示的に指定する必要があります。

Claude Desktop / Claude Code の設定

設定ファイルの mcpServers セクションにサーバー設定を追加します。

.NET Tool を使用する場合

.NET 10 SDK が必要です。この方法では、初回使用時にツールが自動的にダウンロードされ、その後の実行時には最新バージョンに更新されます。

"chronos": {
  "command": "dotnet",
  "args": [
    "tool",
    "exec",
    "-y",
    "ave.mcpserver.chronos"
  ],
  "env": {
    "DefaultTimeZoneId": "Europe/Amsterdam"
  }
}
グローバルインストールを使用する場合

.NET 10 SDK が必要です。ツールを一度インストールすれば、その後は直接使用できます。

dotnet tool install --global Ave.McpServer.Chronos
"chronos": {
  "command": "ave-mcpserver-chronos",
  "env": {
    "DefaultTimeZoneId": "Europe/Amsterdam"
  }
}

更新するには、dotnet tool update --global Ave.McpServer.Chronos を実行します。

Docker を使用する場合

.NET 10 SDK は必要ありません。

"chronos": {
  "command": "docker",
  "args": [
    "run",
    "--rm",
    "-i",
    "-e", "DefaultTimeZoneId=Europe/Amsterdam",
    "aadversteeg/chronos-mcp-server:latest"
  ]
}

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

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

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