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

MCP(Model Context Protocol)介绍

目录

一、MCP 诞生的背景与要解决的问题

二、MCP 的核心概念与工作原理

工作流程(以 Claude 询问今日天气为例):

三、MCP 的主要功能

四、MCP 的核心优势与价值

五、MCP 与其他技术的区别

六、现状与未来展望

总结


MCP 是一个由 Anthropic 主导开发的开放协议,旨在标准化大型语言模型(LLM)与外部工具、数据源和计算资源之间的连接方式。它的核心思想是让模型能够安全、可控地“看到”和“使用”外部系统,从而极大地扩展模型的能力,而不需要为此重新训练模型。

你可以把它想象成 LLM 世界的 USB 协议 或 应用商店:它定义了一套标准接口,使得任何开发者都能为模型创建“外设”(工具和数据源),而模型则可以即插即用地使用它们。


一、MCP 诞生的背景与要解决的问题

在 MCP 出现之前,让 AI 模型使用外部功能主要有两种方式,但它们都存在局限性:

1.函数调用(Function Calling)

  • 问题:需要将工具的功能和参数格式预先“硬编码”到给模型的系统提示(System Prompt)中。每增加、修改或删除一个工具,都需要重新调整提示词和代码,缺乏灵活性和可扩展性。

2.插件系统(Plugin Systems)

  • 问题:通常是某个特定模型或平台(如 OpenAI ChatGPT Plugins)独有的。为一个平台开发的插件无法直接用在另一个平台上,造成了生态割裂和开发者的重复劳动。

MCP 的目标就是解决上述问题

  • 标准化:提供一套与模型无关的通用协议。

  • 解耦:将工具/数据源的开发与模型本身分离开。

  • 安全性:提供明确的权限控制和安全边界。

  • 可扩展性:轻松地添加新的工具和数据源,而无需修改模型代码。


二、MCP 的核心概念与工作原理

MCP 的架构主要包含三个核心组件:

  1. MCP 客户端(Client)

    • 通常指大型语言模型及其运行的界面(如 Claude Console, Third-party AI apps)。

    • 客户端的职责是发起请求,例如“请查询一下数据库X”、“请执行工具Y”。

  2. MCP 服务器(Server)

    • 这是一个独立的进程,负责管理具体的工具(Tools) 和资源(Resources)

    • 例如,一个“数据库服务器”可以提供“执行SQL查询”的工具;一个“文件系统服务器”可以提供“读取文件”的资源。

    • 服务器可以由任何人开发,只要它遵循 MCP 协议。

  3. MCP 协议(Protocol)

    • 定义客户端和服务器之间如何通信的规范。它基于 JSON-RPC 2.0 over SSE(Server-Sent Events) 或 stdio。

    • 规定了通信的消息格式、可调用的方法(如 tools/listtools/callresources/read)和数据类型。

