Token导航 LogoToken导航TokenDH.com
MCP Time Tools logo
运维云端未说明官方级别未说明来源级核验

MCP Time Tools

MCP Server

McpTimeTools是一个基于.NET 8的MCP服务器,提供时区感知的时间管理功能,支持获取UTC时间和全球多个城市的本地时间。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
时间管理C#云端部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

LouisGheysensCodit

提供方

LouisGheysensCodit

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

McpTimeTools

![.NET 8](https://dotnet.microsoft.com/download) ![License](LICENSE)

用于跨多个城市和时区进行当前和本地时间管理的模型上下文协议(MCP)服务器。

??概述

McpTimeTools是一个。NET 8 MCP服务器,提供时区感知时间实用程序。它支持检索全球各个城市的当前UTC时间和当地时间,并具有可扩展的架构,用于添加自定义城市时区映射。

?特点

  • 当前UTC时间:获取UTC格式的当前时间
  • 城市当地时间:检索预定义城市的当地时间
  • 可扩展时区映射:添加或更新自定义城市时区映射
  • 稳健的错误处理:用于清除错误诊断的自定义异常类型
  • 类型安全:使用C#12和可以为null的引用类型构建
  • 依赖注入:现代。支持DI的NET模式
  • 经过全面测试:全面的单元测试覆盖率

默认支持的城市

  • 坎昆 (America/Cancun)
  • 墨西哥城 (America/Mexico_City)
  • 纽约 (America/New_York)
  • 伦敦 (Europe/London)
  • 东京 (Asia/Tokyo)

??入门

先决条件

安装

克隆存储库:

git clone https://github.com/LouisGheysensCodit/McpTimeTools.git
cd McpTimeTools/src/McpTimeServer

构建

dotnet build

dotnet run

运行测试

dotnet test

??使用方法

MCP工具

服务器公开了以下MCP工具:

GetCurrentTime

获取当前UTC时间。

退货:当前UTC时间 yyyy-MM-dd HH:mm:ss 格式

示例:

2024-01-15 14:30:45

GetLocalTime

获取指定城市的本地时间。

参数:

  • city (string):城市名称

退货:带有城市名称、当地时间和时区ID的格式化字符串

示例:

Tokyo: 2024-01-15 23:30:45 (Asia/Tokyo)

程序化使用

// Create a timezone provider
var timeZoneProvider = new TimeZoneProvider();

// Get timezone ID for a city
var timezoneId = timeZoneProvider.GetTimeZoneId("London");
// Returns: "Europe/London"

// Try to get timezone ID
if (timeZoneProvider.TryGetTimeZoneId("Paris", out var tz))
{
    Console.WriteLine($"Timezone: {tz}");
}

// Add a custom city
timeZoneProvider.AddOrUpdateCity("Paris", "Europe/Paris");

// Get all available cities
var cities = timeZoneProvider.GetAvailableCities();

GetAvailableCityNames

获取所有可用城市名称的逗号分隔列表。

参数:

  • sortOrder (CitySortOrder,可选):指定城市的排序方式。\

默认为 Alphabetical (A–Z)。可能值: - None --按插入顺序返回城市 - Alphabetical --升序(A-Z) - AlphabeticalDescending --下降(Z-A)

退货:\ 以逗号分隔的城市名称列表,或 "No cities configured." 如果不存在。

示例: 坎昆、伦敦、墨西哥城、纽约、东京

备注:

  • 适用于轻量级的城市列表或填充客户端的下拉菜单。
  • 投掷 InvalidCitySortOrderException 如果提供了不受支持的排序顺序。

建筑

项目结构

McpTimeServer/
??? Program.cs                          # Application entry point
??? TimeTools.cs                        # MCP tool implementations
??? ITimeZoneProvider.cs                # Timezone provider interface
??? TimeZoneProvider.cs                 # Timezone provider implementation
??? Exceptions/
?   ??? TimeZoneException.cs            # Base exception
?   ??? InvalidCityException.cs         # Invalid city name exception
?   ??? InvalidTimeZoneIdException.cs   # Invalid timezone ID exception
?   ??? CityNotFoundException.cs        # City not found exception
??? McpTimeServer.Tests/
    ??? TimeToolsTests.cs               # TimeTools unit tests
    ??? TimeZoneProviderTests.cs        # TimeZoneProvider unit tests

关键组件

  • TimeTools:提供时间相关操作的MCP服务器工具类
  • ITimeZoneProvider:时区映射操作界面
  • TimeZoneProvider:默认使用预定义的城市
  • 自定义例外:特定于域的异常,以更好地处理错误

异常层次结构

Exception
??? TimeZoneException (abstract base)
    ??? InvalidCityException
    ??? InvalidTimeZoneIdException
    ??? CityNotFoundException
    ??? InvalidCitySortOrderException

技术

  • .NET 8:目标框架
  • C#12:具有现代功能的语言版本
  • 奥拉玛夏普。模型上下文协议:MCP服务器实现
  • 微软。扩展。托管:托管基础设施
  • x单位:测试框架

??测试

该项目包括全面的单元测试,包括:

  • ?有效和无效的城市查找
  • ?不区分大小写的城市匹配
  • ?自定义异常情况
  • ?可用城市检索
  • ?城市地图更新
  • ?边缘情况(null、空、空白)

测试覆盖率22次测试,全部通过?

??示例

自定义异常的错误处理

try
{
    var tz = provider.GetTimeZoneId("InvalidCity");
}
catch (CityNotFoundException ex)
{
    Console.WriteLine($"City '{ex.CityName}' not found!");
    Console.WriteLine($"Available: {string.Join(", ", ex.AvailableCities)}");
}
catch (InvalidCityException ex)
{
    Console.WriteLine($"Invalid city name: {ex.CityName}");
}

添加自定义城市

var provider = new TimeZoneProvider();

// Add a new city
provider.AddOrUpdateCity("Berlin", "Europe/Berlin");
provider.AddOrUpdateCity("Sydney", "Australia/Sydney");

// Use the new cities
var berlinTime = provider.GetTimeZoneId("Berlin");

??贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add some AmazingFeature')
  4. 推到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

作者

路易斯·盖森斯

??致谢

______________________________________________________________________

如果你觉得这个项目有用,请考虑给它一颗星!

目录标签

目录标签

时间管理C#云端部署本地部署时区转换多城市时间.NET工具

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP