返回市场
模型上下文协议自由软件

模型上下文协议自由软件

作者:juan-campuzano2 星标更新:2025-10-10

项目介绍

模型上下文协议(MCP)

演示链接

简介

模型上下文协议(MCP) 是一个开放标准,旨在统一人工智能模型与数据源、工具及外部系统之间的通信方式。

MCP 提出了一种通用协议,定义了模型如何能够发现、查询和执行资源,以一种一致且安全的方式。其主要目的是减少人工智能生态系统中的碎片化,促进模型、服务和应用程序之间的互操作性。MCP借鉴了软件工程的经典原则——如抽象、模块化和解耦——但将其应用于生成式模型的新背景中。


背景与问题

在MCP之前,人工智能模型通过临时集成与外部数据交互:定制的API、特定的SDK和专有的格式。这种方法产生了多个问题:

  • 高昂的维护成本:每个模型都需要针对每个服务的独特适配器。
  • 供应商之间的不兼容性:身份验证、数据格式和端点结构的不同使得互操作性变得困难。
  • 缺乏标准化:没有一种通用的方法来向人工智能模型暴露资源或功能。
  • 技术依赖性:模型被绑定到特定平台。

MCP作为一层抽象,标准化了人工智能模型与外部世界的通信,就像HTTP标准化了客户端与Web服务器之间的通信一样。


协议基础

MCP定义了一组结构概念约定,允许模型通过统一接口访问信息或执行动作。

1. MCP服务器

MCP服务器是该协议的核心。它向模型暴露三种类型的实体:

  • 工具:可执行的功能或动作。
  • 资源:数据源或结构化的引用。
  • 提示:预定义的模板或配置,指导交互。

服务器可以实现这些组件中的任何一个,并通过模型可读的JSON描述符声明它们。

基本服务器描述示例:

{
  "name": "演示MCP服务器",
  "author": "John Doe",
  "tools": ["get_weather", "say_hello", "fetch_resources"],
  "resources": ["weather://{city}", "articles://{slug}"]
}

这样,模型可以动态地发现服务器的能力并决定如何使用它们。


2. 工具

工具是模型可以执行的动作。 每个工具都有一个标识符、描述以及输入/输出模式。

示例:

{
  "name": "get_weather",
  "description": "获取特定城市的天气预报",
  "input": { "city": "string" },
  "output": { "temperature": "number", "conditions": "string" }
}

工具允许模型超越文本,通过协议调用实际函数。


3. 资源

资源代表模型可以访问的结构化数据源。 遵循类似URI的格式,这有助于明确识别其来源和类型。

示例:

weather://medellin
greetings://juan
articles://model-context-protocol

每个资源由服务器定义了一个模式,并可以根据设定的权限被模型查询或操作。


4. 提示

提示是封装交互模式的预定义模板。 它们允许标准化复杂输入、共享配置或定义预期行为。

示例:

{
  "id": "summarize_emails",
  "description": "生成用户最近100封电子邮件的摘要",
  "template": "给我一个我最近110封邮件的摘要。"
}

这种机制允许模型基于版本化、可重用且有文档记录的提示工作,从而提高响应的一致性。


概念架构

MCP可以被视为位于人工智能模型和外部系统之间的一个中间层

[ 人工智能模型 ]
        │
        ▼
   ┌──────────────┐
   │  MCP服务器   │
   ├──────────────┤
   │ 工具         │ → 动作
   │ 资源         │ → 结构化数据
   │ 提示         │ → 模板和指南
   └──────────────┘
        │
        ▼
[ 外部来源:Outlook、GitHub、本地文件、API等 ]

模型发送一个标准化请求给服务器,后者将其转换为对特定资源或工具的具体调用,并返回一个与底层来源无关的一致响应。


设计哲学

MCP基于几个原则,使其与自由软件和开放协议的理念相一致:

  1. 互操作性:任何模型都可以与任何MCP服务器通信,无论其提供商或技术。
  2. 解耦:模型不需要依赖特定的API,只需遵守协议定义的契约。
  3. 扩展性:新的工具、资源或提示可以添加而不改变基础结构。
  4. 透明度:协议及其实施是开源的。
  5. 中立性:MCP不属于任何公司,而是属于社区,遵循FLOSS理念。

使用案例

  1. 个人自动化:一个模型可以通过单一协议访问电子邮件、天气和本地文件。
  2. 企业集成:连接内部系统与人工智能模型,无需创建特定的SDK。
  3. 通用插件:可重复使用的MCP服务器,不同模型可以无改动地消费。
  4. 可重复研究:用于在人工智能团队间分享数据管道的标准工具。

与人工智能生态系统的关系

MCP自然融入了新兴的AI代理情境计算范式,其中模型需要安全访问动态信息。 其设计使模型能够:

  • 发现环境能力。
  • 控制执行动作。
  • 维护关于其行动和所交互资源的跟踪记录。

换句话说,MCP成为人工智能的“通用API”。


结论

模型上下文协议标志着人工智能系统演进的一个转折点。 正如HTTP促进了网络上的互操作性,MCP可能成为新一代开放和模块化智能应用的基础。 其力量不在于复杂性,而在于其概念对称性:一个模型可以在同一标准语言下理解并利用工具、数据和提示。


参考文献

  • Anthropic (2024). 介绍模型上下文协议
  • FLOSS MCP社区:https://github.com/modelcontextprotocol
  • OpenAI开发者论坛:关于多模型环境中MCP集成的讨论。
  • 模型上下文协议(MCP):景观、安全威胁及未来研究方向:Arxiv链接