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应用奠定了坚实的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北京地铁1号线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值