2025-07-14
Model Context Protocol (MCP) 使 AI 应用能够通过标准化接口安全地连接外部数据源、工具和服务。对于构建 AI 驱动应用的开发者来说,MCP 通过在大型语言模型和它们执行复杂任务所需的上下文之间提供一个通用的通信层,从而消除了对自定义集成的需求。
核心能力:
本指南深入技术层面,探讨 MCP 的架构、实施模式、安全考量以及生产部署的性能优化策略。

Model Context Protocol (MCP) 是一个开源标准,它定义了 AI 应用如何与外部系统、工具和数据源进行通信。 由 Anthropic 推出,MCP 创建了一个统一的接口,类似于 USB-C 标准化设备连接的方式——使开发者能够一次性构建集成,并在任何兼容 MCP 的 AI 应用中使用它们。
核心能力:
在 MCP 出现之前,将 AI 模型连接到外部系统需要为每个特定应用构建自定义集成。这种方法带来了几个关键挑战:
集成瓶颈:
构建 AI 应用的开发者面临一个根本性的权衡:要么投入大量工程资源来构建和维护集成,要么限制其应用的功能。
70% 的 AI 项目时间 花在了数据准备和集成上,而不是模型开发。 来源:Gartner
这种碎片化造成了几个下游问题:
安全漏洞: 每个自定义集成都实现了自己的身份验证、授权和数据处理逻辑。没有标准化,安全最佳实践差异很大,从而产生了潜在的攻击向量。
供应商锁定: 使用专有集成方法构建的应用无法在不进行重大重构的情况下轻松切换 AI 提供商或采用新模型。
生态系统增长受限: 构建集成的高昂成本阻碍了开发者创建专门的工具,限制了整个 AI 生态系统的扩张。
开发者社区从 IDE 生态系统中认识到了这个问题。在 Language Server Protocol (LSP) 出现之前,每个代码编辑器都需要为每种编程语言的自动完成和语法高亮等功能进行自定义实现。
LSP 通过创建一个标准协议解决了这个问题——使一个语言服务器能够与任何兼容 LSP 的编辑器协同工作。MCP 将同样的原则应用于 AI 集成,为连接 AI 应用与外部系统创建了一个“一次构建,随处使用”的模型。
Model Context Protocol 通过一个基于 JSON-RPC 2.0 的三组件架构来解决碎片化问题,确保了结构化和明确的通信。
| 传统方法 | Model Context Protocol |
|---|---|
| 每个应用自定义集成 | 单一服务器,多个客户端 |
| 不一致的安全模型 | 标准化的同意框架 |
| 专有通信 | 开放的 JSON-RPC 2.0 标准 |
| 工具可重用性有限 | 通用工具兼容性 |
| 维护开销高 | 集中式服务器更新 |
MCP 定义了三个主要组件,它们协同工作以实现安全、可扩展的 AI 集成:
MCP 主机 (Host): 用户与之交互的主要 AI 应用(例如,VS Code、Claude Desktop、自定义 AI 智能体)。主机管理用户界面,运行 LLM,并为 MCP 客户端提供沙盒环境。
MCP 客户端 (Client): 主机内的连接器层,用于发现、连接并与 MCP 服务器通信。客户端处理能力协商,并在主机和服务器之间路由请求,充当安全守门员。
MCP 服务器 (Server): 一个独立的进程,向 MCP 主机公开外部数据和功能。服务器可以通过标准化接口提供对 API、数据库、文件系统或任何外部服务的访问。
这种架构创建了清晰的系统边界。主机从不直接与服务器通信——所有交互都通过客户端进行,客户端可以在执行敏感操作前强制执行安全策略并获得用户同意。
MCP 规范 定义了服务器可以公开的四种主要能力类型:
工具是 AI 模型可以调用以执行操作的函数。每个工具都包含名称、描述和定义输入参数的 JSON 模式。
工作原理: 主机的 LLM 分析工具描述以确定要调用哪个函数。例如,当用户请求“为登录失败创建一个错误报告”时,LLM 会从 Jira MCP 服务器识别出一个 create_issue 工具,提取参数(title、description),并请求执行。
安全要求: 主机在执行工具前必须获得用户的明确批准,特别是对于写操作或敏感数据访问。
资源代表提供给 LLM 的类文件数据或上下文——包括文件内容、文档、数据库模式或 API 响应。
工作原理: 资源允许 LLM 访问其训练数据截止日期之后的数据。一个 file_system MCP 服务器可以提供源代码内容,使模型能够在无需手动复制粘贴的情况下分析和重构代码。
提示是通过斜杠命令(例如 /generateApiRoute)调用的预定义模板,通过结构化的起点简化常见任务。
工作原理: 服务器注册像 performSecurityReview 这样的提示,并带有参数(例如 filePath)。调用时,主机会结合用户输入和预定义指令构建一个详细的 LLM 请求。
采样使 MCP 服务器能够向客户端请求模型补全,为协作式多智能体工作流颠倒了典型的流程。
工作原理: 服务器可以获取一个大文档,使用采样请求 LLM 摘要,并返回简洁的结果——使服务器能够利用主机的 LLM 进行内部逻辑处理。
官方 MCP 快速入门指南 提供了 TypeScript、Python 和 C# 的 SDK。本示例演示了如何使用 Python 构建一个 GitHub 问题检索服务器。
步骤 1:环境设置
使用你偏好的包管理器安装 MCP Python SDK:
bash# 使用 uv(官方文档推荐)
uv pip install "mcp[cli]"
步骤 2:初始化服务器
实例化服务器类。FastMCP 类使用类型提示和文档字符串自动生成工具定义:
pythonfrom mcp.server.fastmcp import FastMCP
# 初始化 FastMCP 服务器
mcp = FastMCP("github_issue_server")
步骤 3:定义一个工具
创建一个用 @mcp.tool() 装饰的函数。文档字符串成为面向 LLM 的描述,而类型提示定义了参数:
python@mcp.tool()
async def get_github_issue(repo: str, issue_number: int) -> str:
"""
从 GitHub 仓库获取特定问题的详细信息。
Args:
repo: 仓库名称,格式为 'owner/repo'。
issue_number: 要获取的问题编号。
"""
# 此处是 GitHub API 调用逻辑
# 用于演示的模拟响应
if repo == "owner/repo" and issue_number == 123:
return "问题 123:登录按钮不工作。状态:开启。"
return f"在 {repo} 中未找到问题 {issue_number}。"
步骤 4:运行服务器
添加入口点以启动服务器进程。MCP 服务器通过标准 I/O (stdio) 进行本地执行通信,或通过 HTTP 进行远程访问:
pythonif __name__ == "__main__":
# 通过标准输入/输出运行服务器
mcp.run(transport='stdio')
步骤 5:配置主机
将像 VS Code 或 Claude Desktop 这样的 MCP 主机连接到你的服务器。当你询问“owner/repo 中问题 123 的状态是什么?”时,AI 会智能地调用你的 get_github_issue 工具。
MCP 为生产 AI 应用提供了几种强大的集成模式:
场景: 销售团队需要从内部 CRM 数据中获得 AI 驱动的洞察。
传统方法: 需要 2-3 周时间构建自定义集成,包括安全审查、测试和部署。
Model Context Protocol: 部署一个公开只读 CRM 工具的单一 MCP 服务器。任何兼容 MCP 的 AI 应用(Claude Desktop、VS Code、Jenova)都可以立即访问数据。
主要优势:
场景: 工程团队希望 AI 协助进行代码审查、问题跟踪和文档编写。
传统方法: 在每个 AI 工具中为 GitHub、Jira 和 Confluence 构建单独的集成。
MCP 实现: 部署三个 MCP 服务器(GitHub、Jira、Confluence)。开发者使用任何兼容 MCP 的 IDE 或 AI 助手同时访问所有工具。
主要优势:
场景: 现场服务技术人员需要在移动设备上通过 AI 访问设备手册、库存系统和票务工具。
传统方法: 为每个后端系统构建原生移动集成,为 iOS 和 Android 维护独立的 codebase。
MCP 解决方案: 为每个后端系统部署 MCP 服务器。像 Jenova 这样的移动 AI 应用通过 HTTP 连接到远程 MCP 服务器,无需特定平台的集成代码即可提供全部功能。
主要优势:

