Skip to main content
Glama
xbsheng

Time MCP

by xbsheng
README.md
# Time MCP

一个时间处理的 MCP (Model Context Protocol) 工具,基于 Python + FastMCP 构建。

## 功能特性

| 工具               | 说明                              |
| ------------------ | --------------------------------- |
| `get_current_time` | 获取当前时间                      |
| `time_calculate`   | 时间计算(加减年/月/日/时/分/秒) |
| `timezone_convert` | 时区转换                          |
| `list_timezones`   | 列出可用时区                      |

### 核心特性

- 🕐 默认使用北京时间(Asia/Shanghai)
- 🔢 时间戳自动识别(10 位秒级 / 13 位毫秒级)
- 📅 支持多种时间输入格式
- 🌍 支持全球时区转换

## 安装

### 使用 uv(推荐)

```bash
git clone https://github.com/xbsheng/time-mcp.git
cd time-mcp
uv sync
```

### 使用 pip

```bash
pip install fastmcp python-dateutil pytz
```

## 使用方法

### 启动 MCP 服务

服务默认使用 HTTP 方式运行在 8000 端口:

```bash
uv run python src/server.py
```

启动后,MCP 服务将在 `http://localhost:8000` 上监听。

### 在 Cursor 中配置

在 `~/.cursor/mcp.json` 中添加:

```json
{
  "mcpServers": {
    "time-mcp": {
      "url": "http://localhost:8000/mcp"
    }
  }
}
```

或者使用命令行方式(无需单独启动服务):

```json
{
  "mcpServers": {
    "time-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/time-mcp", "run", "python", "src/server.py"]
    }
  }
}
```

### 在 Claude Desktop 中配置

在 Claude Desktop 配置文件中添加:

```json
{
  "mcpServers": {
    "time-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/time-mcp", "run", "python", "src/server.py"]
    }
  }
}
```

## 工具详细说明

### get_current_time

获取当前时间,返回多种格式。

**参数:**

| 参数       | 类型   | 默认值        | 说明           |
| ---------- | ------ | ------------- | -------------- |
| `timezone` | string | Asia/Shanghai | 时区           |
| `format`   | string | -             | 自定义输出格式 |

**返回示例:**

```json
{
  "datetime": "2026-01-12 22:00:00",
  "date": "2026-01-12",
  "time": "22:00:00",
  "timestamp": 1768226400,
  "timestamp_ms": 1768226400000,
  "timezone": "Asia/Shanghai",
  "iso": "2026-01-12T22:00:00+08:00",
  "weekday": "Monday",
  "weekday_cn": "周一"
}
```

### time_calculate

时间计算,对指定时间进行加减运算。

**参数:**

| 参数        | 类型       | 默认值        | 说明                           |
| ----------- | ---------- | ------------- | ------------------------------ |
| `base_time` | string/int | 当前时间      | 基准时间(时间戳或日期字符串) |
| `years`     | int        | 0             | 加减年数                       |
| `months`    | int        | 0             | 加减月数                       |
| `days`      | int        | 0             | 加减天数                       |
| `hours`     | int        | 0             | 加减小时数                     |
| `minutes`   | int        | 0             | 加减分钟数                     |
| `seconds`   | int        | 0             | 加减秒数                       |
| `timezone`  | string     | Asia/Shanghai | 时区                           |

**使用示例:**

```
# 当前时间加7天
time_calculate(days=7)

# 指定时间减1个月
time_calculate(base_time="2026-01-01", months=-1)

# 时间戳加8小时
time_calculate(base_time=1704067200, hours=8)
```

### timezone_convert

时区转换,将时间转换为指定时区。

**参数:**

| 参数      | 类型       | 默认值        | 说明     |
| --------- | ---------- | ------------- | -------- |
| `time`    | string/int | -             | 输入时间 |
| `from_tz` | string     | Asia/Shanghai | 源时区   |
| `to_tz`   | string     | -             | 目标时区 |

**使用示例:**

```
# 北京时间转纽约时间
timezone_convert(time="2026-01-12 12:00:00", to_tz="America/New_York")
```

### list_timezones

列出可用时区。

**参数:**

| 参数     | 类型   | 默认值 | 说明                                   |
| -------- | ------ | ------ | -------------------------------------- |
| `region` | string | -      | 按区域筛选(如 Asia, America, Europe) |

## 项目结构

```
time-mcp/
├── src/
│   ├── __init__.py
│   └── server.py      # MCP 服务主文件
├── pyproject.toml     # 项目配置
├── uv.lock            # 依赖锁定
├── LICENSE
└── README.md
```

## 技术栈

- Python 3.11+
- [FastMCP](https://github.com/jlowin/fastmcp) >= 2.0.0 - MCP 服务框架
- [python-dateutil](https://github.com/dateutil/dateutil) - 时间解析
- [pytz](https://pythonhosted.org/pytz/) - 时区支持

## 开源协议

本项目采用 [MIT License](LICENSE) 开源协议。