# TimeMcpServer **Repository Path**: jin-rongda/time-mcp-server ## Basic Information - **Project Name**: TimeMcpServer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-15 - **Last Updated**: 2025-07-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MCP 时间服务器 ## 安装和运行 1. 安装依赖: ```bash nvm use 22 npm install ``` 2. 运行服务器: ```bash npm start ``` 3. 开发模式(自动重启): ```bash npm run dev ``` ## @modelcontextprotocol/sdk做了什么 我理解一下,其实是@modelcontextprotocol/sdk这个库做了一件事:处理标准输入输出事件,对于输入按照json-rpc来处理,并调用内部接口;对于输出,即作为客户端的响应 ## MCP实现思路 mcp服务器的实现逻辑是:对运行js文件的进程进行操作,比如增加“data”事件的监听逻辑,以及相关的回调逻辑;并不是像一般的服务器一样,随时都运行一个服务,通过在线服务来提供能力 MCP 服务器的本质其实就是一个本地 Node.js 进程(比如 node src/index.js), 这个进程不是传统意义上的“常驻在线 HTTP 服务”,而是通过标准输入输出(stdio)与外部通信。 ## 生命周期 这个进程只在被 MCP 客户端需要时才会被启动(比如 Cursor 连接 MCP 时自动启动)。 客户端断开连接后,进程也会自动退出。 不是一直常驻后台的“在线服务”,而是“按需启动、按需响应”。 之所以进程的id并没有显示的在代码中明确,就是因为,这是客户端需要关注的逻辑,客户端在连接这个服务器时,才能明确究竟是哪个进程对吧 MCP 服务器代码(你的 Node.js 代码)不需要关心自己的进程 ID,也不需要在代码里“声明”或“传递”PID。 MCP 客户端(如 Cursor、Claude Desktop)在启动 MCP 服务器进程时,会自动获得这个进程的 PID(因为是它 fork/spawn/exec 启动的)。 客户端可以用 PID 做进程管理(如监控、重启、关闭等),但这和 MCP 服务器的业务逻辑无关。