📄 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.pswp.cn/news/912633.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912633.shtml
英文地址,请注明出处:http://en.pswp.cn/news/912633.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算中的几何方法:曲面变形的可视化与动画-AI云计算数值分析和代码验证

着重强调微分方程底层的几何和代数结构,以进行更深入的分析和求解方法。开发结构保持的数值方法,以在计算中保持定性特征。统一符号和数值方法,实现有效的数学建模。利用几何解释(如双曲几何)求解经典微分方程。利用计…

OpenCV篇——项目(一)OCR识别读取银行卡号码

目录 信用卡数字识别系统:前言与代码解析 前言 项目代码 ​​​​​​结果演示 代码模块解析 1. 参数解析模块 2. 轮廓排序函数 3. 图像预处理模块 4. 输入图像处理流程 5. 卡号区域定位 6. 数字识别与输出 系统优势 信用卡数字识别系统:前言…

Adobe AI高效设计秘籍与创新思维进阶

开篇:十年设计征途,Adobe赋能创意飞翔 作为一名在设计领域耕耘十年的旅居职业设计师,我得益于英国帕维斯经济与音乐学院(Parvis School of Economics and Music)提供的Adobe正版教育订阅,得以持续探索技术…

vc formal实例

命令: module load gui 方式启动命令, 看一下cc_pinmux.tcl 里面有什么: 工具feature 的设置,不太懂 对特定模块做blackbox, library file, 一般是工具无法识别的模块,例如 IO lib,memory lib,analog lib, 内部有 …

JavaScript取值get的json/url/普通对象参考

