MCP时间服务器使用说明
项目简介
本项目是一个基于Node.js和Express框架开发的时间服务API,它扩展了标准的时间获取功能,使其符合Model Context Protocol (MCP) 协议。该服务器不仅可以通过HTTP API提供多种时间格式,还支持通过标准输入输出 (Stdio) 进行MCP协议通信,方便LLM客户端集成和调用。
主要功能点
- 多格式时间获取: 支持ISO 8601, Unix时间戳, 人类可读格式等多种时间表示。
- MCP协议支持: 实现了基于HTTP POST '/mcp' 接口和 Stdio 的 MCP 协议,可以接收符合MCP格式的请求并返回JSON-RPC响应。
- HTTP API: 提供简洁的RESTful API,方便传统HTTP客户端访问。
- CORS支持: 允许跨域请求,方便前端应用集成。
- Docker部署: 提供Docker镜像和Docker Compose配置,方便容器化部署。
- Stdio协议支持: 除了HTTP,还支持基于标准输入输出的MCP协议交互,适用于命令行工具和脚本集成。
安装步骤
- 安装Node.js和npm: 确保你的环境中已安装Node.js和npm (Node包管理器)。
- 克隆仓库: 将GitHub仓库克隆到本地:
git clone https://github.com/1259187996/time.git cd time - 安装依赖: 在项目根目录下运行以下命令安装项目依赖:
npm install
服务器配置
MCP客户端配置 (JSON格式):
为了让MCP客户端连接到此时间服务器,你需要提供以下配置信息。请注意,根据你选择的运行方式(HTTP API 或 Stdio),配置略有不同。
1. HTTP API 模式 (使用 'server.js' 启动):
{ "serverName": "HTTP时间服务器", "transport": "http", "command": "node", "args": ["server.js"], "baseUrl": "http://localhost:3000", // HTTP服务器的基础URL,根据实际部署情况修改 "mcpEndpoint": "/mcp" // MCP协议的HTTP端点,默认为 /mcp }
- 'serverName': 服务器的名称,可以自定义。
- 'transport': 传输协议,这里为 "http"。
- 'command': 启动服务器的命令,这里使用 'node' 运行 'server.js'。
- 'args': 启动命令的参数,这里是 'server.js' 文件名。
- 'baseUrl': HTTP服务器的根URL,如果部署到其他地址或端口,请相应修改。
- 'mcpEndpoint': MCP协议处理的HTTP路径。
2. Stdio 模式 (使用 'mcp_server.js' 启动):
{ "serverName": "Stdio时间服务器", "transport": "stdio", "command": "node", "args": ["mcp_server.js"], "env": { // 环境变量配置 (可选) "DATE_FORMAT": "YYYY-MM-DD HH:mm:ss", // 默认时间格式 (可选,默认为 YYYY年MM月DD日 HH:mm:ss) "LANGUAGE": "en" // 语言设置 (可选,默认为 zh-cn,可选 en) } }
- 'serverName': 服务器的名称,可以自定义。
- 'transport': 传输协议,这里为 "stdio"。
- 'command': 启动服务器的命令,同样使用 'node' 运行 'mcp_server.js'。
- 'args': 启动命令的参数,这里是 'mcp_server.js' 文件名。
- 'env': 环境变量配置,可以在此处设置 'DATE_FORMAT' 和 'LANGUAGE' 来自定义时间和语言格式。
选择启动模式:
- HTTP API 模式: 适用于需要通过HTTP进行通信的场景,例如与Web应用或云服务集成。启动命令:'npm start' 或 'node server.js'。
- Stdio 模式: 适用于需要通过标准输入输出进行通信的场景,例如命令行工具、脚本或某些类型的LLM客户端。启动命令:'node mcp_server.js'。
基本使用方法
1. HTTP API 模式:
- 启动服务器: 运行 'npm start' 或 'node server.js' 启动HTTP服务器。
- 访问API: 可以通过浏览器或HTTP客户端访问以下端点获取时间信息:
- 'GET http://localhost:3000/time':获取所有时间格式。
- 'GET http://localhost:3000/time/iso':获取ISO格式时间。
- 'GET http://localhost:3000/time/unix':获取Unix时间戳。
- 'GET http://localhost:3000/time/human':获取人类可读时间。
- MCP协议请求: 使用POST请求到 'http://localhost:3000/mcp',请求体为符合MCP协议的JSON格式。例如:
服务器会返回包含当前时间的JSON-RPC响应。{ "id": "123", "method": "time.getCurrentTime", "params": {} }
2. Stdio 模式:
- 启动服务器: 运行 'node mcp_server.js' 启动Stdio服务器。
- MCP协议交互: 服务器启动后,等待从标准输入 (stdin) 接收MCP请求。你可以通过命令行或其他程序向其标准输入发送JSON格式的MCP请求,服务器会将响应通过标准输出 (stdout) 返回。例如,使用 'echo' 命令发送请求:
服务器会在命令行输出JSON-RPC响应。echo '{"id": "456", "method": "time.getCurrentTime", "params": {}}' | node mcp_server.js
Docker 部署
项目提供了Dockerfile和docker-compose.yml文件,可以方便地进行Docker部署。详细步骤请参考仓库README.md文档的 "使用Docker部署" 部分。
信息
分类
网页与API