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

LLM 使用 MCP 协议及其原理详解

LLM 使用 MCP 协议及其原理详解

🧠 一、MCP 协议概述

1. MCP 是什么?

MCP(Modular Communication Protocol)是一种面向语言模型设计的通用通信协议,其设计目标是:

  • 模块化(Modular):支持多个工具(Tool)、插件(Plugin)、Agent 模块并行集成。
  • 通信(Communication):标准化模型与外部模块之间的数据交换。
  • 灵活性与扩展性强:易于添加新模块或调用链。

2. 主要用途

MCP 的核心是实现语言模型通过自然语言自动调度外部模块或系统组件,实现“语言+函数调用+多模块执行”的协同处理。

例如:

LLM 输入MCP作用
“明天北京的天气如何?”调用 searchWeather 工具
“用Python画个正弦函数图像”调用 pythonExecutor 插件
“附近有什么好吃的?”联动地图、定位、POI 搜索模块

🧩 二、MCP 的系统组成与原理详解

🔹 1. Language Model(语言模型)

如 GPT、Claude、Gemini、Baichuan 等,模型需要具备 Tool Calling 能力,能够根据自然语言判断是否调用外部模块。

🔹 2. MCP 协议层(核心桥接器)

MCP 作为中间协议层,统一了模型与工具之间的通信方式。包括:

  • 标准接口格式(Input/Output JSON Schema)
  • 统一的消息体结构
  • 调用链(chain of tools)控制
  • 异步或同步处理机制

示例:

{"function_call": {"name": "searchWeather","arguments": {"location": "北京","date": "2025-05-31"}}
}

🔹 3. 工具模块(Tools / Plugins)

如 Web 搜索、计算执行器(Python、SQL)、图像生成器、地图定位、企业接口模块等。

🔹 4. Tool Registry / Plugin Router(注册路由)

  • MCP 维护一个注册表:Tool Name -> Handler
  • 调用时自动识别该函数属于哪个模块,并转发数据
  • 支持工具组合执行、顺序/并发控制、参数验证

🔹 5. 返回处理

  • 将工具响应格式化为 LLM 可理解的自然语言
  • 嵌入到上下文中供模型继续处理

🔁 三、MCP 执行流程详解

User LLM MCP Tool “明天北京的天气如何?” function_call: searchWeather(location="北京", date="明天") 调用天气工具,传参 location/date 返回天气信息 格式化响应 “明天北京多云,最高27°C,最低17°C。” User LLM MCP Tool

🔐 四、MCP 设计原理与技术要点

方面内容
协议结构基于 JSON 的函数调用结构
模块解耦通过 MCP 调用,易扩展
安全机制参数校验、权限过滤
异步能力支持耗时任务调度
链式调用支持组合工具调用

🔧 五、实际部署架构示例

                      ┌────────────────────┐│    用户输入         │└────────┬───────────┘▼┌──────────────────────┐│   LLM(函数调用)     │└────────┬─────────────┘▼┌───────────────────────┐│  MCP 协议中间层        │└────────┬──────────────┘▼┌────────────┬──────────────┬────────────┐▼            ▼              ▼searchWeather  runPythonCode  searchAddress

📦 六、典型应用场景

场景调用模块示例
智能客服数据库查询、订单追踪、流程生成
智能助理天气、日历、提醒、地图
数据分析SQL 生成器、图表绘制工具
多模态助手图像生成、语音合成、视频摘要
工业/政务接入企业 ERP、政府业务系统

🔍 七、与其他协议对比

项目MCPOpenAI Function CallingGoogle ToolUse
协议结构通用 JSON 调用注册函数签名 + JSONXML/JSON
工具路由自定义控制层内部管理插件服务器
模型支持通用 LLMGPT-4 / 4oGemini
多任务调度支持部分支持支持

✅ 总结

MCP 实现了:

语言 → 工具调用 → 响应 → 再语言化 的闭环自动执行链。

其核心优势在于:

  • 高扩展性:任意模块可接入
  • 低耦合:模型与模块解耦
  • 高智能性:语言驱动自动调度

相关文章:

LLM 使用 MCP 协议及其原理详解

