# 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集成服务 - 机器学习推理服务