虽然 MCP 提供了一个安全框架,但实施责任在于开发者。MCP 安全最佳实践 文档概述了关键风险:
风险: 授予 MCP 服务器过于宽泛的后端访问权限。
缓解措施: 将服务器权限范围限定在所需的最小功能。销售数据服务器应只对特定数据库表具有只读访问权限,而不是对整个数据存储具有写权限。
实施:
风险: 攻击者在数据源(文档、数据库条目)中植入恶意指令,MCP 服务器检索并传递给 LLM。
缓解措施: 实施输入清理和输出编码。将所有外部数据视为不可信,即使来自内部系统。
实施:
根据 Protect AI 的 MCP 安全 101,间接提示注入是 AI 安全领域最重要的新兴威胁之一。
风险: 在有状态的 HTTP 实现中发生会话劫持,攻击者获取会话 ID 以冒充合法用户。
缓解措施: MCP 规范强制要求服务器不得使用会话进行身份验证。将会话 ID 绑定到从安全令牌派生的用户特定信息。
实施:
风险: 充当其他服务代理的 MCP 服务器可能被诱骗使用提升的权限执行未经授权的操作。
缓解措施: 实施适当的验证和用户同意流程。绝不能仅根据来源就假定请求是合法的。
实施:
与传统 API 相比,MCP 服务器面临独特的性能限制。它们为生成大量并行请求的 AI 模型提供服务,需要特定的优化策略。
挑战: 服务器返回的每个字符都会消耗 LLM 的上下文窗口。带有不必要字段的冗长 JSON 响应会迅速耗尽可用上下文,降低推理能力。
优化策略:
示例: 不要返回包含 20 多个字段的完整用户对象,而是只返回 AI 当前任务所需的 3-4 个字段。
挑战: 所有工具定义在会话开始时加载到模型的上下文中。带有冗长描述的复杂模式在用户交互开始前就可能消耗数千个 token。
优化策略:
衡量: 监控工具定义中的 token 使用情况。如果定义超过总上下文窗口的 10%,则进行重构以求简洁。
挑战: 网络延迟在 MCP 典型的对话式、多轮交互中被放大。服务器与 AI 基础设施之间的地理距离会引入显著延迟。
优化策略:
衡量: 目标服务器响应时间在 95% 的请求下低于 200 毫秒。
挑战: 对相同数据的重复请求会浪费 token 并增加延迟。
优化策略:
示例: 文件系统服务器可以缓存文件内容并基于 TTL 进行失效,从而减少磁盘 I/O 和响应时间。
虽然构建 MCP 服务器可以实现集成,但开发者和用户需要强大的客户端来有效地使用它们。Jenova 是第一个专为 MCP 生态系统构建的 AI 智能体,它作为一个智能体客户端,可以轻松地大规模连接和利用远程 MCP 服务器。
对于构建 MCP 服务器的开发者来说,Jenova 提供了一个理想的测试和部署目标。对于最终用户,它通过几个关键能力释放了协议的全部潜力:
无缝服务器集成: 将 Jenova 连接到远程 MCP 服务器,它们的工具无需配置开销即可立即用于复杂的工作流。
多步智能体工作流: Jenova 理解高层目标,并通过链接来自不同 MCP 服务器的工具来规划多步任务。示例:使用 GitHub 服务器识别新功能,使用报告服务器生成摘要,并使用 Slack 服务器通知产品团队。
可扩展的工具管理: Jenova 基于多智能体架构构建,支持大量工具而不会降低性能。这比有硬性限制的客户端(例如 Cursor 的 50 个工具上限)具有显著优势,使 Jenova 成为大规模可靠集成工具的最有能力的智能体。
多模型智能: Jenova 与领先的 LLM(GPT-4、Claude 3、Gemini)合作,通过智能模型选择确保不同任务类型的最佳结果。
移动优先设计: Jenova 在 iOS 和 Android 上完全支持 MCP,使非技术用户能够访问 MCP 生态系统,用于日历管理和文档编辑等日常任务。
对于构建 MCP 服务器的开发者,Jenova 提供:
了解 MCP 与其他新兴标准和框架的关系,有助于开发者做出明智的架构决策。
这些协议是互补的,而非竞争关系。正如 Logto 关于 A2A 和 MCP 的博客文章 中所解释的:
MCP 处理“垂直”集成: 智能体如何连接到工具和数据源。
A2A 处理“水平”集成: 不同智能体如何相互通信和委派任务。
组合架构: 一个系统可能使用 A2A 让智能体委派任务,而单个智能体则使用 MCP 访问完成任务所需的工具。
示例工作流:
像 LangChain 和微软的 Semantic Kernel 这样的框架用于构建智能体逻辑和编排。它们可以用来创建 MCP 主机或客户端。
关系: 这些框架可以在其生态系统内将 MCP 服务器作为工具来使用,将框架的编排能力与 MCP 的标准化连接性相结合。
集成示例:
优势:
是的,MCP 是一个开源标准,没有许可费用。开发者可以自由构建 MCP 服务器和客户端。但是,你通过 MCP 连接的 AI 模型和服务可能有自己的定价(例如,OpenAI API 成本,Anthropic Claude 定价)。
MCP 构建在 JSON-RPC 2.0 之上,而不是 REST。主要区别:
MCP 服务器可以包装 REST API,为 AI 应用提供一个标准化的接口来使用它们。
MCP 是模型无关的。任何实现 MCP 客户端规范的 AI 应用(主机)都可以使用 MCP 服务器。这包括使用 GPT-4、Claude、Gemini 或像 Llama 这样的开源模型的应用。
MCP 本身不需要帐户。但是:
是的,可以从移动设备访问 MCP 服务器。像 Jenova 这样的 AI 应用在 iOS 和 Android 上提供完整的 MCP 支持,通过 HTTP 连接到远程 MCP 服务器。
MCP 提供了一个安全框架,但实施质量决定了实际的安全性。对于企业部署,请遵循 MCP 安全最佳实践:
Model Context Protocol 代表了 AI 应用开发的根本性转变。通过标准化 AI 模型连接外部系统的方式,MCP 实现了一个可组合的生态系统,开发者可以一次性构建能力并在任何地方部署它们。
对于开发者,MCP 提供:
随着越来越多的 AI 应用采用 MCP,以及像 Jenova 这样的平台使协议对日常用户可用,真正可组合、具有上下文感知能力的 AI 的愿景正从概念变为现实。现在就是开始在这个基础上构建的时候。
开始使用 MCP,加入不断壮大的开发者生态系统,共同创造下一代 AI 驱动的工具。