一、MCP 是什么

MCP(Model Context Protocol) 是由 Anthropic(Claude 团队)主导提出的一个开放、通用的协议标准,目的是方便 AI 模型与各种服务、数据源无缝交互。这是 AI 应用层开发的一个重要突破,当前很多 AI 应用仍是 独立服务,与已有系统(邮件、数据库、日志、部署平台等)的整合较少。MCP 的出现,有助于把这些整合变为可能。
MCP 的核心目标之一是建立一个标准协议,让服务提供者可以按标准暴露“能力”(capabilities),让 AI 客户端/Host/Agent 能够知道这些能力、理解如何调用这些能力,并能在对话或任务中持续保持上下文。

二、MCP 与 Function Calling、AI Agent的区别

对象 差异
Function Calling Function Calling 提供的是模型调用外部函数(API)的一种方式,需要程序端定义 functions、输入输出 schema 等。适用于任务边界清晰、结构明确的情况。但它对于复杂多步对话、跨多个服务、上下文切换较频繁或包含状态的任务而言,会变得难以维护。MCP 则设计为协议标准,可以更系统、更结构化地管理这些服务、能力和上下文。
AI Agent / Agent 架构 Agent 是执行任务的实体(可能自主决定要做哪些动作、调用哪些服务等)。MCP 被视作一种“中间层”,它定义服务如何被暴露、能力如何被描述,让 Agent 或“Host”能更标准地使用这些服务。MCP 支持、增强 Agent 的能力,使得 Agent 在不同服务间切换、调用变得更可靠、更一致。
现有框架(LangChain, LlamaIndex, Vercel AI SDK 等) 虽然这些框架提供了 Agent 支持或工具封装,仍存在抽象层次不够统一、过于分散、对于复杂业务维护性差的问题。MCP 的标准化协议希望能减少这些重复造轮子的问题,并促使服务、工具生态更统一。

三、MCP 的架构

一个 MCP Server 的典型工作流程。

  • 组成部分 :MCP 系统中主要有下面几个角色/组件:

    1. MCP Hosts:启动 MCP 客户端/连接的应用程序。例如 Claude Desktop、Cursor、Cline 等。
    2. MCP Clients:Host 内部的组件,用来与 MCP Servers 保持 1:1 的连接。
    3. MCP Servers:暴露能力、工具/API/数据源;处理客户端请求,提供上下文、描述服务、接收请求调用、返回结果。
    4. Local Data Sources:本地的文件、数据库、API 等。
    5. Remote Services:外部的 API、第三方系统等。
  • 能力的描述与调用

    MCP Server 会向 Client 描述它能做什么(哪些工具/服务/能力),这些能力需要什么输入参数(schema),能力的输出是什么样子的。通常用类似 JSON Schema 的方式定义输入/输出。

  • 使用流程示例

    文章举例:构造一个 MCP Server 用来与 GitHub 集成,包括 “search_repositories”、 “search_issues”、 “create_issue” 三个能力。Client 向 Server 请求列出可用工具,然后在对话或任务中 “调用工具” → Server 按选定参数执行 API → 返回内容。

  • 上下文保持与任务编排

    MCP 不仅只是 “调用功能”,还涉及在多步任务中保持上下文,知道哪些能力被调用过、输出是什么、下一步可能需要什么。Agent / Client 可以根据上下文判断是否调用某个能力,并决定任务顺序。这样就能做比较复杂的自动化工作,比如“查询日志 → 找相关 GitHub issue → 如果未解决则发 slack 报告”等。

四、MCP 的价值

  1. 标准化与开放性:MCP 是开放协议,有共识基础。服务提供者可以按协议提供能力,而不是每个系统自己定义一套。
  2. 减少重复工作:开发者不必每次都重新实现 Agent 与各种 API/服务交互的部分,可以复用已有 MCP Servers/能力。
  3. 增强集成能力:可以更容易把模型集成到现有系统里,比如 IDE、数据库、本地及远程 API 等。让模型不仅“会说话”,而且能“做事”。
  4. 提升复杂任务处理能力:在任务链/多阶段/多服务的任务中,MCP 可以让 Agent 在多个能力/服务间顺序地调用,保持状态与上下文,从而处理复杂需求更可靠。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