Spaces:
Sleeping
Sleeping
File size: 3,657 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 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# MCP 服务器说明
本项目现在包含三个MCP(Model Context Protocol)服务器,它们替代了原来的FastAPI HTTP服务。
## 🚀 MCP 服务器概览
### 1. RequestProcessor (service1)
**功能**: 通用请求处理和数据分析
**工具**:
- `process_request`: 处理各种类型的请求和响应
- `get_service_info`: 获取服务信息
- `validate_data`: 验证数据结构
**使用示例**:
```python
# 处理请求
result = await process_request(
message="analyze this data",
data={"key": "value"}
)
# 验证数据
validation = await validate_data({"name": "test", "value": 123})
```
### 2. DataAnalyzer (service2)
**功能**: 数据分析和统计计算
**工具**:
- `analyze_data`: 执行数据分析
- `get_data_statistics`: 计算数值统计
- `get_service_statistics`: 获取服务统计信息
**使用示例**:
```python
# 分析数据
analysis = await analyze_data(
input_data={"scores": [85, 90, 78, 92, 88]},
operation="statistics"
)
# 计算统计
stats = await get_data_statistics([1, 2, 3, 4, 5])
```
### 3. MathComputer (service3)
**功能**: 数学计算和统计函数
**工具**:
- `compute_operation`: 基本数学运算
- `get_supported_operations`: 获取支持的操作
- `advanced_math_operations`: 高级数学运算
**使用示例**:
```python
# 基本计算
result = await compute_operation(
numbers=[1, 2, 3, 4, 5],
operation="average"
)
# 高级运算
percentile = await advanced_math_operations(
operation="percentile",
numbers=[1, 2, 3, 4, 5],
percentile=75
)
```
## 🔧 配置说明
这些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: 通过主应用启动
主Streamlit应用会自动启动这些MCP服务器:
```bash
python app.py
```
### 方式2: 独立启动
```bash
# 启动RequestProcessor
python python-services/service1/mcp_server.py
# 启动DataAnalyzer
python python-services/service2/mcp_server.py
# 启动MathComputer
python python-services/service3/mcp_server.py
```
## 📋 依赖要求
每个MCP服务器需要以下依赖:
```
mcp
fastmcp
pydantic
```
## 🔄 从HTTP服务迁移
原来的三个FastAPI HTTP服务已被MCP服务器替代:
| 原HTTP服务 | 新MCP服务器 | 功能对比 |
|-----------|------------|----------|
| service1 (8001) | RequestProcessor | 请求处理 → 通用MCP工具 |
| service2 (8002) | DataAnalyzer | 数据分析 → 数据分析MCP工具 |
| service3 (8003) | MathComputer | 数学计算 → 数学计算MCP工具 |
## 💡 优势
1. **统一协议**: 所有服务都使用MCP协议
2. **更好的集成**: 与LangChain等框架无缝集成
3. **工具发现**: 自动工具发现和注册
4. **类型安全**: 更好的参数类型定义和验证
5. **异步支持**: 原生异步操作支持
## 🐛 故障排除
如果MCP服务器启动失败:
1. 检查依赖是否正确安装:`pip install mcp fastmcp`
2. 确认Python版本兼容性(建议3.8+)
3. 检查文件路径是否正确
4. 查看错误日志获取详细信息
## 🔮 扩展建议
可以基于这些MCP服务器模板创建更多专用服务:
- 文件处理服务
- 数据库查询服务
- 外部API集成服务
- 机器学习推理服务 |