使用说明
MCP开发环境
一个全面的基于Docker的开发环境,用于构建和测试模型上下文协议(MCP)服务器。
🎯 包含什么
核心服务:
- Python MCP服务器 (端口8000)-带调试的全功能实现
- Node.js MCP服务器 (端口3000)-替代实施
- PostgreSQL (端口5432)-包含示例数据的数据库
- 雷迪斯 (端口6379)-缓存层
- Nginx文件服务器 (端口8080)-使用CORS提供静态文件服务
开发特点:
- Python和Node.js的热重载
- 内置调试器支持(Python:5678,Node.js:9229)
- 全面的日志记录和监控
- 预配置的测试框架
- 示例数据和模式
- 代码质量工具(linting、格式化、类型检查)
🚀 快速开始
- 设置环境:
# Make the setup script executable and run it
chmod +x setup.sh
./setup.sh
- 确认一切正常:
# Check service status
docker-compose ps
# Test endpoints
curl http://localhost:8080/health # File server
curl http://localhost:8000/health # Python MCP server
curl http://localhost:3000/health # Node.js MCP server
- 开始开发:
# Edit the Python MCP server
vim src/main.py
# View logs in real-time
docker-compose logs -f mcp-server
# Run tests
docker-compose exec mcp-server python -m pytest
🔧 MCP服务器的主要功能
可用工具:
write_file-将内容写入文件execute_sql-运行数据库查询cache_set/get-Redis缓存操作list_directory-浏览文件系统analyze_data-CSV文件的基础数据分析
资源:
- 文件系统访问权限
/data目录 - 数据库表模式和示例数据
- 配置文件和文档
示例用法:
# The Python server provides tools for:
await mcp_server.call_tool("write_file", {
"path": "analysis.txt",
"content": "Sample analysis results"
})
await mcp_server.call_tool("execute_sql", {
"query": "SELECT * FROM users WHERE department = $1",
"parameters": ["Engineering"]
})
🐛 调试设置
Python(VSCode):
{
"name": "Python: Remote Attach",
"type": "python",
"request": "attach",
"connect": {"host": "localhost", "port": 5678},
"pathMappings": [
{"localRoot": "${workspaceFolder}/src", "remoteRoot": "/app/src"}
]
}
Node.js(Chrome DevTools):
- 打开
chrome://inspect - 连接到
localhost:9229
📊 监控和日志
# View all service logs
docker-compose logs -f
# Monitor specific service
docker-compose logs -f mcp-server
# Check resource usage
docker stats
# Database operations
docker-compose exec postgres psql -U mcp_user -d mcp_dev
# Redis operations
docker-compose exec redis redis-cli
🛠️ 开发工作流程
环境支持两种传输方式:
- 标准输入输出 (默认)-用于直接MCP客户端集成
- HTTP/WebSocket -用于基于web的开发和测试
您可以轻松地在实现之间切换,或者同时运行两者进行比较和测试。
🗂️ 项目结构
mcp/
├── src/ # Python MCP server source
│ └── main.py # Main Python server implementation
├── src-node/ # Node.js MCP server source
│ └── server.js # Main Node.js server implementation
├── db/ # Database initialization scripts
│ ├── init.sql # Schema and tables
│ └── sample_data.sql # Sample data
├── data/ # Data files (mounted to containers)
├── static/ # Static files served by Nginx
├── tests/ # Test suites
├── .vscode/ # VSCode debug configuration
├── docker-compose.yml # Service definitions
├── python.Dockerfile # Python server container
├── node.Dockerfile # Node.js server container
├── nginx.conf # Nginx configuration
├── setup.sh # Setup and management script
└── README.md # This file
🔧 管理命令
这 setup.sh 脚本提供了方便的管理:
./setup.sh setup # Initial setup and start (default)
./setup.sh start # Start services
./setup.sh stop # Stop services
./setup.sh restart # Restart services
./setup.sh status # Show service status
./setup.sh logs # Show service logs
./setup.sh clean # Remove everything (with confirmation)
./setup.sh help # Show help
🧪 测试
Python和Node.js服务器都包含全面的测试套件:
# Run Python tests
docker-compose exec mcp-server python -m pytest tests/ -v
# Run Node.js tests
docker-compose exec mcp-server-node npm test
# Run tests with coverage
docker-compose exec mcp-server python -m pytest tests/ --cov=src
🔍 数据库模式
PostgreSQL数据库包括几个示例表:
users-具有部门和角色的用户帐户products-产品目录,包括类别和库存orders-带有状态跟踪的订单历史记录order_items-订单行项目analytics_events-事件跟踪数据app_config-应用程序配置
📡 API终点
文件服务器(端口8080):
GET /health-健康检查GET /data/-浏览数据目录GET /static/-浏览静态文件GET /api/docs-API文件
Python MCP服务器(端口8000):
GET /health-健康检查- 通过stdio传输的MCP协议
Node.js MCP服务器(端口3000):
GET /health-健康检查- 通过stdio传输的MCP协议
🚨 故障排除
服务未启动:
- 检查Docker是否正在运行:
docker info - 检查端口冲突:
netstat -tulpn | grep :8000 - 查看启动日志:
docker-compose logs
数据库连接问题:
# Test database connectivity
docker-compose exec postgres pg_isready -U mcp_user
# Connect to database manually
docker-compose exec postgres psql -U mcp_user -d mcp_dev
Redis连接问题:
# Test Redis connectivity
docker-compose exec redis redis-cli ping
调试不起作用:
- 确保调试端口(5678、9229)未被使用
- 检查防火墙设置
- 验证VSCode调试配置是否与容器设置匹配
🤝 贡献
- 分叉存储库
- 改变你的环境
- 使用提供的测试套件进行彻底测试
- 提交拉取请求
📄 许可证
本项目按原样提供,用于开发和测试目的。
此环境为您提供了一个完整的MCP开发平台,其中包含真实的数据库、缓存、文件系统和调试工具,非常适合构建和测试生产就绪的MCP服务器!
