MCP时间和进度服务器
MCP(模型上下文协议)服务器,提供两个简单的工具并支持多种传输模式:
- 获取时间 -以RFC3339格式的字符串返回当前时间
- 进展 -显示一个进度指示器,在10秒内从1到10计数,然后返回“完成”
运输方式
服务器支持三种传输模式:
- 标准输入输出 -标准输入/输出通信(默认)
- SSE -服务器通过HTTP发送事件
- HTTP流 -HTTP流传输
建筑
go build -o mcp-server main.go跑步
标准模式(默认)
./mcp-serverSSE模式
./mcp-server --sse --port 8080HTTP流模式
./mcp-server --stream --port 8080工具
获取时间
- 参数:无
- 退货:RFC3339格式的当前时间(例如,“2025-06-14T10:30:45Z”)
进展
- 参数:无
- 退货:进度更新从1/10到10/10,每秒一次,然后是“完成”
- 持续时间:总共10秒
客户
此存储库包括Python和TypeScript MCP客户端,演示了所有三种传输模式的使用方法。
Python客户端
Python客户端(client.py)使用官方MCP Python SDK并支持:
用途:
# Stdio mode (default)
python client.py
# SSE mode
python client.py --sse
# HTTP Streaming mode
python client.py --stream进度指标支持:
- ✅ 标准输入输出 -显示进度通知
- ✅ SSE -显示进度通知
- ❌ HTTP流 -连接超时(未显示进度)
TypeScript客户端
TypeScript客户端(src/client.ts)使用官方MCP TypeScript SDK并支持:
设置:
npm install用途:
# Stdio mode (default)
npm run stdio
# or
npm run dev
# SSE mode
npm run sse
# HTTP Streaming mode
npm run stream
# Advanced usage with custom port
npm run dev -- --sse --port 9090
npm run dev -- --stream --port 9090可用脚本:
| 脚本 | 描述 | 传输 |
|---|---|---|
npm run stdio | 使用stdio传输运行 | 直接进程通信 |
npm run sse | 使用SSE传输运行 | 服务器发送事件 |
npm run stream | 使用HTTP流运行 | HTTP流(超时问题) |
npm run dev | 使用stdio运行(默认) | 与相同 npm run stdio |
npm run build | 编译TypeScript | - |
npm run start | 运行编译的JavaScript | Stdio传输 |
构建:
npm run build
npm start进度指标支持:
- ✅ 标准输入输出 -显示进度通知
- ✅ SSE -显示进度通知
- ❌ HTTP流 -请求超时(未显示进度)
双方客户将:
- 连接到服务器
- 显示当前时间
- 每秒显示一次进度更新,持续10秒(支持时)
- 再次显示当前时间
进度通知状态
| 传输 | Python客户端 | TypeScript客户端 |
|---|---|---|
| 标准输入输出 | ✅ 工作 | ✅ 工作 |
| SSE | ✅ 工作 | ✅ 工作 |
| HTTP流 | ❌ 超时 | ❌ 超时 |
*注意:尽管使用了超时扩展,但HTTP流传输在两个客户端的长时间运行操作中都存在超时问题。*
