游乐游手机版
首页/AI教程/文章详情

请提供原始文章标题

时间:2026-05-31 14:03
这份报告基于2026年5月31日的最新数据,协议版本为2024年11月5日发布的稳定版,目前由Linux Foundation Agentic AI Foundation(2025年11月起)维护。先简单说几个核心判断:MCP正在从一个实验性协议快速演变为AI应用与外部系统互操作的事实标准,其生态规

这份报告基于2026年5月31日的最新数据,协议版本为2024年11月5日发布的稳定版,目前由Linux Foundation Agentic AI Foundation(2025年11月起)维护。先简单说几个核心判断:MCP正在从一个实验性协议快速演变为AI应用与外部系统互操作的事实标准,其生态规模、平台支持和社区热度都已经到了不容忽视的阶段。

MCP

一、MCP 是什么?

Model Context Protocol(模型上下文协议,MCP) 是由 Anthropic 于 2024 年 11 月 25 日发布的开放标准协议,旨在解决 AI 应用与外部系统之间的标准化连接问题

核心类比

类比说明
USB-C 接口MCP 是 AI 应用的"通用接口",任何支持 MCP 的客户端都能接入任何 MCP 服务器
插件协议类似浏览器插件、VSCode 扩展的协议层,但专为 AI 设计
解决的核心痛点每个 AI 平台(Claude/Cursor/GitHub Copilot)都要重复适配相同的外部工具,MCP 让"开发一次,到处运行"成为现实

发展历程

2024-11-25   Anthropic 发布 MCP 协议(初版)
2025-06     社区月度新增 MCP 服务器从 135 个激增至 5,069 个
2025-09     MCP Registry 发布预览版
2025-11     MCP 正式移交 Linux Foundation Agentic AI Foundation 治理
2025-11     MCP 规范更新:新增 Tasks 原语 + Authorization 扩展(企业级能力)
2026-03     OpenAI、Google DeepMind、Microsoft 相继宣布支持 MCP
2026-05     GitHub MCP Registry 上线,awesome-mcp-servers 累计 85,000 Stars

二、核心架构

MCP 采用客户端-服务器架构,三个核心角色各司其职:

┌─────────────────────────────────────────────────┐
│ Host 主机应用                                    │
│(Claude Desktop / Cursor / IDE)                 │
│                                                  │
│  ┌──────────┐           ┌──────────┐             │
│  │ MCP Client│          │ MCP Client│            │
│  │ (1:1)    │          │ (1:1)    │              │
│  └────┬─────┘           └────┬─────┘             │
└───────┼──────────────────────┼───────────────────┘
        │    Transport Layer   │
        │  (stdio / HTTP SSE)  │
        ▼                      ▼
 ┌────────────┐       ┌────────────┐
 │ MCP Server │       │ MCP Server │
 │ (独立进程)  │       │ (独立进程)  │
 └────────────┘       └────────────┘
 提供:文件系统          提供:GitHub API

角色定义

角色定义职责示例
Host发起连接的 LLM 应用管理 MCP 客户端生命周期,聚合结果Claude Desktop、Cursor、Windsurf
Client运行在 Host 内的组件与单个 Server 维持 1:1 持久连接,处理消息帧、请求/响应关联内嵌在 Host 中的 MCP 客户端实例
Server提供能力的独立进程暴露上下文/工具/提示词模板,响应请求,推送通知filesystem、postgres、slack 等服务器

关键约束:每个 Client 只连接一个 Server;每个 Server 同时只服务一个 Client;一个 Host 可运行多个 Client 并行工作。


三、传输层(Transport Layer)

所有传输均使用 JSON-RPC 2.0 作为消息编码格式。

3.1 Stdio(标准输入输出)

适用场景:本地进程通信、命令行工具、简单 IPC

特性说明
Client → Server写入 Server 的 stdin
Server → Client写入 Server 的 stdout
日志输出Server 的 stderr 用于日志
优点无需网络配置,进程管理简单
缺点仅限本地,不支持远程访问

Python 服务端示例

from mcp.server import Server
from mcp.server.stdio import stdio_server