LLM 使用 MCP 协议及其原理详解 🧠 一、MCP 协议概述 1. MCP 是什么? MCP(Modular Communication Protocol)是一种面向语言模型设计的通用通信协议,其设计目标是: 模块化(Modular&#xff0…...

DAY 36神经网络加速器easy

仔细回顾一下神经网络到目前的内容,没跟上进度的同学补一下进度。 ●作业:对之前的信贷项目,利用神经网络训练下,尝试用到目前的知识点让代码更加规范和美观。 ●探索性作业(随意完成):尝试进入…...

STM32 单片机启动过程全解析:从上电到主函数的旅程

一、为什么要理解启动过程? STM32 的启动过程就像一台精密仪器的开机自检,它确保所有系统部件按既定方式初始化,才能顺利运行我们的应用代码。对初学者而言,理解启动过程能帮助解决常见“程序跑飞”“不进 main”“下载后无反应”…...

4.RV1126-OPENCV 图像轮廓识别

一.图像识别API 1.图像识别作用 它常用于视觉任务、目标检测、图像分割等等。在 OPENCV 中通常使用 Canny 函数、findContours 函数、drawContours 函数结合在一起去做轮廓的形检测。 2.常用的API findContours 函数:用于寻找图片的轮廓,并把所有的数…...

WEB3——开发者怎么查看自己的合约日志记录

在区块链中查看合约的日志信息(也叫事件 logs),主要有以下几种方式,具体方法依赖于你使用的区块链平台(如 Ethereum、BSC、Polygon 等)和工具(如 Etherscan、web3.js、ethers.js、Hardhat 等&am…...

TDengine 集群容错与灾备

简介 为了防止数据丢失、误删操作,TDengine 提供全面的数据备份、恢复、容错、异地数据实时同步等功能,以保证数据存储的安全。本节简要说明 TDengine 中的容错与灾备。 容错 TDengine 支持 WAL 机制,实现数据的容错能力,保证数…...

MG影视登录解锁永久VIP会员 v8.0 支持手机电视TV版影视直播软件

MG影视登录解锁永久VIP会员 v8.0 支持手机电视TV版影视直播软件 MG影视App电视版是一款资源丰富、免费便捷、且专为大屏优化的影视聚合应用,聚合海量资源,畅享电视直播,是您电视盒子和…...

如何成为一名优秀的产品经理(自动驾驶)

一、 夯实核心基础 深入理解智能驾驶技术栈: 感知: 摄像头、雷达(毫米波、激光雷达)、超声波传感器的工作原理、优缺点、融合策略。了解目标检测、跟踪、SLAM等基础算法概念。 定位: GNSS、IMU、高精地图、轮速计等定…...

BAT脚本编写详细教程

目录 第一部分:BAT脚本简介第二部分:创建和运行BAT脚本第三部分:基本命令和语法第四部分:变量使用第五部分:流程控制第六部分:函数和子程序第七部分:高级技巧第八部分:实用示例第一部分:BAT脚本简介 BAT脚本(批处理脚本)是Windows操作系统中的一种脚本文件,扩展名…...

快速了解 GO之接口解耦

更多个人笔记见: (注意点击“继续”,而不是“发现新项目”) github个人笔记仓库 https://github.com/ZHLOVEYY/IT_note gitee 个人笔记仓库 https://gitee.com/harryhack/it_note 个人学习,学习过程中还会不断补充&…...

【多线程初阶】内存可见性问题 volatile

文章目录 再谈线程安全问题内存可见性问题可见性问题案例编译器优化 volatileJava内存模型(JMM) 再谈线程安全问题 如果多线程环境下代码运行的结果是符合我们预期的,即在单线程环境应该有的结果,则说这个程序是线程安全的,反之,多线程环境中,并发执行后,产生bug就是线程不安全…...

C++ 类模板三参数深度解析:从链表迭代器看类型推导与实例化(为什么迭代器类模版使用三参数?实例化又会是怎样?)

本篇主要续上一篇的list模拟实现遇到的问题详细讲解&#xff1a;<传送门> 一、引言&#xff1a;模板参数的 "三角锁钥" 在 C 双向链表实现中&#xff0c;__list_iterator类模板的三个参数&#xff08;T、Ref、Ptr&#xff09;如同精密仪器的调节旋钮&#x…...

MySQL强化关键_018_MySQL 优化手段及性能分析工具

目 录 一、优化手段 二、SQL 性能分析工具 1.查看数据库整体情况 &#xff08;1&#xff09;语法格式 &#xff08;2&#xff09;说明 2.慢查询日志 &#xff08;1&#xff09;说明 &#xff08;2&#xff09;开启慢查询日志功能 &#xff08;3&#xff09;实例 3.s…...

ASP.NET MVC添加模型示例

ASP.NET MVC高效构建Web应用ASP.NET MVC 我们总在谈“模型”&#xff0c;那到底什么是模型&#xff1f;简单说来&#xff0c;模型就是当我们使用软件去解决真实世界中各种实际问题的时候&#xff0c;对那些我们关心的实际事物的抽象和简化。比如&#xff0c;我们在软件系统中设…...

【Part 3 Unity VR眼镜端播放器开发与优化】第二节|VR眼镜端的开发适配与交互设计

文章目录 《VR 360全景视频开发》专栏Part 3&#xff5c;Unity VR眼镜端播放器开发与优化第一节&#xff5c;基于Unity的360全景视频播放实现方案第二节&#xff5c;VR眼镜端的开发适配与交互设计一、Unity XR开发环境与设备适配1.1 启用XR Plugin Management1.2 配置OpenXR与平…...

第1天:认识RNN及RNN初步实验(预测下一个数字)

RNN&#xff08;循环神经网络&#xff09; 是一种专门设计用来处理序列数据的人工神经网络。它的核心思想是能够“记住”之前处理过的信息&#xff0c;并将其用于当前的计算&#xff0c;这使得它非常适合处理具有时间顺序或上下文依赖关系的数据。 核心概念&#xff1a;循环连…...

全文索引详解及适用场景分析

全文索引详解及适用场景分析 1. 全文索引基本概念 1.1 定义与核心原理 全文索引(Full-Text Index)是一种特殊的数据库索引类型,专门设计用于高效处理文本数据的搜索需求。与传统的B树索引不同,全文索引不是基于精确匹配,而是通过建立倒排索引(Inverted Index)结构来实现对…...

利用DeepSeek编写能在DuckDB中读PostgreSQL表的表函数

前文实现了UDF和UDAF&#xff0c;还有一类函数是表函数&#xff0c;它放在From 子句中&#xff0c;返回一个集合。DuckDB中已有PostgreSQL插件&#xff0c;但我们可以用pqxx库实现一个简易的只读read_pg()表函数。 提示词如下&#xff1a; 请将libpqxx库集成到我们的程序&#…...

树莓派安装openwrt搭建软路由(ImmortalWrt固件方案)

&#x1f923;&#x1f449;我这里准备了两个版本的openwrt安装方案给大家参考使用&#xff0c;分别是原版的OpenWrt固件以及在原版基础上进行改进的ImmortalWrt固件。推荐使用ImmortalWrt固件&#xff0c;当然如果想直接在原版上进行开发也可以&#xff0c;看个人选择。 &…...

排序算法——详解

排序算法 &#xff08;冒泡、选择、插入、快排、归并、堆排、计数、桶、基数&#xff09; 稳定性 (Stability): 如果排序算法能保证&#xff0c;当待排序序列中存在值相等的元素时&#xff0c;排序后这些元素的相对次序保持不变&#xff0c;那么该算法就是稳定的。 例如&#…...

Go整合Redis2.0发布订阅

Go整合Redis2.0发布订阅 Redis goredis-cli --version redis-cli 5.0.14.1 (git:ec77f72d)Go go get github.com/go-redis/redis/v8package redisimport ("MyKindom-Server-v2.0/com/xzm/core/config/yaml""MyKindom-Server-v2.0/com/xzm/core/config/yaml/po…...

电子电气架构 --- 如何应对未来区域式电子电气(E/E)架构的挑战?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

鸿蒙OS基于UniApp的区块链钱包开发实践:打造支持鸿蒙生态的Web3应用#三方框架 #Uniapp

基于UniApp的区块链钱包开发实践&#xff1a;打造支持鸿蒙生态的Web3应用 前言 最近在带领团队开发一个支持多链的区块链钱包项目时&#xff0c;我们选择了UniApp作为开发框架。这个选择让我们不仅实现了传统移动平台的覆盖&#xff0c;还成功将应用引入了快速发展的鸿蒙生态…...

易学探索助手-个人记录(十二)

近期我完成了古籍处理板块页面升级&#xff0c;补充完成原文、句读、翻译的清空、保存和编辑&#xff08;其中句读仅可修改标点&#xff09;功能&#xff0c;新增原文和句读的繁简体切换功能 一、古籍处理板块整体页面升级 将原来一整个页面呈现的布局改为分栏呈现&#xff0…...

Windows 账号管理与安全指南

Windows 账号管理与安全指南 概述 Windows 账号管理是系统安全的基础&#xff0c;了解如何正确创建、管理和保护用户账户对于系统管理员和安全专业人员至关重要。本文详细介绍 Windows 系统中的账户管理命令、隐藏账户创建方法以及安全防护措施。 基础账户管理命令 net use…...

Python窗体编程技术详解

文章目录 1. Tkinter简介示例代码优势劣势 2. PyQt/PySide简介示例代码(PyQt5)优势劣势 3. wxPython简介示例代码优势劣势 4. Kivy简介示例代码优势劣势 5. PySimpleGUI简介示例代码优势劣势 技术对比总结选择建议 Python提供了多种实现图形用户界面(GUI)编程的技术&#xff0c…...

思维链提示:激发大语言模型推理能力的突破性方法

论文出处&#xff1a; Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 作者&#xff1a; Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Brian Ichter, Fei Xia, Ed H. Chi, Quoc V. Le, Denny Zhou 机构&#xff1a; Google Research, B…...

NVMe协议简介之AXI总线更新

更新AXI4总线知识 AXI4总线协议 AXI4总线协议是由ARM公司提出的一种片内总线协议 &#xff0c;旨在实现SOC中各模块之间的高效可靠的数据传输和管理。AXI4协议具有高性能、高吞吐量和低延迟等优点&#xff0c;在SOC设计中被广泛应用 。随着时间的推移&#xff0c;AXI4的影响不…...

设计模式——责任链设计模式(行为型)

摘要 责任链设计模式是一种行为型设计模式&#xff0c;旨在将请求的发送者与接收者解耦&#xff0c;通过多个处理器对象按链式结构依次处理请求&#xff0c;直到某个处理器处理为止。它包含抽象处理者、具体处理者和客户端等核心角色。该模式适用于多个对象可能处理请求的场景…...

基于Android的医院陪诊预约系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…...