Spaces:
Sleeping
Sleeping
File size: 3,712 Bytes
2de095a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# 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集成服务
- 机器学习推理服务 |