app = Server("example-server")

async def main():
    async with stdio_server() as streams:
        await app.run(streams[0], streams[1], app.create_initialization_options())

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

3.2 HTTP + SSE(服务端推送事件)

适用场景:远程通信、跨网络访问、需要服务端主动推送的场景

方向协议实现方式
Server → ClientSSE长连接 HTTP 响应,服务端推送消息
Client → ServerHTTP POST客户端向 /messages 端点发送请求

关键安全补充:HTTP SSE 传输必须额外实现认证(OAuth 2.1)和授权逻辑。

Python(Starlette)服务端示例

from mcp.server.sse import SseServerTransport
from starlette.applications import Starlette
from starlette.routing import Route

sse = SseServerTransport("/messages")

async def handle_sse(scope, receive, send):
    async with sse.connect_sse(scope, receive, send) as streams:
        await app.run(streams[0], streams[1], app.create_initialization_options())

async def handle_messages(scope, receive, send):
    await sse.handle_post_message(scope, receive, send)

starlette_app = Starlette(routes=[
    Route("/sse", endpoint=handle_sse),
    Route("/messages", endpoint=handle_messages, methods=["POST"]),
])

3.3 自定义传输

可实现 Transport 接口以支持专有协议、遗留系统对接等场景。


四、消息类型(JSON-RPC 2.0)