工作流程(以 Claude 询问今日天气为例):
  1. 初始化:Claude(客户端)启动时,会连接到用户预先配置好的“天气服务”MCP 服务器。

  2. 发现:Claude 向服务器发送 tools/list 请求,询问:“你有什么能力?”服务器回复:“我有一个叫 get_weather 的工具,它需要 location 参数。”

  3. 请求:当你问 Claude “旧金山今天天气如何?”时,Claude 决定调用这个工具。它向服务器发送 tools/call 请求,参数为 {“name": "get_weather", "arguments": {"location": "San Francisco"}}

  4. 执行:天气服务器收到请求后,执行内部逻辑(例如调用一个第三方天气API),获取旧金山的天气数据。

  5. 响应:服务器将天气数据按照标准格式返回给 Claude。

  6. 回复:Claude 接收到结构化的天气数据,组织成自然语言回复给你:“旧金山今天晴间多云,气温在15-20摄氏度之间。”

这个过程对用户是完全透明的,你只需要和 Claude 对话,它会在背后自动完成与 MCP 服务器的所有交互。


三、MCP 的主要功能

MCP 主要定义了两种类型的扩展:

  1. 工具(Tools)

    • 允许模型执行一个动作

    • 示例:执行代码、发送邮件、在日历上创建事件、控制智能家居、下单购物。

    • 对应 tools/call 方法。

  2. 资源(Resources)

    • 允许模型读取(或订阅)外部数据源的内容,将其作为上下文信息。

    • 示例:读取本地文件、查询数据库、获取实时股票价格、连接公司内部的Wiki或CRM系统。

    • 对应 resources/read 或 resources/subscribe 方法。


四、MCP 的核心优势与价值

  1. 突破模型固有局限

    • 让模型能够访问训练截止日期之后的新信息(实时数据)。

    • 让模型能够处理其未见过的大量私有或专有数据(公司内部文档),而无需昂贵的微调。

    • 赋予模型执行动作的能力,从“只会说”变成“能说能做”。

  2. 强大的安全性与可控性

    • 用户完全控制模型可以连接哪些服务器。模型不能随意访问未经授权的资源。

    • 通信通常发生在本地或受信任的网络环境中,敏感数据不必发送到第三方API。

    • 实现了最小权限原则,例如一个“计算器工具”服务器只能做数学计算,无法访问你的文件。

  3. 繁荣的生态系统

    • 对开发者友好:只需编写一次 MCP 服务器,理论上所有支持 MCP 的模型和应用(如 Claude, Cline, MCP Hub)都能使用它。

    • 开源与开放:协议本身开源,鼓励社区贡献和创新。现在已经有了大量开源的 MCP 服务器实现,用于连接 GitHub, Jira, PostgreSQL, 本地文件系统等。

    • 对企业级应用至关重要:企业可以为其内部系统(数据库、API、知识库)开发自定义的 MCP 服务器,让员工能通过自然语言安全地与这些系统交互。

  4. 降低成本和提高效率

    • 无需为了每一个新功能去微调或重新训练大模型。

    • 开发一次,多处使用。


五、MCP 与其他技术的区别

  • vs. Function Calling:MCP 是外部的、动态发现的协议;而 Function Calling 通常是内嵌在模型API中的、需要预先定义的。

  • vs. ChatGPT Plugins:Plugins 是 OpenAI 特定的封闭生态;MCP 是开放、跨模型的协议。

  • vs. LangChain/ToolCalling:LangChain 是一个用于构建链的高层次框架,它本身可以利用 MCP 作为其底层工具调用的一种方式。MCP 是更底层的协议标准。


六、现状与未来展望

  • 当前支持:MCP 由 Anthropic 大力推动,已在其产品 Claude Desktop 应用中全面集成。用户可以通过编辑一个简单的配置文件(claude_desktop_config.json)来添加自己需要的 MCP 服务器。

  • 社区发展:一个名为 MCP Hub 的社区项目正在兴起,类似于一个“服务器商店”,让用户可以轻松发现和安装各种功能的 MCP 服务器。

  • 未来方向:MCP 正在迅速成为 AI 应用架构中连接模型与外部世界的事实标准。预计未来几乎所有主流的 AI 助手和应用都会原生支持 MCP,使其成为AI基础设施的关键组成部分。

总结

MCP(Model Context Protocol)是一个革命性的开放协议,它通过标准化 LLM 与外部工具和数据源的交互方式,安全、高效地打破了AI模型的“信息茧房”和“无能之困”。它不仅是技术上的进步,更是生态和理念上的开放,为构建真正强大、实用且可控的AI应用奠定了坚实的基础。


文章转载自:

http://ud38gPP0.cyjdr.cn
http://tlgWH7tJ.cyjdr.cn
http://1E3HAbG5.cyjdr.cn
http://ZuCPESXx.cyjdr.cn
http://dHxDnU5S.cyjdr.cn
http://g4ptOc0i.cyjdr.cn
http://TbkyJjdE.cyjdr.cn
http://fDzUenfB.cyjdr.cn
http://3sIVFZU7.cyjdr.cn
http://FSuz3Xvp.cyjdr.cn
http://V9kmyp9G.cyjdr.cn
http://Bmbo3i1g.cyjdr.cn
http://euJsvl5a.cyjdr.cn
http://On4jebQw.cyjdr.cn
http://GYX81lIZ.cyjdr.cn
http://hgSOfMAD.cyjdr.cn
http://Zx5Ff7Bm.cyjdr.cn
http://CjysKAy3.cyjdr.cn
http://0fzo47kk.cyjdr.cn
http://DToXwdpY.cyjdr.cn
http://BvmlLpWF.cyjdr.cn
http://XBbqxEUW.cyjdr.cn
http://Cq9j5VRY.cyjdr.cn
http://d1xbF6P6.cyjdr.cn
http://GQdlx93B.cyjdr.cn
http://UeZXlp1G.cyjdr.cn
http://tyb8rfXd.cyjdr.cn
http://HGZeEb8b.cyjdr.cn
http://oQe1UI8y.cyjdr.cn
http://wdidH4YR.cyjdr.cn
http://www.dtcms.com/a/364823.html

相关文章:

  • 【54页PPT】基于DeepSeek的数据治理技术(附下载方式)
  • MySQL安装(如果之前有安装过MySQL,先执行下面的卸载流程)
  • Photoshop - Photoshop 触控手势
  • 网络安全A模块专项练习任务十一解析
  • Kubernetes 中为 ZenTao 的 Apache 服务器添加请求体大小限制
  • 02-Media-3-audio.py 音频输入输出,录音、播放、实时回放演示
  • nestjs 阿里云服务端签名
  • Spring boot3.x整合mybatis-plus踩坑记录
  • Ansible 核心配置与任务管理:主机清单、剧本,任务的导入、配置并行
  • Jenkins-Ansible部署discuz论坛
  • 如何利用SMS、RDS把服务从阿里云迁移到华为云
  • 嵌入式高薪岗位有哪些?
  • 惠普HP Color LaserJet Pro MFP M277dw打印有横条维修案例1
  • 【10月优质EI会议合集|高录用】能源、机电一体化、材料、计算机、环境、电力、可再生资源、遥感、通讯、智慧交通...
  • SCN随机配置网络时间序列预测Matlab实现
  • 执行一条select语句期间发生了什么?
  • Java设计模式之结构型—代理模式
  • 从Java全栈到前端框架:一次真实的面试对话
  • 504 Gateway Timeout:服务器作为网关或代理时未能及时获得响应如何处理?
  • 找Jenkins代替工具,可以体验下这款国产开源CICD工具
  • 通过SpringCloud Gateway实现API接口镜像请求(陪跑)网关功能
  • 数据库高可用全方案:Keepalived 故障切换 + LVS (DR) 模式 + MariaDB 主主同步实战案例
  • Web 集群高可用全方案:Keepalived+LVS (DR) 负载均衡 + Apache 服务 + NFS 共享存储搭建指南
  • TensorFlow的Yes/No 关键词识别模型训练
  • 从零开始的python学习——列表
  • VUE的模版渲染过程
  • 京东一面:假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如何将它们全部找出来?
  • Fusion to Enhance Fusion Visual Encoder to Enhance Multimodal Language Model
  • Linux应用(1)——文件IO
  • Delphi 5 中操作 Word 表格时禁用鼠标交互