dstore.on(datachanged,function(dstore){ for(i0;i<dstore.getCount();i){ var a dstore.getAt(i); var imp_infoa.get(imp_info); 上面这段JS代码&#xff0c;imp_info取到的是一长串KEY和VALUE组成的内容&#xff0c;我怎样可以准确获取其中一…

【C++】侦测按键事件

侦测按键事件可以用C的conio.h头文件&#xff0c;用到的函数&#xff1a; _CRTIMP int __cdecl _getch(void); 输入以下代码&#xff1a; #include <iostream> #include <conio.h> using namespace std;int main() {char key;while (true) {cout << "…

Coremail受邀亮相华为开发者大会

6月20-22日&#xff0c;为期三天的HDC.2025华为开发者大会在东莞举行&#xff0c;全球超过1.2万名开发者汇聚现场&#xff0c;聚焦鸿蒙生态、AI技术及产业合作。Coremail作为鸿蒙生态的核心伙伴和深度参与者受邀出席&#xff0c;并获得“智慧办公最佳产品合作伙伴”奖项。 HDC.…

视频断点续播全栈实现:基于HTML5前端与Spring Boot后端

文章目录 视频断点续播功能实现方案核心思路前端实现HTML结构JavaScript实现Spring Boot后端实现1.依赖配置(pom.xml)2.实体类3.存储库接口4.服务层5. 控制器实现要点视频断点续播功能构思图流程说明用户交互:前端核心功能:后端处理:数据存储:🌐 我的个人网站:乐乐主题创…

华为设备 QoS 流分类与流标记深度解析及实验脚本

一、引言 在复杂网络环境中&#xff0c;不同业务对网络质量需求各异。语音通话要求低时延、视频直播依赖高带宽、普通文件传输对丢包容忍度相对较高 。QoS&#xff08;Quality of Service&#xff0c;服务质量&#xff09;技术通过流分类、流标记等手段&#xff0c;为不同业务…

[论文阅读] 人工智能 + 软件工程 | 从软件工程视角看大语言模型:挑战与未来之路

从软件工程视角看大语言模型&#xff1a;挑战与未来之路 论文标题&#xff1a;Software Engineering for Large Language Models: Research Status, Challenges and the Road Ahead arXiv:2506.23762 Software Engineering for Large Language Models: Research Status, Chall…

【Docker基础】Docker容器管理:docker rm及其参数详解

目录 1 Docker容器生命周期概述 2 docker rm命令基础 2.1 命令基本语法 2.2 命令功能说明 2.3 基本使用示例 3 docker rm参数详解 3.1 -f, --force 3.2 -v, --volumes 3.3 -l, --link 3.4 --time 4 docker rm高级用法 4.1 批量删除容器 4.1.1 删除所有已停止的容器…

鸿蒙进阶——Mindspore Lite AI框架源码解读之模型加载详解(五)

文章大纲 引言一、LiteSession::CompileGraph(Model *model)二、LiteSession::CompileGraph(Model *model) 核心流程1、MindirModel::ConvertTensors1.1、遍历并执行MindirModel::ConvertTensor1.1.1、MindirModel::LoadTensorData 三、LiteSession::InitGraphInputTensors(mod…

WireShark网络取证分析第一集到第五集和dvwa靶场环境分析漏洞

文章目录 一、WireShark网络取证是什么?二、WireShark网络取证1.WireShark网络取证分析第一集Ann的即时通讯好友叫什么名字?在捕获的即时通讯对话中第一条评论是什么?Ann传输的文件叫什么名字?您想提取的文件的魔数是什么(前四个字节)?文件的MD5sum是多少?什么是秘密配方…

【51单片机按下按键1,8位共阴极数码管输出2022-606。按下按键2,8位共阴极数码管输出606-1132。】2022-6-10

缘由单片极的共阴极数码管按下按键1和按键2输出的内容-编程语言-CSDN问答 #include "REG52.h" unsigned char code smgduan[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,64}; //共阴0~F消隐减号 unsigned char Js0, miao…

HDMI转12G- SDI GS12170+GS12281-富利威方案设计及技术支持

GS12281 是一款低功耗、多速率、重定时电缆驱动器&#xff0c;支持高达 12G UHD-SDI 的速率。它设计用于接收 100Ω 差分输入信号&#xff0c;自动从数字视频信号中恢复嵌入式时钟并重新定时输入数据&#xff0c;并通过 75Ω 同轴电缆传输重新定时的信号。 100Ω 走线输入支持…

自然语言处理:NLP入门

本文目录&#xff1a; 一、概念二、发展史三、核心任务和技术特别分享1&#xff1a;当前挑战和前沿方向特别分享2&#xff1a;大神名言启示 前言&#xff1a;从本章开始讲解自然语言处理&#xff08;NLP&#xff09;&#xff0c;今天先入个门~ 一、概念 自然语言处理&#xff…

用Fiddler中文版抓包工具掌控微服务架构中的接口调试:联合Postman与Charles的高效实践

随着微服务架构在项目中的广泛应用&#xff0c;系统被拆分成多个独立的服务&#xff0c;彼此通过API通信。虽然架构带来了灵活性&#xff0c;但也大幅增加了接口数量和调用链复杂度&#xff1a;一次用户操作可能触发跨多个服务的调用&#xff0c;导致前端调试难度飙升。要精准排…

MongoDB 更新文档指南

MongoDB 更新文档指南 引言 MongoDB 是一款高性能、可扩展的文档存储系统&#xff0c;它为存储和管理大量数据提供了强大的支持。在 MongoDB 中&#xff0c;更新文档是常见操作之一&#xff0c;它允许用户修改现有文档的内容。本文将详细讲解 MongoDB 中更新文档的各种方法&a…

Cursor + Serena MCP集成,更好的解析项目架构

项目地址&#xff0c;下到本地。 Serena可以更好的理解项目的架构并总结&#xff0c;而不是简单的阅读代码文件&#xff0c;可以直接用Cursor结合MCP的方式进行使用。&#xff1a;Serena 的语义代码分析功能建立在语言服务器上&#xff0c;使用广泛实施的语言服务器协议&#x…

【Python】numpy数组常用数据处理(测试代码+api例程)

目录 一、数列生成1.按照间隔生成数列&#xff08;np.array[]&#xff09;2.按照数列数字个数生成数列&#xff08;np.linspace&#xff09; 二、数列增删改查1.1 数组末尾添加数据&#xff08;np.append&#xff09;1.2 数组指定索引位置添加数据&#xff08;np.insert&#x…