当前位置: 首页 > news >正文

MCP 协议使用核心讲解

📄 MCP 协议使用核心讲解


✅ MCP 协议的核心在于以下几个方面


一、MCP 请求结构(MCPRequest

{"messages": [{"role": "user","content": "帮我查询一下上海的天气"}],"tools": [{"name": "weather_query","description": "查询天气","parameters": {"type": "object","properties": {"location": { "type": "string", "description": "查询地点" }},"required": ["location"]}}]
}
  • messages: 聊天上下文
  • tools: 提供可调用的工具(函数),使用 JSON Schema 描述
  • 模型生成 tool_calls 请求调用工具

二、MCP 响应结构(MCPResponse

{"choices": [{"message": {"role": "assistant","tool_calls": [{"id": "call_123","type": "function","function": {"name": "weather_query","arguments": "{\"location\": \"上海\"}"}}]},"finish_reason": "tool_calls"}]
}
  • tool_calls: 模型请求工具调用
  • finish_reason = tool_calls: 模型等待外部执行工具

三、工具执行结果续接请求

{"messages": [{"role": "user","content": "帮我查询一下上海的天气"},{"role": "assistant","tool_calls": [...]},{"role": "tool","tool_call_id": "call_123","content": "{\"weather\": \"晴天,28°C\"}"}]
}
  • 工具返回结果通过 role: tool 返回,继续对话

四、MCP 模型调用闭环流程

  1. 用户发起请求(自然语言)
  2. 模型识别出调用意图 → 返回 tool_calls
  3. 外部系统执行工具调用 → 得到结构化结果
  4. 将结构化结果回传给模型(tool 消息)
  5. 模型基于工具结果生成最终响应

五、MCP 协议关键字段说明

字段名说明
messages对话上下文
tools工具定义(JSON Schema)
tool_calls模型生成的调用请求
tool_call_id工具调用唯一标识
tool工具返回结果
finish_reason模型是否结束、是否等待工具调用

✅ 总结:

MCP 协议的核心在于:通过结构化的工具定义(tools)、模型调用请求(tool_calls)以及工具结果反馈(tool),实现大模型的可控、结构化、插件化调用闭环。

http://www.lqws.cn/news/599131.html

相关文章:

  • 数据结构day4——栈
  • 板凳-------Mysql cookbook学习 (十一--------1)
  • 杭州来未来科技 Java 实习面经
  • grom使用mysql快速上手
  • SeaTunnel 社区 2 项目中选“开源之夏 2025”,探索高阶数据集成能力!
  • PHP爬虫实战指南:获取淘宝商品详情
  • 【仿muduo库实现并发服务器】eventloop模块
  • 『深度编码』C++中的参数传递
  • 02.SpringBoot常用Utils工具类详解
  • 【学习方法】框架质疑学习法:破解专业学习的“知识厚度”困境
  • 华为云开始了“开发者空间 AI Agent 开发”活动
  • es的读和写-Reading and writing documents
  • Windows 疑难杂症集 - MsMpEng.exe 磁盘占用率持续高占
  • 发布/订阅模式:解耦系统的强大设计模式
  • 第七讲~~测试工具(禅道项目管理系统)
  • 软件测试期末复习之白盒测试
  • FPGA FMC 接口
  • Electron 进程间通信(IPC)深度优化指南
  • SpringBoot计时一次请求耗时
  • 数据库编程-ORM
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(四)- 职位数据可视化(FineBI)
  • Java-String类静态成员方法深度解析
  • HDMI 2.1 FRL协议的流控机制:切片传输(Slicing)和GAP插入
  • 开关电源和线性电源Multisim电路仿真实验汇总——硬件工程师笔记
  • 【SQL知识】PDO 和 MySQLi 的区别
  • Golang的并发编程实践总结
  • github代码中遇到的问题-解决方案
  • RNN和LSTM
  • flv.js视频/直播流测试demo
  • npm link的使用方法详细介绍