时间转换服务器

一个基于PHP实现的时间与时区转换服务器,提供当前时间获取和时区转换功能,支持自动检测系统时区。

  • by uzulla
  • PHP
  • 本地部署
  • 13 星标
  • 更新于
在 GitHub 查看 uzulla/mcp-time-php

使用说明

基于PHP的时间MCP服务器

PHP中所述的工具,调整墙的布局和几何形状MCP(模型上下文协议服务器)提供时间和时区转换功能。

此服务器包含:LLM表示IANA使用时区名称获取当前时间信息,允许您执行时区转换,并自动检测系统时区。

可用工具

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

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

    • 必须引数:
      • source_timezone (字符串):原始IANA时区名称
      • time (文字列):24时间形式(HH:MM)の时间
      • target_timezone (字符串):目标IANA时区名称

安装

# 本レポジトリをclone
$ git clone https://github.com/uzulla/mcp-time-php.git

# Composerでインストールした場合
$ cd mcp-time-php
$ composer install

MCP使用侧设置

Claude.app配置

PHPを直接実行で使用
"mcpServers": {
  "time": {
    "command": "php",
    "args": ["/path/to/this/repo/bin/time-server"]
  }
}

Zed配置

Zed的,之settings.json添加到:

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

自定义-系统时区

默认情况下,服务器会自动检测系统的时区。设置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": "2024-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可以使用检查器调试服务器:

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 aka uzulla (zishida@gmail.com )

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

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

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因软件或软件的使用或其他交易而产生的或与之相关的任何索赔、损害赔偿或其他责任承担责任,无论是在合同、侵权或其他诉讼中。

致谢

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