概念
复制页面
MCP 官方文档中文版
开始使用
简介
示例 Servers
示例 Clients
快速上手
服务器开发
客户端开发
Claude 桌面版开发
教程
使用 LLMs 构建 MCP
调试 Debugging
调试器 Inspector
概念
核心架构
资源 Resources
提示词 Prompts
工具 Tools
采样 Sampling
根 Roots
传输 Transports
开发
新计划
规划
贡献
概念
复制页面
核心架构
了解 MCP 如何连接客户端、服务器和 LLM
模型上下文协议 (MCP) 构建在灵活、可扩展的架构之上,能够实现 LLM 应用程序和集成之间的无缝通信。本文档涵盖了核心架构组件和概念。
概述
#
MCP 遵循客户端-服务器架构,其中:
宿主(Hosts)
是启动连接的 LLM 应用程序(如 Claude Desktop 或 IDE)
客户端(Clients)
在宿主应用程序内与服务器保持 1:1 连接
服务器(Servers)
向客户端提供上下文、工具和提示
核心组件
#
协议层(Protocol Layer)
#
协议层处理消息组帧、请求/响应链接以及高级通信模式。
TypeScript
Python
关键类包括:
Protocol
Client
Server
传输层(Transport Layer)
#
传输层处理客户端和服务器之间的实际通信。 MCP 支持多种传输机制:
1.
标准输入/输出传输(Stdio Transport)
使用标准输入/输出进行通信
适用于本地进程
2.
HTTP with SSE 传输
使用服务器发送事件(Server-Sent Events,SSE)进行服务器到客户端的消息传递
使用 HTTP POST 进行客户端到服务器的消息传递
所有传输都使用
JSON-RPC
2.0 交换消息。 有关模型上下文协议消息格式的详细信息,请参见
规范
。
消息类型(Message Types)
#
MCP 具有以下主要消息类型:
1.
请求(Requests)
期望另一方做出响应:
2.
结果(Results)
是对请求的成功响应:
3.
错误(Errors)
表示请求失败:
4.
通知(Notifications)
是不需要响应的单向消息:
连接生命周期(Connection Lifecycle)
#
1. 初始化(Initialization)
#
1.
客户端发送带有协议版本和功能的
initialize
请求
2.
服务器响应其协议版本和功能
3.
客户端发送
initialized
通知作为确认
4.
正常的 message exchange (消息交换) 开始
2. 消息交换(Message Exchange)
#
初始化后,支持以下模式:
请求-响应(Request-Response)
:客户端或服务器发送请求,另一方响应
通知(Notifications)
:任一方发送单向消息
3. 终止(Termination)
#
任一方都可以终止连接:
通过
close()
清理关闭
传输断开连接
错误情况
错误处理(Error Handling)
#
MCP 定义了以下标准错误代码:
SDK 和应用程序可以在 -32000 以上定义自己的错误代码。
错误通过以下方式传播:
对请求的错误响应
传输上的错误事件
协议级别的错误处理程序
实现示例(Implementation Example)
#
这是一个实现 MCP 服务器的基本示例:
TypeScript
Python
最佳实践(Best Practices)
#
传输选择(Transport Selection)
#
1.
本地通信(Local Communication)
对于本地进程,使用标准输入/输出传输(stdio transport )
对于同机通信,效率高
简单的进程管理
2.
远程通信(Remote Communication)
对于需要 HTTP 兼容性的场景,使用 SSE
考虑安全影响,包括身份验证和授权
消息处理(Message Handling)
#
1.
请求处理(Request Processing)
彻底验证输入
使用类型安全的模式(schema)
优雅地处理错误
实施超时
2.
进度报告(Progress Reporting)
对于长时间运行的操作,使用进度令牌(progress tokens)
增量报告进度
在已知总进度时包括总进度
3.
错误管理(Error Management)
使用适当的错误代码
包括有用的错误消息
在发生错误时清理资源
安全注意事项(Security Considerations)
#
1.
传输安全(Transport Security)
对于远程连接,使用 TLS
验证连接来源
在需要时实施身份验证
2.
消息验证(Message Validation)
验证所有传入消息
清理输入
检查消息大小限制
验证 JSON-RPC 格式
3.
资源保护(Resource Protection)
实施访问控制
验证资源路径
监视资源使用情况
限制请求速率
4.
错误处理(Error Handling)
不要泄露敏感信息
记录与安全相关的错误
实施适当的清理
处理 DoS 场景
调试和监控(Debugging and Monitoring)
#
1.
日志记录(Logging)
记录协议事件
跟踪消息流
监控性能
记录错误
2.
诊断(Diagnostics)
实施健康检查
监视连接状态
跟踪资源使用情况
分析性能
3.
测试(Testing)
测试不同的传输
验证错误处理
检查边缘情况
负载测试服务器
修改于
2026-08-10 05:39:06
上一页
调试器 Inspector
下一页
资源 Resources