MCP(Model Context Protocol)是一个开放协议,用于标准化应用程序如何向大语言模型(LLM)提供上下文。可以将MCP比喻为AI应用程序的USB-C接口 - 就像USB-C为设备连接各种外设提供标准化方式一样,MCP为AI模型连接不同的数据源和工具提供了标准化的方式。
MCP主要帮助开发者在LLM之上构建代理和复杂工作流。它提供以下核心优势:
- 预构建集成列表,LLM可以直接接入
- 在不同LLM提供商和供应商之间灵活切换的能力
- 在基础设施中保护数据的最佳实践
MCP采用客户端-服务器架构,主要包含以下组件:
-
MCP主机:
- 如Claude Desktop、IDE或AI工具等需要通过MCP访问数据的程序
-
MCP客户端:
- 与服务器保持1:1连接的协议客户端
-
MCP服务器:
- 通过标准化的模型上下文协议暴露特定功能的轻量级程序
-
数据源:
- 本地数据源:MCP服务器可以安全访问的计算机文件、数据库和服务
- 远程服务:MCP服务器可以连接的通过互联网提供的外部系统(如API)
- 可以被AI模型调用的函数
- 需要用户批准才能执行
- 示例:获取天气预报、查询数据库等
- 可以被客户端读取的类文件数据
- 如API响应或文件内容
- 示例:文档、配置文件等
- 帮助用户完成特定任务的预设模板
- 优化AI模型的输出
- 示例:特定格式的写作模板
-
扩展性
- 让AI模型能够访问外部工具和实时数据
- 可以根据需求添加新的功能和服务
-
标准化
- 提供统一的交互协议
- 简化开发和集成过程
-
安全性
- 通过用户授权机制确保安全使用
- 控制AI模型的权限范围
-
灵活性
- 可以根据需求自定义各种功能
- 支持多种编程语言和平台
以天气查询为例,通过MCP:
- AI模型可以获取实时天气数据
- 用户可以询问"今天会下雨吗?"
- AI调用相应的天气API获取数据
- 用自然语言回答用户的问题
MCP目前支持两种标准传输方式:
- stdio
- HTTP with SSE
同时也允许自定义传输机制。需要注意的是,当前MCP客户端-服务端通信传输机制的实现仅限于本地通信,远程连接的支持计划在2025年的路线图中逐步实现,包括:
- 认证授权
- 服务发现
- 无状态操作等关键功能
MCP作为一个强大而灵活的解决方案,为AI应用程序提供了标准化的上下文提供方式。它不仅简化了AI模型与外部工具和数据源的集成过程,还确保了安全性和可扩展性。通过MCP,开发者可以更容易地构建复杂的AI应用,使AI模型能够更好地服务于实际应用场景。