返回市场
麦普时间PHP服务器

麦普时间PHP服务器

作者:uzulla13 星标更新:2025-03-27

项目介绍

Time MCP Server by PHP

这是一个用PHP实现的MCP(模型上下文协议服务器),提供了时间与时区转换的功能。

该服务器允许LLM使用IANA时区名称获取当前时间信息,并执行时区转换,同时自动检测系统时区。

与Claude桌面配合工作

可用工具

  • get_current_time - 获取特定时区或系统时区的当前时间。

    • 必需参数:
      • timezone (字符串): IANA时区名称(例如:'America/New_York'、'Europe/London')
  • convert_time - 在时区之间转换时间。

    • 必需参数:
      • source_timezone (字符串): 原始IANA时区名称
      • time (字符串): 24小时制时间(HH:MM)
      • target_timezone (字符串): 目标IANA时区名称

安装

# 克隆本仓库
$ git clone https://github.com/uzulla/mcp-time-php.git

# 使用Composer安装
$ cd mcp-time-php
$ composer install

MCP客户端配置

Claude.app配置

<details> <summary>直接运行PHP</summary>
"mcpServers": {
  "time": {
    "command": "php",
    "args": ["/path/to/this/repo/bin/time-server"]
  }
}
</details>

Zed配置

在Zed的settings.json中添加:

<details> <summary>使用PHP</summary>
"context_servers": {
  "mcp-server-time": {
    "command": "php",
    "args": ["/path/to/this/repo/bin/time-server"]
  }
},
</details>

自定义 - 系统时区

默认情况下,服务器会自动检测系统的时区。通过在设置的args列表中添加参数--local-timezone可以覆盖这一行为。

示例:

{
  "command": "php",
  "args": ["/path/to/this/repo/bin/time-server", "--local-timezone=America/New_York"]
}

对话示例

  1. 获取当前时间:
{
  "name": "get_current_time",
  "arguments": {
    "timezone": "Europe/Warsaw"
  }
}

响应:

{
  "timezone": "Europe/Warsaw",
  "datetime": "224-01-01T13:00:00+01:00",
  "is_dst": false
}
  1. 时区间的时间转换:
{
  "name": "convert_time",
  "arguments": {
    "source_timezone": "America/New_York",
    "time": "16:30",
    "target_timezone": "Asia/Tokyo"
  }
}

响应:

{
  "source": {
    "timezone": "America/New_York",
    "datetime": "2024-01-01T16:30:00-05:00",
    "is_dst": false
  },
  "target": {
    "timezone": "Asia/Tokyo",
    "datetime": "2024-01-02T06:30:00+09:00",
    "is_dst": false
  },
  "time_difference": "+14.0h"
}

调试

使用MCP Inspector调试服务器:

npx @modelcontextprotocol/inspector ./bin/time-server

开发

项目结构

.
├── bin/                   # 可执行脚本
│   └── time-server        # 入口点
├── src/                   # 源代码
│   ├── Enum/              # 枚举类
│   │   └── TimeTools.php  # 时间相关工具枚举
│   ├── Model/             # 数据模型
│   │   ├── TimeConversionResult.php  # 时间转换结果模型
│   │   └── TimeResult.php  # 时间获取结果模型
│   ├── Service/           # 服务类
│   │   ├── TimeService.php  # 时间服务
│   │   └── TimeUtils.php  # 时间实用工具
│   └── StdioServer.php    # MCP服务器实现
├── tests/                 # 测试代码
│   ├── ServerTest.php     # 服务器测试
│   └── TimeServerTest.php # 时间服务器测试
├── composer.json          # Composer配置
├── composer.lock          # Composer锁定文件
├── phpunit.xml            # PHPUnit配置
└── README.md              # 本文件

测试

安装Composer并设置依赖项:

composer install

运行PHPUnit测试:

composer test

向Claude提问示例

  1. 「现在几点了?」(使用系统时区)
  2. 「东京现在几点?」
  3. 「纽约下午4点时,伦敦是几点?」
  4. 「将东京时间上午9点30分转换为纽约时间」

许可证

本项目采用MIT许可证。

MIT许可证

版权所有 (c) 2025 Junichi Ishida 即 uzulla (zishida@gmail.com)

在此授权任何人免费获得本软件及其相关文档文件(以下简称“软件”)的副本,在不受限制的情况下处理软件,包括但不限于以下权利:使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,以及允许接收软件的人这样做,但须遵守以下条件:

上述版权声明和本许可通知应包含在软件的所有副本或实质部分中。

软件按“原样”提供,不附带任何形式的保证,无论是明示的还是默示的,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人都不对因软件或其使用或其他交易而引起的任何索赔、损害或其他责任负责,无论是在合同、侵权行为或其他情况下。

致谢

本项目整合并翻译了以下开源项目的部分内容: