MCP 协议:LLM 应用开发的“适配器”

原创
03/24 13:59
阅读数 6.5K

最近,许多软件和平台纷纷上线 MCP Server,按照 MCP 协议统一与大模型的交互接口,如 Gitee MCP Server、百度地图 MCP 的发布等等。

通过 Gitee MCP Server 读取用户 Gitee 仓库中的 Issue

重新定义大模型交互范式

MCP 协议可以简单理解成是一个国际通用版本的转接头,将大模型与各种外部系统、工具和数据源链接在一起。它通过定义统一的通信规范和数据格式,实现了异构技术栈间的无缝对接,使得算力资源、行业知识库与 AI 模型能够突破平台限制进行跨维度协作。

比如,要调用大模型做一个客服 AI,通常需要同时访问客户信息、产品知识库和工单系统等,开发者要为每个数据源编写独立代码,开发定制化的 API 接口,还要实现复杂的鉴权与错误处理机制,并对模型进行特定格式的指令训练。

而通过 MCP 协议,就可以直接将这些系统接入统一的 MCP 管理,像“插排接电器”一样即插即用。

具体来说,开发者不再需要为每个数据源单独开发 API,只需在 MCP 中配置一次工具(如客户数据库、工单系统),后续所有兼容 MCP 的 AI 模型都能直接调用这些服务。

MCP Server 会实时维护可用的工具列表,AI 模型在交互时能自动感知到新接入的系统。例如:企业新增了一个物流跟踪系统;管理员只需要将其注册到 MCP Server 并声明服务类型;客服 AI 无需停机升级,即可通过协议内置的语义理解模块自动识别该工具的功能边界,直接调用接口回答用户物流问题。

MCP 协议还具备跨平台兼容性,无论底层系统是 Java 开发的工单平台,还是 Python 写的知识库,甚至是遗留的 COBOL 系统,只要接入 MCP Server,就能被 AI 模型以统一方式调用。这相当于给所有工具装上了“万能翻译器”。

除了常见数据库,MCP 还支持接入:

  • Web API:天气查询、支付网关等

  • 代码仓库:Git 操作自动化

  • 本地系统:文件操作、硬件设备控制

  • 企业系统:SAP/Oracle 等 ERP 系统

协议背后的工程智慧

那么,MCP 是如何实现这些能力的?

MCP 就是 Claude(Anthropic) 主导发布的一个开放的、通用的、有共识的协议标准,本质上只是定义了一套基于 JSON-RPC 的通信规则,从而将外部服务的调用标准化,只要支持这套协议的 Host 和 Agent 都可以接入。核心组件包括:

  • MCP Host:主机负责发起与 LLM 的连接,类似 Cursor, Claude Desktop、Cline。

  • MCP Client: 客户端是用来在 Host 应用程序内维护与 Server 之间 1:1 连接。根据客户端的不同,MCP 的使用方法也不同,如 Clinn 是直接附加在系统提示词中;5ise 是 Function Call 的模式。

  • MCP Server: 通过标准化的协议,为 Client 端提供上下文、工具和提示。Mcp Server 的本质是运行在本地电脑上的一个 nodejs 或者 Python 程序。

  • 本地数据源: 包含本地文件、数据库和服务。

  • 远程服务: 可连接的外部文件、数据库、API。

整个 MCP 的调用过程大致可以分为 5 步:

  1. 客户端将 MCP 详细使用方法告诉大模型

  2. 用户输入问题通过客户端传递给大模型

  3. 大模型自行决定调用哪个 Mcp Server,以及如何传递参数

  4. 客户端根据大模型决定的调用方式,调用 MCP Server,拿到返回结果,加上之前的上下文,再传递给大模型

  5. 大模型进行整理,然后把最终的结果呈现给用户

简化了各式外部资源的调用之后,在 LLM 上构建复杂的工作流或者应用就会相应简化。同时,由于 MCP 协议解耦了工具和 LLM,可以实现 LLM 自由切换,并且数据和工具不需要上传远端,保护数据隐私。

目前,MCP 支持的语言列表中已经包含 Kotlin SDK、Python SDK、TypeScript SDK 和 Java SDK。

在社区的最新动态中,MCP 本身也有望采用 "Streamable HTTP" 传输代替「HTTP+SSE」的 PR,以解决当前远程 Model Context Protocol (MCP) 传输方式的关键限制。简单来说,Streamable HTTP 改变了 MCP 的数据传输方式,让协议变得:更灵活,支持流式传输,但不强制;更易用,支持无状态服务器;更兼容,适用于标准 HTTP 基础设施。

一个简单的比喻是: 原来的 MCP 传输方式就像是你和客服通话时必须一直保持在线(SSE 需要长连接),而新的方式更像是你随时可以发消息,然后等回复(普通 HTTP 请求,但可以流式传输)。

MCP Vs Function Calling

MCP 和此前的 Function Calling 相比,本质上都是让大模型通过标准化的接口来调用外部工具和服务,实现更多复杂功能,区别在于协议层抽象深度与系统级自治能力的跃迁。

Function Calling 是模型厂商提供的工具调用框架,停留在应用层工具调度的维度,开发者需显式定义工具清单、编写参数模板并固化调用逻辑,那么 LLM 就可以根据清晰的结构化数据进行推理,执行函数。缺点就是很难处理好复杂需求与多轮对话,同时代码量较大,难以维护。此外,不同的模型有不同的 Function Calling 实现,代码集成的方式也不一样,很难统一标准。

以开头的 Gitee MCP Server 为例,如果用户想读取仓库中的 Issue 列表,Function Calling 方案下,开发者首先要定义工具函数,手动编写 Gitee API 调用逻辑;大模型调用时需要精确控制参数传递,手动解析参数并执行。在这个过程需要要自己处理鉴权令牌传递,存在安全风险,还需为每个 API 编写参数校验逻辑,新增 API 时必须修改代码并重新训练模型适配。

但在 MCP 协议方案下,只需要注册 Gitee MCP Server,一次配置即可实现大模型直接调用。MCP Server 会自动完成以下动作:

1. 识别需要调用 Gitee 的 issue 接口

2. 从安全中心获取当前用户 OAuth 令牌

3. 转换参数格式调用 API

4. 将原始数据转换为模型友好格式

此外,Gitee MCP Server 让 AI 助手可以读取仓库内容、分析 PR 变更、理解 Issue 需求,并自动执行代码管理任务,如创建 PR、合并分支、发布版本等。

  • 智能化仓库管理:AI 直接访问代码库,读取文件、分析变更,辅助开发决策;

  • 自动化 PR 审查:识别代码变更,提供优化建议,减少人工审查工作量;

  • Issue 追踪与管理:AI 可解析 Issue 内容,生成修复建议,甚至直接提交 PR 解决问题;

对比维度

Function Calling

MCP协议

协议层级

应用层工具调度(需模型感知工具格式)

协议层抽象(模型与工具完全解耦)

工具接入方式

需为每个工具编写JSON Schema描述

工具注册后自动生成语义描述

鉴权机制

开发者手动传递Token(如API Key)

内置OAuth 2.0/OpenID Connect等标准化鉴权流程

服务发现

静态工具列表(需预先定义)

动态服务网格(实时感知可用服务)

跨平台兼容性

依赖模型提供商实现(如OpenAI格式)

协议无关(支持Java/Python/COBOL等异构系统)

错误处理机制

需自行实现重试/降级逻辑

内置熔断/限流/负载均衡策略

多模态支持

仅限文本交互

原生支持文本/音频/视频/二进制流

开发成本

约50-100行代码/工具(含参数校验/错误处理)

约5-10行配置/工具(声明式注册)

维护成本

工具变更需重新训练模型适配

工具热更新(无需模型调整)

典型延迟

100-300ms(工具调用链路优化后)

50-150ms(协议层优化+边缘计算)

权限控制粒度

工具级别(全有或全无)

字段级别(如允许查询订单但隐藏手机号)

标准化程度

厂商自定义(如OpenAI/Anthropic格式不兼容)

统一协议规范(各厂商实现可互操作)

典型应用场景

简单工具调用(天气查询/日历管理等)

企业级系统集成(ERP/CRM/代码仓库等)

相较之下,Function Calling 更适合快速验证原型、仅需调用少量简单工具、使用单一模型厂商服务的业务场景中。

MCP 协议则更适合企业级系统集成、需要长期维护扩展、涉及多模型/多厂商协同的业务场景中。

下一步:成为行业共识

当下的大模型智能应用越来越多地使用到了多 Agent 系统,也逐渐在复杂业务中落地。MCP 协议的出现,或许是实现智能应用 从“单兵作战”到“群体智能”转变的一个关键技术。

在 MaaS 平台中,通过标准协议,模型可以像微服务一样被动态调用。例如,电商平台的推荐系统可同时调用文本理解、图像生成、语音合成等多个模型,无需关心底层通信细节。在 Agent 的协作中,MCP 支持智能体间的任务分发与结果聚合。例如,在自动驾驶场景中,视觉模型、路径规划模型、语音交互模型可通过 MCP 实时协同,形成闭环决策。

从去年12月发布至今,市场上也出现了各式 MCP Server,覆盖浏览器自动化处理、日历管理、云平台操作管理、电商服务、游戏多媒体服务、文件系统、基础服务等方面。

MCP 也是一个开放性协议,为开发者社区提供了协作基础,降低集成成本,开发者无需为每个模型定制适配层,可专注于业务逻辑。开放生态也推动标准化工具链,围绕 MCP 的调试工具、性能监控平台、安全审计框架等生态工具正在兴起,形成类似 Kubernetes 之于云原生的技术栈。

MCP Server

主要功能

Anthropic MCP Server

提供标准化数据接口,支持AI模型访问本地/远程资源(如文件、数据库、API等),增强上下文感知与任务执行能力。

Gitee MCP Server

读取仓库内容、分析 PR 变更、理解 Issue 需求,并自动执行代码管理任务,如创建 PR、合并分支、发布版本等。

百度地图 MCP Server

国内首个兼容 MCP 协议的地图服务,支持逆地理编码、地点检索、路线规划等功能,简化大模型调用地图服务的开发流程。

PostgreSQL Reader

提供对 PostgreSQL 数据库的只读访问,允许 LLMs 检查数据库模式并在受保护的事务中执行只读查询。

Sentry

用于检索和分析错误报告、堆栈跟踪和调试信息,帮助 AI 助手理解和处理应用程序问题。

Git Tools

提供 Git 仓库的交互和自动化工具,包括读取、搜索、提交、分支管理和版本控制等功能。

Google Maps

提供了全面访问 Google 地图服务的功能,包括地理编码、位置搜索、方向计算、距离计算和海拔计算等。

YouTube Subtitles

主要用于下载和提取 YouTube 视频的字幕,并通过分析字幕文本来总结视频内容,从而帮助 AI 助手更好地理解和处理视频信息。

一些常用的 MCP Server 汇总

不过,虽然目前看起来 MCP 前景广阔,但从实际应用角度看,MCP协议目前存在几个关键限制。

MCP 的实现逻辑是通过安装相应的 MCP Server 到系统中,交给大模型去选择并调用,那么。当接入的外部系统较多时,AI 可能无法快速选择最优工具,甚至出现调用错误的情况。而随着客户端安装的 MCP Server 增加,存储在系统中的 Prompt 就会越长,也需要告诉大模型更多的 MCP Server 参数,进而导致上下文消耗更多 Token 或是调用混乱?

在 Anthropic 发布的 MCP Rodemap 中也提到了 Agent Support,扩展 MCP 使其适合更加复杂的 Agent 流程,包括关注分层 Agent,交互式工作流等。

当然,还有一个更严峻的挑战——当前 MCP 尚未成为行业共识,未来是否会出现新的协议,又或是以更简洁的方式实现 AI 应用开发还未可知。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
9 收藏
0
分享
返回顶部
顶部