jackkuo's picture
update
2de095a

A newer version of the Streamlit SDK is available: 1.49.1

Upgrade

MCP 服务器说明

本项目现在包含三个MCP(Model Context Protocol)服务器,它们替代了原来的FastAPI HTTP服务。

🚀 MCP 服务器概览

1. RequestProcessor (service1)

功能: 通用请求处理和数据分析 工具:

  • process_request: 处理各种类型的请求和响应
  • get_service_info: 获取服务信息
  • validate_data: 验证数据结构

使用示例:

# 处理请求
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: 获取服务统计信息

使用示例:

# 分析数据
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: 高级数学运算

使用示例:

# 基本计算
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 中配置:

{
  "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服务器:

python app.py

方式2: 独立启动

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