前言

随着大语言模型(LLM)在应用层规模化推广,AI 系统的核心竞争力已经从“模型本身”逐渐转向“模型能做什么”。在真实业务场景中,模型往往不能单靠参数和推理来完成任务,而是必须与外部系统交互,例如数据库查询、调用内部 API、生成结构化内容、传输文件、使用提示模板等。因此,一套标准化的“模型与外部世界沟通的协议”变得极为重要。

模型上下文协议(Model Context Protocol,简称 MCP)应运而生。其目标是为 LLM 与外部工具建立一个统一、高度可扩展、可跨平台的连接层,使模型能够像使用“USB-C 接口”一样,标准化地访问工具、资源与工作流。本文将从协议原理、核心组件、架构模式、与 LlamaIndex 的深度协作方式、典型代码示例等多个角度进行全面分析,为希望将 LLM 接入复杂系统的开发者提供一份实用而深入的参考。


1 MCP 概述与价值

1.1 MCP 是什么?

模型上下文协议(MCP)是一种开源标准协议,用于允许大型语言模型以结构化 API 的方式访问外部系统。这些外部系统可以是:

  • 工具函数(Tools)
  • 文件、数据库等资源(Resources)
  • 可复用的提示模板(Prompts)

从本质上说,MCP 给 LLM 提供了一套标准化接口,使模型能够像调用本地函数一样安全、稳定、结构化地调用外部能力。
在这里插入图片描述

1.2 为什么需要 MCP?

在 MCP 出现之前,AI 应用通常需要使用非标准化的方式来暴露工具能力,例如:

方法 存在的问题
调用模型内置工具/插件系统 各家实现不同,兼容性差
自定义 API 网关 模型端无法自动理解 API 功能
通过文本提示引导模型写 JSON 弱结构化,易出错、难维护
各自实现调用协议 难以扩展、难以统一生态

MCP 的出现为此类问题提供了系统级解决方案,使得工具生态具备以下优势:

  1. 统一的接口标准
    各类模型、工具、服务器之间可以互通。
  2. 更安全
    采用结构化调用参数,无需靠提示规约来保证格式正确性。
  3. 更可扩展
    可自动发现工具、资源和模板。
  4. 更易集成
    MCP 有 Python、TypeScript 等多语言实现,支持各种运行平台。

1.3 MCP 的核心价值总结

MCP 的核心价值可归纳为以下三点:

  • 标准化(Standardization)
    统一模型与外部系统的连接方式。
  • 工具生态化(Ecosystemization)
    不同团队构建的工具可以共享协议、自动被模型识别。
  • 工作流化(Workflow Integration)
    轻松将模型纳入业务流程,实现自动化与系统化。

2 MCP 的架构与工作方式

2.1 客户端-服务器架构概览

MCP 使用标准的 客户端—服务器(Client-Server)架构,可分为三类角色:
在这里插入图片描述

2.1.1 MCP 主机(Host)

MCP 主机是调用 MCP 服务器的应用,例如:

  • Claude Desktop
  • IDE 插件(如 VS Code 插件)
  • AI 应用管理平台

它负责:

  • 连接多个 MCP 服务器
  • 管理 LLM 与工具交互
  • 提供统一的界面或接口

2.1.2 MCP 客户端(Client)

客户端负责在主机与服务器之间进行协议级通信,通常由主机内部实现。

2.1.3 MCP 服务器(Server)

这是 MCP 的关键组件,它会暴露如下三类能力:

  • 工具(Tools):具有输入/输出模式的函数
  • 资源(Resources):可查询的外部数据内容
  • 提示(Prompts):可复用、带参数的提示模板

2.2 MCP 三大核心能力

MCP 的核心功能非常明确:工具、资源、提示

2.2.1 工具(Tools)

工具是 MCP 最重要的能力,具有结构化输入输出,模型可以安全调用。例如:

  • 计算函数
  • 查询数据库
  • 调用外部 API
  • 执行工作流步骤

2.2.2 资源(Resources)

资源指 MCP 服务器可提供的数据源,例如:

  • 文件内容
  • 数据库查询结果
  • 本地目录树
  • 配置文件等

2.2.3 提示模板(Prompts)

提示具备参数化能力,使同一模板能被不同任务复用。例如:

{
  "template": "请总结以下文本:{text}",
  "args": ["text"]
}

使 LLM 可灵活地调用结构化提示模板。


3 MCP 与 LlamaIndex 的深度集成

LlamaIndex 是一个专注于数据集成、索引、检索增强生成(RAG)以及工作流自动化的框架,与 MCP 具有高度互补性。二者结合后,可以极大增强 AI 应用的灵活性、可扩展性与可组合性。

LlamaIndex 对 MCP 的支持方向

LlamaIndex 在生态中加入 MCP 的方式包括:

  • 现有 MCP 服务器 作为工具源

意味着你可以将 MCP 服务器的工具直接插入 LlamaIndex 的 Agent 或 RAG 工作流中。

  • LlamaIndex 工作流封装成 MCP 服务器

通过 workflow_as_mcp 直接把一个工作流暴露给 LLM,可被 Claude Desktop 或其他 MCP 主机使用。

  • 在 LlamaIndex 工作流中使用 LlamaCloud MCP 服务

包括:

