AI知识点——MCP

一、 什么是MCP协议?有什么作用?

MCP 就像 AI 世界的 USB-C 接口,各种数据源和工具只要遵循 MCP 标准,LLM 就能即插即用,轻松访问数据库、API 等资源,大幅拓展能力和应用场景。

MCP 的作用主要体现在以下几个方面:

  1. 标准化数据接入:通过MCP,我们无需为每个模型编写单独的代码,而是通过统一的协议接口,实现一次集成,随处连接。这大大简化了模型与外部系统的集成过程。
  2. 增强模型能力:MCP 使得模型能够实时访问最新的数据和工具,例如直接从 GitHub 获取代码库信息,或从本地访问文件。这不仅提升了模型的实用性,也拓展了其应用场景。
  3. 提升系统可维护性:通过标准化的协议,系统的各个组件可以更加模块化地协作,降低了维护成本和出错概率。

二、 MCP有哪些核心组件?

  • MCP主机:希望通过 MCP 访问数据的程序,例如 Claude Desktop、IDE 或 AI 工具·
  • MCP 客户端:与服务器保持1:1 连接的协议客户端
  • MCP 服务器:轻量级程序,通过标准化的 MCP 协议向客户端提供特定功能,如数据源、工具和API接口等。
  • 本地数据源:MCP 服务器可以安全访问用户的计算机文件、数据库和服务
  • 远程服务:MCP 服务器可通过互联网(例如通过API)连接到的外部系统

MCP Client 是 LLM 和外部工具的桥梁,流程如下:

  • 从 MCP Server 获取工具列表;
  • 用户提问后,将工具信息通过 Function Calling 发给 LLM;
  • LLM 判断是否调用工具;
  • 若需要,MCP Client 通过 MCP Server 调用工具;
  • 获取结果反馈给 LLM,模型生成最终回复;
  • MCP Client 返回答案给用户,完成闭环。

MCP Server 是 MCP 的核心,提供三类能力:

  • Resources:模型可查的动态/静态数据,如 API 返回、项目结构等;

  • Tools:可调用的功能接口(如发请求、建文档),执行前可控可授权;

  • Prompts:预设提示模板,助力高效完成特定任务。

    它让 LLM 不只能"看懂",还能"动手"。

三、 MCP协议支持哪两种模式?

MCP 协议支持两种主要的通信模式,即 标准输入输出(Stdio)模式和 服务器发送事件(SSE) 模式。

  1. 标准输入输出(Stdio)模式:基于 stdio 的实现是最常见的 MCP 客户端方案,它通过标准输入输出流与 MCP服务器进行通信。这种方式简单直观,能够直接通过进程间通信实现数据交豆,避免了额外的网络通信开销。特别适用于本地部署的 MCP 服务器,可以在同一台机器上启动 MCP 服务器进程,与客户端无缝对接。
  2. 服务器发送事件(SSE)模式:这个方案相较于 stdio 方式, SSE更适用于远程部署的 MCP服务器,比如分布式系统或需要网络实时推送的场景。客户端可以通过标准 HTTP 协议与服务器建立连接,实现单向的实时数据推送。基于 SSE 的 MCP 服务器支持被多个客户端的远程调用。

四、MCP vs Function Calling

  • MCP 是协议标准:提供统一的通信规则(基于 JSON-RPC 2.0),负责协调 LLM与外部资源(Resources)、工具(Tools)、提示(Prompts)的交互,实现"一次对接,多模型通用"。
  • Function Calling 是大模型特性:如 GPT-4 的特定功能,模型生成结构化函数调用,开发者解析后调用对应服务,格式不限,主要扩展模型的执行能力。
维度 MCP Function Calling
层级 通信协议(系统层) 模型特性(功能层)
作用 统一接入、跨模型兼容 模型内触发外部调用
格式 标准 JSON-RPC 无特定格式限制
类比 支付网关 单个支付接口

五、 MCP的工作流程是什么?

1、初始化连接:主机应用程序(如 Claude Desktop 或 IDE 插件)启动并初始化 MCP 客户端,每个客户端与一个 MCP服务器建立连接。

2、获取工具列表:在系统初始化阶段,MCP Client 首先从 MCP Server获取可用的工具清单和能力描述。这些工具可以是 API、脚本、数据库查询方法等。这个步骤相当于"能力注册",让模型知道有哪些可以用的"外部技能"

3、构造 Function Calling 请求:当用户输入一个问题后,MCP Client 会将这些工具描述(包括参数、用途、返回值等)一并传给 LLM。传输方式采用Function Calling,即结构化地把"能用的函数长什么样"告诉模型,让它来决定是否要使用。

4、模型智能判断是否调用工具:LLM 根据当前对话上下文以及工具信息判断是否要使用某个工具,并决定调用哪一个、传入什么参数。这个阶段完全由模型推理完成,比如它可以判断"这题需要查天气,那我就调用 getWeather 工具"

