为何都在关注MCP,它有什么魅力🤔

488 阅读6分钟

引言💭

最近也是被MCP霸屏了,趁着征文活动,我也来看看MCP有什么魅力。📑

一、什么是 MCP?

Model Context Protocol(MCP)是由 Anthropic 提出的一个开放协议,旨在为 LLM 提供标准化的方式来访问外部上下文资源。MCP 将模型作为一个具有请求能力的客户端,允许它通过 JSON-RPC 接口与外部系统交互,获取实时数据、内容片段、系统信息,进而生成更精准、上下文感知的响应。

简单来说 MCP 的设计理念类似于 USB-C 在硬件接口中的作用:提供一致、通用、可扩展的连接标准。它模型无关、平台无关,可以被集成到任意语言模型、开发工具和系统中。

image.png

二、MCP 的核心架构

MCP 架构主要由以下三部分组成:

1. MCP 客户端(Client)

  • 部署位置:位于语言模型的一侧,通常集成在大模型的运行时环境中。

  • 核心职责

    • 构造请求:当语言模型需要调用外部工具(如数据库、搜索引擎、插件等)时,MCP 客户端负责将这些调用请求格式化为符合 JSON-RPC 协议的数据结构。
    • 发送请求:将请求传输到 MCP 服务器。
    • 处理响应:接收 MCP 服务器返回的调用结果,对其进行解析,并将有用信息传递回语言模型,用于生成回答或进一步处理。
  • 设计目标:抽象化模型调用过程,隐藏底层 API 的复杂性,使语言模型可以“像调用函数一样”使用外部工具。

2. MCP 服务器(Server)

  • 部署位置:位于外部工具或系统的一侧,比如数据库、计算服务、Web 服务等。

  • 核心职责

    • 接收请求:监听来自 MCP 客户端的 JSON-RPC 请求。
    • 任务调度:根据请求中指定的方法名,选择对应的底层逻辑或 API。
    • 执行调用:实际调用目标系统或工具的接口。
    • 构造响应:将调用结果封装为 JSON-RPC 的响应结构,返回给客户端。
  • 设计优势

    • 支持能力注册与声明:可通过能力协商让客户端知道自己支持哪些方法。
    • 易于扩展:支持动态添加或更改调用接口,适配新的工具或系统。

3. 协议标准(使用 JSON-RPC 2.0)

  • 通信协议:MCP 使用 JSON-RPC 2.0 作为标准的通信协议。

  • 核心功能

    • 方法调用(Method Invocation):语言模型可通过 MCP 客户端发起方法调用,格式包括 methodparamsid 等字段。
    • 错误处理:协议定义了一套标准错误码(如 -32601 表示方法未找到),有助于模型进行故障恢复或降级处理。
    • 双向通信支持:虽然模型端大多数是请求方,但也支持服务器主动发送通知。
    • 能力协商:支持模型与服务器之间进行功能声明(如支持哪些方法、参数格式等),实现动态能力匹配和适配。
  • 优点

    • 简洁:JSON 格式轻量易读,易于调试。
    • 标准化:促进客户端和服务器之间的兼容性。
    • 可扩展:允许定义自定义方法和扩展字段。

三、MCP的生命周期

  1. 能力协商

    • 客户端启动时,向 MCP 服务器请求其支持的方法和参数格式
    • 服务器返回支持的功能说明(如可用工具列表)
  2. 请求构建

    • 模型决定使用某个工具
    • MCP 客户端构造一个 JSON-RPC 请求,包括方法名、参数、请求 ID 等
  3. 请求发送与接收

    • 客户端将请求发送给 MCP 服务器
    • 服务器接收到请求并解析其内容
  4. 执行与响应构建

    • MCP 服务器调用对应的工具或 API,处理模型请求
    • 将执行结果封装为 JSON-RPC 响应返回
  5. 响应处理与反馈

    • 客户端接收响应,将结果解析
    • 将结果提供给模型继续生成内容或下一步调用

image.png

四、MCP 与特定工具的集成

MCP 的强大之处在于它的通用性。它可以将 AI 模型与各种工具打通,赋予模型访问实时上下文的能力。以下介绍几个典型的工具集成案例。

1. 与 GitHub 集成:让 AI 理解代码上下文

应用场景:代码解释、Pull Request 自动生成、文档补全、问题追踪等。

集成方式

  • MCP Server 通过 GitHub API 获取代码仓库内容、提交历史、PR 列表等;
  • 暴露如 getFileContent, listRepositories, getPRDiff 等方法;
  • 模型可发起请求,获取所需文件内容并在此基础上生成响应;
  • 鉴权使用 OAuth 或 GitHub PAT(个人访问令牌)。

2. 与 PostgreSQL 集成:自然语言访问数据库

应用场景:企业 BI 查询、数据分析、SQL 自动生成与解释。

集成方式

  • MCP Server 连接 PostgreSQL 数据库实例;
  • 实现接口如 describeSchema, executeQuery, sampleTableRows
  • 模型根据用户自然语言提问生成 SQL,并调用 MCP Server 执行查询;
  • 返回结果用于生成图表、报告或继续追问。

3. 与 Slack 集成:打造上下文感知的企业助理

应用场景:会议总结、消息回复、项目协作追踪、任务提取。

集成方式

  • MCP Server 对接 Slack API,获取频道消息、用户信息;
  • 方法如 getMessages(channel_id), postMessage, searchMessages
  • 模型通过 MCP Server 获取聊天历史,实现实时回复与总结。

4. 与文档系统(如 Notion、Google Docs)集成:构建企业知识大脑

应用场景:知识检索、会议纪要生成、文件理解与改写。

集成方式

  • MCP Server 使用文档 API 实现 searchDocuments, getDocumentContent, updateContent
  • 模型可搜索知识内容,整合多文档回答问题或生成摘要;
  • 支持版本控制与用户权限校验。

五、MCP 的魅力之处😎

  1. 模型智能能力的外延

    • MCP 让语言模型不再局限于“只说不做”,而能调用计算资源、工具、数据库等外部系统,提升任务完成能力和实用性。
  2. 协议驱动,标准统一

    • 使用 JSON-RPC 2.0 协议,实现了通信结构标准化、调用逻辑清晰、错误处理统一,方便开发、调试与跨系统集成。
  3. 灵活扩展、解耦架构

    • 客户端与服务器解耦,可以灵活接入任意工具或服务,实现**“插拔式能力扩展”**,不影响模型主体结构。
  4. 天然适配多工具协作

    • 支持能力协商和方法发现,适合构建多工具协同的智能体框架,如插件系统、工作流引擎等。
  5. 安全性与控制力

    • MCP 可以设定调用权限、参数范围和响应格式,提高工具调用的可控性与安全性,便于在生产环境中使用。
  6. 构建“模型操作系统”的基石

    • 它是语言模型走向操作系统级生态的关键协议基础,为未来构建类 Agent 的系统提供了架构支持。

结语✒️

MCP 是连接“语言智能”与“计算能力”的桥梁,让大模型真正具备“动手做事”的能力,而不仅仅是“理解语言”。

猫抓爱心 (2).gif