使用说明
MCP服务器-模块化Docker设置
该项目在单独的Docker容器中运行多个模型上下文协议(MCP)服务器,以实现更好的模块化和可维护性。
建筑
每个MCP服务器都在自己的具有HTTP/SSE端点的容器中运行:
- 文件系统:文件系统操作(端口8801)✅
- 顺序思维:顺序思维能力(端口8803)✅
- 版本控制系统:Git操作(端口8804)✅
- 时间:与时间相关的操作(端口8805)✅
- 获取:HTTP获取操作(端口8806)✅
- 记忆:基于内存的操作(端口8802)⚠️ (未找到可执行文件)
- 一切:具有所有功能的组合服务器(端口8807)⚠️ (未找到可执行文件)
目录结构
mcp-servers/
├── docker-compose.yml # Orchestrates all services
├── data/ # Shared data directory for filesystem server
├── test-mcp-servers.py # Test script for server verification
├── .modelcontextrc.json # MCP configuration for Cursor IDE
├── filesystem/
│ └── Dockerfile # Filesystem server container (mcp-proxy)
├── sequential-thinking/
│ └── Dockerfile # Sequential thinking server container (mcp-proxy)
├── git/
│ ├── Dockerfile # Git server container (Python + Flask)
│ └── http_wrapper.py # HTTP wrapper for stdio server
├── time/
│ ├── Dockerfile # Time server container (Python + Flask)
│ └── http_wrapper.py # HTTP wrapper for stdio server
├── fetch/
│ ├── Dockerfile # Fetch server container (Python + Flask)
│ └── http_wrapper.py # HTTP wrapper for stdio server
├── memory/
│ └── Dockerfile # Memory server container (supergateway)
└── everything/
└── Dockerfile # Everything server container (supergateway)
安装方法
- npm包+mcp代理:
filesystem,sequential-thinking(通过mcp代理的HTTP/SSE) - Python包+Flask:
git,time,fetch(通过自定义包装器的HTTP/SSE) - GitHub源码+超级网关:
memory,everything(当前失败-找不到可执行文件)
用法
启动所有服务器
docker-compose up --build -d
启动特定服务器
docker-compose up --build -d filesystem
查看日志
docker-compose logs -f
停止所有服务器
docker-compose down
测试服务器连接
python3 test-mcp-servers.py
游标IDE集成
该项目旨在与Cursor IDE的MCP(模型上下文协议)集成。
Cursor IDE的设置
-
启动MCP服务器:
docker-compose up --build -d -
测试服务器连接:
python3 test-mcp-servers.py -
配置游标IDE:
选项A:将配置复制到主目录
# macOS/Linux cp .modelcontextrc.json ~/.modelcontextrc.json # Windows copy .modelcontextrc.json %USERPROFILE%\.modelcontextrc.json选项B:在游标设置中配置
- 打开光标IDE
- 转到设置(Cmd/Ctrl+,)
- 搜索“MCP”或“模型上下文协议”
- 设置项目的配置路径
.modelcontextrc.json
-
重新启动游标IDE
游标中可用的MCP工具
配置后,Cursor将可以访问:
- 文件系统操作 (读/写文件)
- Git操作 (提交、分支等)
- 时间函数 (当前时间、时区信息)
- HTTP获取功能 (网络请求)
- 顺序思维 (逐步推理)
端口和端点
- 8801:文件系统服务器-
http://localhost:8801/sse - 8802:内存服务器-
http://localhost:8802/sse(⚠️ 不工作) - 8803:顺序思维服务器-
http://localhost:8803/sse - 8804:Git服务器-
http://localhost:8804/sse - 8805:时间服务器-
http://localhost:8805/sse - 8806:获取服务器-
http://localhost:8806/sse - 8807:一切服务器-
http://localhost:8807/sse(⚠️ 不工作)
健康检查端点
所有服务器都提供健康检查端点:
- Python服务器:
http://localhost:PORT/health - Node.js服务器:没有健康端点(改用SSE端点)
这种方法的好处
- 模块化:每个服务器都是隔离的,可以独立更新
- 可扩展性:易于扩展的个人服务
- 调试:独立的日志和更容易的故障排除
- 资源管理:更好地控制每个服务的资源分配
- Docker最佳实践:遵循集装箱化最佳实践
- HTTP/SSE支持:所有服务器都公开HTTP/SSE端点,便于集成
- 混合技术:支持基于Node.js和Python的MCP服务器
- 游标IDE集成:已准备好与Cursor的MCP功能一起使用
当前状态
✅ 工作服务器:
- 文件系统(Node.js+mcp代理)
- 顺序思维(Node.js+mcp代理)
- git(Python+Flask包装器)
- 时间(Python+Flask包装器)
- fetch(Python+Flask包装器)
⚠️ 问题:
- 内存:在超级网关容器中找不到可执行文件
- everything:在supergateway容器中找不到可执行文件
故障排除
服务器连接问题
-
检查服务器是否正在运行:
docker-compose ps -
测试服务器连接:
python3 test-mcp-servers.py -
检查服务器日志:
docker-compose logs -
测试单个服务器:
curl http://localhost:8801/sse # filesystem curl http://localhost:8804/health # git
游标IDE问题
-
验证MCP配置:
- 检查光标的MCP配置设置
- 确保配置文件路径正确
- 配置更改后重新启动Cursor
-
检查服务器状态:
- 启动Cursor之前,确保所有服务器都在运行
- 使用测试脚本验证连接
后续步骤
要修复其余服务器,请执行以下操作:
- 调查为什么基于GitHub的服务器没有正确创建可执行文件
- 考虑对所有Node.js服务器使用mcp代理,而不是supergateway
- 为Node.js服务器添加适当的健康端点
