autorenew

模型上下文协议(MCP)(MCP (Model Context Protocol))

一句话定义: 一种开放协议,用于规定 AI 应用如何连接外部工具与信息源。实际访问权限仍由宿主、服务器和配置决定。

科普速读

  • 它是什么: MCP 为 AI 应用连接工具和数据定义了通用方式。
  • 适合什么场景: 通过统一接口连接 AI 客户端与外部服务。
  • 主要边界: 协议本身不能保证服务器安全,也不能授予工具调用权限。

概览

MCP 是一种开放协议,用于连接 AI 应用和外部工具、信息源。客户端和服务器通过宿主应用交换请求。AI 应用能访问什么,取决于配置和权限。

核心定义

标准定义

模型上下文协议(MCP)规定宿主应用、客户端连接和 MCP 服务器之间如何通信。服务器可以提供工具、资源或提示模板等能力。协议本身不会直接授予 AI 访问用户文件或系统的权限。

背景与发展

背景

在 MCP 出现前,应用通常需要为不同工具或数据源分别开发连接方式。MCP 为这些连接提供了共享协议。

发展

Anthropic 于 2024 年推出 MCP。此后协议持续演进。可选扩展和新功能需要客户端与服务器支持;不能假设所有实现都兼容。

工作机制(How It Works)

  1. 宿主应用启动或连接 MCP 客户端。
  2. 客户端连接服务器,并协商双方支持的能力。
  3. 服务器列出它已配置要提供的工具或资源。
  4. 宿主决定向模型提供哪些内容,以及是否需要用户批准工具调用。

建立连接并不意味着所有操作都安全。宿主和服务器仍要设置访问控制。

在软件测试与开发中的应用

  • 查询测试报告:服务器可以提供查询测试运行或读取报告的工具。
  • 读取仓库信息:服务器可以提供选定文件、问题记录或构建结果。
  • 受控操作:服务器可以启动获准的工作流。涉及共享系统的改动应有审批和日志。

优势与局限

优势

  • 复用集成方式:共享协议可以减少自定义连接代码。
  • 发现服务器能力:客户端可以读取服务器提供的工具和资源列表。

局限与风险

  • 实现不完全相同:不同客户端和服务器可能支持不同功能或协议版本。
  • 权限风险:服务器可能暴露敏感数据或操作。应限制权限并检查工具行为。
  • 数据不一定最新:数据时效取决于连接的数据源和服务器实现。

与相近术语对比

术语主要作用
MCP连接 AI 应用与工具、上下文来源
函数调用让模型通过特定模型 API 请求调用工具
REST API让软件与 Web 服务交换请求

MCP 可以承载工具交互,但不能代替服务器背后使用的 API。

实施建议(Best Practices)

  • 先使用只读权限,确有需要时再增加写入权限。
  • 检查服务器身份、可用工具和所需权限。
  • 对有破坏性或会影响外部系统的操作要求确认。
  • 记录工具调用,并测试失败处理。
  • 依赖可选功能前,确认客户端和服务器都支持。

常见误区(Pitfalls)

  • 把 MCP 当作安全边界:协议不会替宿主或服务器实施所有权限控制。
  • 以为“一次编写,到处运行”:不同实现支持的功能和策略可能不同。
  • 以为数据一定最新:连接的服务可能使用缓存,或延迟更新。

FAQ

MCP 如何用于软件测试?

团队可以连接一个提供测试报告查询工具的服务器。服务器应限制该工具能够访问的报告范围。

MCP 能保证工具调用安全吗?

不能。宿主和服务器需要控制访问、验证输入,并在需要时要求批准。启用前应了解实际操作。

相关资源

相关词条

外部参考

分享