LlamaExtract(文档结构化抽取)
LlamaParse(文档解析)
LlamaCloud 索引(知识库服务)

  • 将 LlamaIndex 工具转换为 MCP 工具

如 NotionToolSpec 等工具可以自动转成 MCP 工具端点。

这意味着你的 LlamaIndex 工具可以立即进入更大生态,与更多模型、平台兼容。


4 从工作流到 MCP:完整示例解析

4.1 将工作流转换为 MCP 服务器

LlamaIndex 提供方法 workflow_as_mcp,可以将任何工作流转换为 MCP 服务器。

示例代码如下:

from workflows import Context, Workflow, step
from workflows.events import StartEvent, StopEvent
from llama_index.tools.mcp.utils import workflow_as_mcp

class QueryEvent(StartEvent):
    query: str

class SimpleWorkflow(Workflow):
    @step
    def process_query(self, ctx: Context, ev: QueryEvent) -> StopEvent:
        result = f"Processed: {ev.query}"
        return StopEvent(result=result)

workflow = SimpleWorkflow()
mcp = workflow_as_mcp(workflow, start_event_model=QueryEvent)

开发者无需关心 MCP 数据格式,只需提供:

  • 工作流
  • 事件模型
  • 输出

即可自动生成可供 LLM 调用的 MCP 服务器。

4.2 使用 FastMCP 手写 MCP 服务器

from fastmcp import FastMCP

mcp = FastMCP("演示 🚀")
workflow = SimpleWorkflow()

@mcp.tool
async def run_my_workflow(input_args: QueryEvent) -> str:
    """两个数字相加"""
    if isintance(input_args, dict):
        input_args = QueryEvent.model_validate(input_args)

    result = await workflow.run(start_event=input_args)
    return str(result)

if __name__ == "__main__":
    mcp.run()

几个关键点:

  • @mcp.tool 将函数暴露给 MCP 主机
  • 自动处理参数验证
  • 可异步执行工作流
  • 一行代码即可启动服务器

5 MCP 工具转换:从 LlamaIndex ToolSpec 到 MCP

LlamaIndex 中许多工具(如 Notion、Slack、Airtable)可以以 ToolSpec 的形式导出。基于 MCP,可以让它们直接成为 MCC 服务器的端点。

示例:

from fastmcp import FastMCP
from llama_index.tools.notion import NotionToolSpec

tool_spec = NotionToolSpec(integration_token="your_token")
tools = tool_spec.to_tool_list()

mcp_server = FastMCP("工具服务器")

for tool in tools:
    mcp_server.tool(
        name=tool.metadata.name, 
        description=tool.metadata.description
    )(tool.real_fn)

这意味着:

  • 所有 LlamaIndex 工具都可以自动成为 MCP 工具
  • 模型无需知道 Notion API,只需调用 MCP 工具
  • 开发者将业务逻辑以工具形式集中管理,统一暴露给模型使用

6 LlamaCloud 与 MCP:云服务直接接入 MCP 生态

最新的 LlamaCloud 服务已经以 MCP 服务器形式提供,例如:

服务 功能
LlamaCloud Indexes 云端知识库存储与管理
LlamaExtract 文档结构化抽取
LlamaParse 文档解析、OCR、表格抽取

开发者可以在任何支持 MCP 的应用中调用这些云工具,而无需编写额外 API 逻辑。

例如,Claude Desktop 只需加载 LlamaCloud 的 MCP 服务器,即可立即访问这些能力。


7 MCP 在 AI 应用中的价值与未来趋势

7.1 MCP 让 AI 应用构建方式发生变化

传统 AI 应用的模式是:

模型 → 提示工程 → 手工调用 API → 整合结果

而采用 MCP 的模式变为:

模型 → 自动发现工具 → 工具以结构化方式调用 → 自动数据流转

这带来的改变包括:

  • 应用架构更模块化
  • 模型行为更稳定、可测试
  • 工具可复用、可扩展
  • 多模型可共享工具生态

7.2 MCP 未来趋势预测

未来 MCP 有望成为整个 AI 工具生态的统一协议。可能出现:

  • 各大模型接入 MCP
  • 企业内部系统以 MCP 暴露业务能力
  • 开源工具以 MCP 发布成插件
  • 平台级工具市场基于 MCP 构建

LLM 工具生态将像浏览器插件生态一样繁荣。


8 结语

模型上下文协议(MCP)的出现标志着 AI 应用进入了一个新阶段:从提示工程时代进入“标准化工具生态时代”。通过 MCP,我们可以让模型安全、高效、可扩展地访问外部系统,实现高度自动化的工作流和复杂任务执行。

LlamaIndex 的加入让 MCP 的使用门槛进一步降低,使开发者能够轻松构建 MCP 服务器,把工作流、工具、数据源、知识库等能力统一暴露给模型使用。无论你是构建企业内部 AI 平台,还是搭建个人 AI 工作流,MCP 都将成为不可忽视的基础能力。

随着生态进一步发展,我们有理由相信 MCP 将成为贯穿 AI 应用全栈的“通用接口标准”,就像 USB-C 之于硬件生态一样,成为连接 AI 能力的核心接口。


参考资料

  1. Model Context Protocol 官方文档
  2. LlamaIndex 官方指南与工具文档
  3. FastMCP GitHub 项目
  4. LlamaCloud 服务说明文档
Logo

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

更多推荐