streamlit-macp-agents / DOCKER_README.md
jackkuo's picture
update
2de095a
# 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集成服务
- 机器学习推理服务