这是一个模型上下文协议 (MCP) 服务器,可通过 User Token 访问 ModelWhale API 拿到相关信息。支持三种传输方式:stdio、SSE (Server-Sent Events) 和 StreamableHTTP,通过环境变量控制。
- Node.js (v16 或更高版本)
- npm
- 克隆仓库
- 安装依赖项:
npm ci
- 设置环境变量,具体环境变量解释可参考
.env.example文件# 复制一份 .env 文件 cp .env.example .env # 打开 .env 文件设置 token MODELWHALE_TOKEN=your_token
开发时可以使用以下命令自动构建并启动:
- 已支持 dev 调试热更新
- dev 默认开启 inspector,运行命令后打开 http://127.0.0.1:6274 访问即可
# 默认 stdio 开发模式
npm run dev
# stdio 开发模式
npm run dev:stdio
# StreamableHTTP 开发模式
npm run dev:streamable服务器支持三种传输模式,通过环境变量 TRANSPORT_MODE 控制:
# 默认 stdio 传输方式
npm start
# 或者
TRANSPORT_MODE=stdio npm start
# 或者
npm run start:stdio# 使用 StreamableHTTP 传输方式
npm run start:streamable
# 或者
TRANSPORT_MODE=streamable-http npm start
# 自定义端口(默认为3000)
TRANSPORT_MODE=streamable-http PORT=8080 npm startStreamableHTTP 服务器提供以下端点:
GET/POST/DELETE /mcp- 处理所有 MCP 请求GET /health- 健康检查端点
| 特性 | stdio | StreamableHTTP | |
|---|---|---|---|
| 连接方式 | 标准输入输出 | HTTP + Server-Sent Events | HTTP + 流式响应 |
| 网络要求 | 无 | 需要HTTP连接 | 需要HTTP连接 |
| 调试难度 | 较难 | 较容易 | 最容易 |
| 扩展性 | 限制较多 | 较灵活 | 最灵活 |
| 会话管理 | 无 | 基于内存 | 支持有状态/无状态 |
| 重连支持 | 无 | 有限 | 支持断点续传 |
| 协议版本 | 2024-11-05 | 2024-11-05 | 2025-03-26(最新) |
| 适用场景 | 本地集成 | 网络服务 | 现代网络服务(推荐) |
您可以使用以下命令测试 StreamableHTTP 服务器:
# 健康检查
curl http://localhost:3000/health
# 发送初始化请求
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
# 获取工具列表(需要先获取会话ID)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "mcp-session-id: YOUR_SESSION_ID" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'或者使用项目中提供的测试脚本:
# 启动 StreamableHTTP 服务器
npm run start:streamable
# 在另一个终端运行测试
node test/test-streamable-http.js