Spaces:
Sleeping
Sleeping
| # Docker 化 MCP Hub Streamlit 应用 | |
| 本项目已完全 Docker 化,现在使用MCP(Model Context Protocol)服务器架构。 | |
| ## 🏗️ 项目架构 | |
| ``` | |
| . | |
| ├── app.py # 主 Streamlit 应用 | |
| ├── requirements.txt # 主应用依赖 | |
| ├── Dockerfile # 主应用 Docker 镜像 | |
| ├── docker-compose.yml # Docker Compose 配置 | |
| ├── docker-config.json # Docker 环境配置文件 | |
| ├── docker-run.sh # 启动脚本 | |
| ├── docker-stop.sh # 停止脚本 | |
| ├── docker-logs.sh # 日志查看脚本 | |
| ├── config.json # MCP服务器配置 | |
| └── python-services/ # MCP服务器目录 | |
| ├── service1/ # RequestProcessor MCP服务器 | |
| │ ├── mcp_server.py # MCP服务器实现 | |
| │ └── requirements.txt # MCP服务器依赖 | |
| ├── service2/ # DataAnalyzer MCP服务器 | |
| │ ├── mcp_server.py # MCP服务器实现 | |
| │ └── requirements.txt # MCP服务器依赖 | |
| └── service3/ # MathComputer MCP服务器 | |
| ├── mcp_server.py # MCP服务器实现 | |
| └── requirements.txt # MCP服务器依赖 | |
| ``` | |
| ## 🚀 快速开始 | |
| ### 1. 启动应用 | |
| ```bash | |
| # 给脚本执行权限 | |
| chmod +x docker-run.sh docker-stop.sh docker-logs.sh | |
| # 启动应用 | |
| ./docker-run.sh | |
| ``` | |
| ### 2. 访问服务 | |
| - **Streamlit 应用**: http://localhost:8501 | |
| - **MCP服务器**: 通过主应用自动加载,无需单独访问 | |
| ### 3. 停止服务 | |
| ```bash | |
| ./docker-stop.sh | |
| ``` | |
| ### 4. 查看日志 | |
| ```bash | |
| # 查看应用日志 | |
| ./docker-logs.sh streamlit | |
| ``` | |
| ## 🔧 架构说明 | |
| ### 旧架构 (已废弃) | |
| - 三个独立的FastAPI HTTP服务 | |
| - 分别运行在端口8001、8002、8003 | |
| - 需要手动管理服务依赖 | |
| ### 新架构 (当前使用) | |
| - 三个MCP服务器集成到主应用中 | |
| - 通过stdio传输方式通信 | |
| - 自动工具发现和注册 | |
| - 更好的集成性和扩展性 | |
| ## 📝 MCP服务器功能 | |
| ### RequestProcessor (service1) | |
| - **功能**: 通用请求处理和数据分析 | |
| - **工具**: 请求处理、数据验证、服务信息 | |
| ### DataAnalyzer (service2) | |
| - **功能**: 数据分析和统计计算 | |
| - **工具**: 数据分析、统计计算、结构分析 | |
| ### MathComputer (service3) | |
| - **功能**: 数学计算和统计函数 | |
| - **工具**: 基本运算、高级统计、百分位数计算 | |
| ## 🔄 配置更新 | |
| MCP服务器配置在 `config.json` 中: | |
| ```json | |
| { | |
| "request_processor": { | |
| "command": "python", | |
| "args": ["./python-services/service1/mcp_server.py"], | |
| "transport": "stdio" | |
| }, | |
| "data_analyzer": { | |
| "command": "python", | |
| "args": ["./python-services/service2/mcp_server.py"], | |
| "transport": "stdio" | |
| }, | |
| "math_computer": { | |
| "command": "python", | |
| "args": ["./python-services/service3/mcp_server.py"], | |
| "transport": "stdio" | |
| } | |
| } | |
| ``` | |
| ## 💡 优势 | |
| 1. **简化部署**: 只需要启动一个主应用容器 | |
| 2. **统一管理**: 所有MCP服务器通过主应用管理 | |
| 3. **自动发现**: 工具自动发现和注册 | |
| 4. **更好集成**: 与LangChain等框架无缝集成 | |
| ## 🐛 故障排除 | |
| 如果MCP服务器加载失败: | |
| 1. 检查依赖是否正确安装 | |
| 2. 确认Python版本兼容性(建议3.8+) | |
| 3. 检查文件路径是否正确 | |
| 4. 查看主应用日志获取详细信息 | |
| ## 🔮 扩展建议 | |
| 可以基于现有MCP服务器模板创建更多专用服务: | |
| - 文件处理服务 | |
| - 数据库查询服务 | |
| - 外部API集成服务 | |
| - 机器学习推理服务 |