jackkuo's picture
update
2de095a
|
raw
history blame
3.66 kB
# 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集成服务
- 机器学习推理服务