5、工具调用执行阶段:如果模型发起调用请求,MCP Client 会根据模型的选择,通过 MCP Server发起工具调用。这一步是真正的"执行动作"------MCP Server 去实际跑工具的逻辑,并把结果返回给客户端。

6、结果返回与模型整合:工具执行结果(比如调用 API得到的数据)被传回 LLM,由模型将这个结果与原始用户问题、已有上下文等信息整合,生成最终的自然语言回应。

7、用户响应输出:最后,MCP Client 将模型生成的回答展示给用户,完成一次完整的"智能+工具"协作流程。

六、 Spring AI如何集成MCP?

客户端启动器

spring-ai-starter-mcp-client 核心启动器提供 STDIO 和基于 HTTP 的 SSE 支持.

spring-ai-starter-mcp-client-webflux 基于WebFlux的SSE流式传输实现

服务器启动器

spring-ai-starter-mcp-server 核心服务器具有 STDIO 传输支持

spring-ai-starter-mcp-server-webmvc 基于Spring MVC的SSE流式传输实现

spring-ai-starter-mcp-server-webflux 基于WebFlux的SSE流式传输实现

七、 MCP协议的安全性设计包含哪些?

MCP协议的安全性设计涵盖多个关键方面,旨在确保大模型系统在与外部工具和资源交互时的安全性和可靠性。MCP 的安全性设计主要包括以下几个方面:

1、用户同意和控制:所有模型对工具、资源和提示的访问请求都必须经过用户的授权。主机负责管理权限、提示用户批准,并在必要时阻止未经授权的访问。用户必须知道哪些数据是需要提供给大模型的,用户在授权使用之前应该了解每个工具的功能。

2、隔离与沙箱机制:MCP 的设计将实际工具调用封装在 MCP Server 内部,模型本身无法直接访问敏感数据,这种 "中间层"设计有效地降低了直接暴露内部业务系统的风险。同时,沙箱机制可以限制工县调用的执行环境,防止任意代码执行或恶意操作对系统造成破坏。

3、加密传输与来源验证:MCP 内置了安全机制,确保只有经过验证的请求才能访问特定资源,相当于在数据安全又加上了一道防线。同时,MCP协议还支持多种加密算法,以确保数据在传输过程中的安全性。

八、 如何将已有的应用转化成MCP服务?

要将现有应用转换为 MCP 服务,需将其功能封装为标准化的 MCP 工具(Tools)、资源(Resources)或提示(Prompts),并通过 MCP Server 对外暴露。

这一过程涉及以下关键步骤:

1、梳理功能模块:识别应用中要提供给外部调用的功能,如 API接口、数据查询、文件处理等

2、创建单独的MCP 服务:创建一个新的MCP 服务,与已有的业务服务隔离开,通过单独的 API 或者 SDK 和业务服务通信。

3、导入依赖如果是 java,导入 spring-ai-mcp 对应的依赖,

4、定义工具:定义 MCP 服务需要包含的工具功能描述、方法入参字段和描述、方法返回的字段和描述.

5、实现 MCP Server:根据 MCP 协议规范,构建一个 MCP Server,负责接收 MCP 客户端请求、调用相应功能模块,并返回结果。

相关推荐
Hao想睡觉43 分钟前
全连接神经网络之参数初始化和损失函数(四)
人工智能·深度学习·神经网络
dev1 小时前
用xiaozhi-server搭建一个私有小智后台
前端·人工智能·嵌入式
北京地铁1号线2 小时前
旋转目标检测(Rotated Object Detection)技术概述
人工智能·目标检测·计算机视觉
伊织code2 小时前
OpenCV 官翻 1 -介绍、安装、功能概览、核心操作
人工智能·opencv·计算机视觉·图像·直线·曲线·功能
jinchaofsa2 小时前
如何在 Cursor 中继续使用 Claude
人工智能·程序员
胖墩会武术2 小时前
后训练(Post-training)语言模型
人工智能·语言模型·自然语言处理
新加坡内哥谈技术2 小时前
OpenAI开发的一款实验性大型语言模型(LLM),在2025年国际数学奥林匹克竞赛(IMO)中达到了金牌水平
人工智能·语言模型·自然语言处理
是瑶瑶子啦3 小时前
【AI前沿】英伟达CEO黄仁勋ComputeX演讲2025|Token是AI时代的“新货币”
人工智能
m0_743106463 小时前
【论文笔记】OccluGaussian解决大场景重建中的区域遮挡问题
论文阅读·人工智能·计算机视觉·3d·几何学
啊哈哈哈哈哈啊哈哈3 小时前
G7打卡——Semi-Supervised GAN
人工智能·神经网络·生成对抗网络