MCP 客户端是什么?宿主连接服务端时的职责与边界
用编辑器接入两种资料服务解释 MCP 客户端,区分宿主、用户与服务端,说明能力发现、版本兼容及授权控制,避免把连接成功当成功能可用。
先理解这个概念
MCP客户端是AI宿主中与MCP服务端通信的协议组件,负责按支持的方式发现能力并交换请求和结果。一个宿主可以管理多个客户端以连接不同服务。客户端不是聊天用户,也不是模型本身;接入成功只说明部分通信条件满足,实际工具支持、身份权限和返回内容仍需分别验证。
宿主管理客户端而不是把两者等同
例如编辑器同时连接项目问题服务与文件服务,可以由宿主管理对应客户端。用户看到的是同一个助手界面,底层却可能有不同连接和权限。不能因为其中一个服务可用,就推断另一个服务也已登录或支持同样的能力。
官方架构把客户端定义为获取服务端上下文的组件。服务端可能本地运行,也可能通过网络提供接口。客户端的位置与用户身份需要分开理解,远程连接也不天然获得更高权限,具体访问仍受服务约束。
能力发现与版本兼容决定可用交互
客户端应了解服务支持的协议版本和能力,再调用相应工具或读取资源。当前规范会演进,旧实现不一定支持最新功能。接入错误时先核对两端约定,不能把所有失败都归因于模型不会使用工具。
列出某个工具以后,还需确认参数和返回格式。宿主可以把适用能力提供给模型,但模型生成的调用请求仍要经过执行层处理。协议交换与模型决策是不同环节,客户端不负责保证每个业务结论真实。
权限与结果证据需要做端到端核查
可以用一条允许的只读请求验证完整链路,再确认超出范围的资源访问受到限制。这里提供接入核查方法,没有连接真实账号。应保存错误信息与请求对应关系,避免把旧服务的返回结果误配到新任务。
客户端收到网页或文件内容时,原文中的指令不应提升为用户授权。宿主负责决定如何使用上下文,服务端负责相应访问控制。通信顺利不意味着资料准确,最终答案仍应追溯来源,写入动作则需核对目标状态。
核对来源
以下资料用于核对概念和方法。文中的示例与测试范围分别注明,实际使用时请核对所用工具的版本。