远程MCP服务器
一种模型上下文协议(MCP)服务器实现,支持现代流式HTTP和传统HTTP+SSE传输,旨在与Claude.ai和其他MCP兼容客户端集成。
特性
- ✅ 符合MCP协议修订版2025-03-26
- ✅ 可流式HTTP传输(主要)
- ✅ 传统HTTP+SSE传输(向后兼容性)
- ✅ 基本工具:echo、ping、get_time
- ✅ Docker容器化
- ✅ 健康检查端点
- ✅ 浏览器客户端的CORS支持
先决条件
- Node.js 20+(用于本地开发)
- Docker和Docker Compose(用于容器化部署)
- npm或纱线
快速开始
地方发展
- 克隆存储库:
git clone
cd remote-mcp-server- 安装依赖项:
npm install- 复制环境变量:
cp .env.example .env- 在开发模式下运行:
npm run devDocker部署
- 使用Docker Compose构建和运行:
# Basic logging (info level)
docker-compose up -d
# Detailed logging (debug level)
LOG_LEVEL=debug docker-compose up -d- 检查服务器运行状况:
curl http://localhost:3001/health- 查看日志:
# View logs
docker-compose logs mcp-server
# Follow logs in real-time
docker-compose logs -f mcp-serverAPI终点
- POST/mcp -现代流式HTTP端点
- GET/mcp -传统SSE连接端点
- POST/消息 -传统HTTP请求端点
- GET/健康 -健康检查端点
MCP检验员测试
- 克隆MCP检查器:
git clone https://github.com/modelcontextprotocol/inspector
cd inspector
npm install
npm run dev- 连接到服务器:
- 网址: http://localhost:3001 - 测试工具、提示和资源
可用工具
- 回声 -回应提供的信息
{
"name": "echo",
"arguments": {
"message": "Hello, MCP!"
}
}- 拼 -返回带有时间戳的pong的健康检查
{
"name": "ping",
"arguments": {}
}- 获取时间 -以各种格式返回当前服务器时间
{
"name": "get_time",
"arguments": {
"format": "iso" // or "unix", "readable"
}
}部署到Synology NAS
- 导出Docker镜像:
docker save remote-mcp-server:latest > mcp-server.tar- 在Synology容器管理器中导入:
- 上传.tar文件 - 创建映射了端口3001的容器 - 配置环境变量
- 设置Cloudflare隧道以暴露端口3001
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
| 端口 | 3001 | 服务器端口 |
| MCP_ENDPOINT | /MCP | 主MCP端点 |
| ENABLE_LEGACY_TRANSPORT | true | 启用旧版HTTP+SSE支持 |
| LOGLEVEL | 信息 | 日志记录级别: info (基本), debug (详细) |
| NODE_ENV | 开发 | 环境模式 |
建筑
┌─────────────────┐ ┌──────────────────┐
│ Claude.ai │────▶│ Cloudflare │
│ MCP Client │ │ Tunnel │
└─────────────────┘ └──────────────────┘
│
▼
┌──────────────────┐
│ MCP Server │
│ Port 3001 │
├──────────────────┤
│ • Streamable HTTP│
│ • Legacy SSE │
│ • Tools/Prompts │
└──────────────────┘许可证
麻省理工学院
