🔧 MCP 工具调用完整流程

📤 请求流程(用户 → API)
1
用户提问
💬 用户:"帮我查一下北京明天的天气"
2
LLM 理解意图
• 任务类型:天气查询
• 城市名称:北京
• 时间范围:明天
• 需要的工具:weather_get
3
选择 MCP 工具
工具:weather_get
参数:city="Beijing", format="json"
4
执行工具调用
API 调用:curl wttr.in/Beijing?format=j1
📥 响应流程(API → 用户)
5
API 返回数据
{ "current_condition": { "temp_C": 15, "weather": "晴" }, "weather": [ {"date": "明天", "avgtempC": 16} ] }
6
LLM 组织答案
1. 解析 JSON 数据
2. 提取关键信息:温度、天气状况
3. 用自然语言重新组织
4. 添加友好的开头和结尾
7
输出结果
🤖 AI:"好的!北京明天的天气如下:
🌤️ 天气:晴
🌡️ 温度:16°C

明天是个好天气,适合外出哦!"
⬇️
📋 MCP 工具定义示例

Tool Schema

{ "name": "weather_get", "description": "获取指定城市的天气信息", "inputSchema": { "type": "object", "properties": { "city": { "type": "string", "description": "城市名称" }, "format": { "type": "string", "enum": ["json", "text"] } }, "required": ["city"] } }

实际调用示例

// LLM 生成 { "tool": "weather_get", "parameters": { "city": "Beijing", "format": "json" } } // 返回结果 { "current_condition": { "temp_C": 15, "weather": "晴" }, "weather": [ {"date": "明天", "avgtempC": 16} ] }
✨ MCP 核心价值

🔌 标准化接口

统一的调用方式 · 规范的参数格式 · 清晰的错误处理

📋 能力声明

AI 自动理解可用工具 · 根据需求自动选择 · 无需硬编码逻辑

🔒 安全隔离

可控的权限范围 · 参数验证和过滤 · 防止越权操作

🔍 动态发现

运行时加载工具 · 支持热更新 · 无需重启服务

🌐 社区生态

共享标准工具库 · 降低开发成本 · 促进工具复用