类型是否有id是否需要响应说明
Request✅ 有✅ 需要发起操作调用
Notification❌ 无❌ 不需要单向通知,即发即忘
Result✅ 有(匹配 Request 的 idN/A请求成功响应
Error✅ 有(匹配 Request 的 idN/A请求失败响应

标准错误码

代码名称说明
-32700ParseErrorJSON 解析失败
-32600InvalidRequest无效的请求对象
-32601MethodNotFound方法不存在
-32602InvalidParams参数无效
-32603InternalError内部错误
-32000 以下自定义错误各服务器可自行扩展

五、连接生命周期与能力协商

初始化握手(Initialize Handshake)

Client ---> Server: initialize 请求(含 protocolVersion、capabilities、clientInfo)
Server ---> Client: initialize 响应(含 protocolVersion、capabilities、serverInfo)
Client ---> Server: notifications/initialized(单向通知,无 id)
=== 连接就绪,开始正常消息交换 ===

能力协商核心逻辑

  • Client 和 Server 在 initialize 阶段交换 capabilities 对象
  • 只有双方都声明支持的能力才会被启用
  • 这确保了前后端能力匹配,避免不支持的功能被调用

Client 能力示例

{
  "capabilities": {
    "roots": { "listChanged": true },
    "sampling": {}
  }
}

Server 能力示例

{
  "capabilities": {
    "resources": { "subscribe": true, "listChanged": true },
    "prompts": { "listChanged": true },
    "tools": { "listChanged": true },
    "logging": {}
  }
}

六、三大核心原语

MCP 服务器可暴露三种能力原语,均在初始化阶段通过 capabilities 声明。

6.1 Resources(资源)—— 只读上下文数据

控制方:应用层(Client 决定如何使用) 用途:为 LLM 提供额外的上下文信息
属性类型必填说明
uriString资源唯一标识符(如 file:///tmp/data.txt
nameString人类可读名称
descriptionString详细描述
mimeTypeStringMIME 类型
annotationsObject附加元数据

工作流

  1. resources/list → 获取资源列表(支持分页)
  2. resources/read → 读取资源内容(文本或二进制 base64)
  3. resources/subscribe(可选)→ 订阅资源变更通知

6.2 Prompts(提示词模板)—— 可复用交互模板

控制方:用户层(通常作为斜杠命令或可选操作暴露) 用途:标准化常见 LLM 交互模式
属性类型必填说明
nameString模板唯一名称
descriptionString用途描述
argumentsArray模板参数列表(含 name/description/required

工作流

  1. prompts/list → 获取可用提示词模板列表
  2. prompts/get → 传入参数,获取渲染后的提示词内容

示例:代码审查提示词模板,接受 code(必填)和 language(可选)两个参数。


6.3 Tools(工具)—— 可执行函数 ⭐

控制方:模型层(LLM 自主决定是否调用) 用途:让 LLM 能够执行操作、调用外部 API、查询数据库等 这是 MCP 最核心、应用最广泛的能力原语
属性类型必填说明
nameString工具唯一名称
descriptionString详细描述(LLM 据此决定是否调用,至关重要)
inputSchemaObjectJSON Schema 对象,定义输入参数

工作流

  1. tools/list → 获取可用工具列表(LLM 读取 descriptioninputSchema 来决定是否调用)
  2. tools/call → 执行工具,传入参数
  3. 返回结果(isError: false 为成功,isError: true 为失败)

七、MCP 生态系统现状(2026 年)

7.1 服务器类型分布(基于 1500+ 项目分析)

类别占比趋势代表服务器
文件系统~25%稳定@modelcontextprotocol/server-filesystem
搜索~20%稳定Bra ve Search、Google Custom Search MCP
数据库~15%稳定@modelcontextprotocol/server-postgresserver-sqlite
开发者工具快速增长
来源:https://cloud.tencent.com.cn/developer/article/2679258
上一篇快时尚品牌活动策划工作总结撰写指南与范文 下一篇如何掌握AI格式实用技巧有效提升工作效率
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
大班语文上册AI课件制作攻略轻松生成生动课件
AI教程 · 2026-05-31

大班语文上册AI课件制作攻略轻松生成生动课件

给大班孩子上语文课,课件怎么做才能既专业又有趣?这恐怕是很多幼儿教师和课程设计者都在琢磨的问题。语文是基础中的基础,但面对一群活泼好动、注意力容易分散的5-6岁孩子,传统的“黑板+粉笔”或密密麻麻的文字PPT,效果往往不尽如人意。 理想的课件,必须图文并茂、色彩鲜明,用生动的视觉元素和互动设计抓住孩

MacBook Pro M5合盖掉电13%?新机电池优化指南
AI教程 · 2026-05-31

MacBook Pro M5合盖掉电13%?新机电池优化指南

新入手的MacBook Pro M5,上周某天合盖放入包中,当时电量100%,第二天取出只剩87%。这显然不正常——难道休眠功能失效了?长此以往,电池健康度一年恐怕会骤降至80%以下吧。 简单搜索便知,此类问题绝非个例。V2EX论坛与各大苹果博客中,遇到合盖耗电的用户比比皆是。更有甚者,合盖一夜后直

Python初级中级高级全套视频教程
AI教程 · 2026-05-31

Python初级中级高级全套视频教程

Python学习路线概述:从入门到精通 对于计划系统学习Python的开发者来说,一份清晰且实用的学习路线图至关重要。本文按照从入门到精通的进阶路径,全面梳理并分级呈现了Python及其相关核心技术的知识体系,帮助你高效规划学习。 为方便大家边学边练,这里附上一份配套的视频教程资源,供参考学习:ht

用AI快速生成岗位说明书五步提升招聘效率与精准度
AI教程 · 2026-05-31

用AI快速生成岗位说明书五步提升招聘效率与精准度

一、怎么使用AI快速生成岗位说明书以提升招聘效率和精准度 在人才市场竞争日趋激烈的当下,如何精准且高效地吸引合适的人才,已成为企业必须攻克的核心战略课题。传统的招聘流程,尤其是岗位说明书(JD)的撰写环节,往往耗费大量时间与精力,且容易与实际市场需求脱节。如今,技术革新带来了全新解法:借助人工智能(

五个实用技巧高效提升公文AI写作效率与质量
AI教程 · 2026-05-31

五个实用技巧高效提升公文AI写作效率与质量

一、公文ai写作如何利用AI写作工具提升效率和质量 在快节奏的现代办公场景中,如何高效、高质量地完成公文写作,是许多从业者面临的共同挑战。如今,AI写作工具的介入,正在悄然改变这一局面。它不再是一个遥远的概念,而是切实提升文档处理效率、优化内容质量的实际助手。那么,这类工具究竟能带来哪些实质性的改变