Cloudflare 远程 MCP 服务器为兼容的 AI 客户端提供访问选定工具的托管接口。让端点上线只是容易达到的里程碑。真正有用的里程碑,是客户端以正确用户的权限完成预期任务,并产生运维团队能够解释的结果。
在 Cloudflare 上构建远程 MCP 服务器时,应围绕范围有限的工具契约、已认证身份和明确的下游权限进行设计。在计划支持的客户端中测试发现、授权、工具执行与恢复。MCP 端点可访问,并不能证明它已经适合处理业务记录。
设想一个员工助手,需要在现有系统中查询订单。首个版本只读取订单状态,后续版本可能提出修改地址的建议。即使两者都作为工具出现在同一客户端中,其权限和失败后果也不同。
本文讨论托管实现的边界。关于更早的采购决策,请阅读我们的 MCP 服务器开发指南 。文中的例子是建议设计,并非对已部署客户系统的描述。
定义 Cloudflare 远程 MCP 服务器契约
Cloudflare 维护了远程 MCP 服务器指南 。以当前指南为部署起点,然后固定选定依赖,记录支持的传输方式与客户端。不要在未验证结果的情况下,将不同 SDK 代际的代码片段拼接起来。
有用的工具名称应该描述允许的业务操作。订单查询输入应标识订单,以及确实必要的上下文。不要仅为了让服务器通用,就接受用户选择的数据库、任意查询或下游 URL。
输出应区分查询完成、来源不可用和操作被拒绝。如果每次失败都返回空对象,助手就可能编造解释。应返回边界明确的结果,让客户端准确呈现,同时不暴露内部凭据或无关记录。
| 契约要素 | 订单查询示例 | 明确规定的理由 |
|---|---|---|
| 输入 | 订单编号 | 限制查询范围 |
| 权限 | 已认证员工及账户范围 | 防止跨账户读取 |
| 结果 | 状态、来源观察时间及允许的上下文 | 让答案可以解释 |
| 拒绝 | 安全且明确的结果 | 避免将无权查看误说成记录不存在 |
| 跟踪 | 不透明的操作编号 | 无须复制记录即可调查 |
将调用者身份与服务凭据分开
托管服务器可能需要凭据才能调用订单 API,但服务凭据不是调用者身份。即使服务器使用强大的下游凭据,仍必须限制当前调用者可以请求哪些记录。
Cloudflare 的 MCP 授权文档 介绍了远程连接的授权层。应完整验证目标客户端的登录与令牌流程,不能假定某条路径接受的令牌适用于每个目标。
根据可信会话信息推导客户或组织范围。不能让 customer_id 之类的工具参数在未经范围核对时扩大访问。模型声称某员工是经理,并不构成授权决策。
操作执行时应重新检查权限。角色变更或撤销后,之前发现的工具可能已不再允许使用。记录撤销权限时,现有连接和新建连接各会发生什么。
将部署配置与工具策略分开
有意识地维护开发与生产配置,将每个环境绑定到正确的下游系统,不要把密钥写进源码、提示词或工具说明。测试客户端不应因为复制配置保留了错误端点,就获得生产权限。
使用能标识源码修订、依赖锁、环境和配置变更的部署记录。如果新工具说明导致客户端意外选择某项操作,团队需要知道究竟改变了什么。
工具说明是产品接口的一部分。解释工具的用途、结果含义,以及结果无法证明什么。不要指示模型将返回的第三方文字视为执行无关调用的授权依据。
对于订单服务器,应将查询与修改作为不同能力。通过可选参数在读写之间切换的宽泛工具,会增加复核与访问控制难度。明确的操作也让兼容性测试更容易解释。
测试真实客户端旅程
Cloudflare 提供了远程服务器客户端测试文档 。协议检查器很有用,但生产客户端有自己的发现、授权和展示行为。应覆盖支持承诺中列出的每个客户端。
从全新连接开始测试正常流程,再测试会话过期、权限撤销、来源不可用和工具输入格式错误。既观察用户看到的情况,也观察服务器记录。
| 测试案例 | 预期应用结果 | 证据 |
|---|---|---|
| 允许的查询 | 返回正确订单上下文 | 调用者范围及来源结果 |
| 其他账户的订单 | 拒绝访问 | 没有未授权记录内容 |
| 来源超时 | 解释可用性故障 | 操作编号及失败阶段 |
| 调用者权限撤销 | 拒绝后续使用 | 旧连接与新连接结果 |
| 无效输入 | 下游工作之前验证失败 | 拒绝且未请求来源 |
测试时使用带有清晰标签的合成记录。如果测试数据过于相似,错误账户的结果也可能看似合理,从而逃过复核。验收报告应让没有编写服务器的人也能明显识别权限故障。
区分工具成功与业务成功
MCP 交换成功,仍可能返回过时订单状态或下游拒绝。应根据来源系统和员工任务定义成功。助手不能仅因工具没有抛出异常,就声称变更已经完成。
未来加入地址修改工具时,应保留目标系统的操作编号与变更后的记录状态。如果响应丢失,应先调查该编号再重新提交。传输层重试与安全地重复业务操作,是不同的问题。
添加写入工具之前先规划恢复
只读访问能产生有用结果时,应从只读开始。这可以减少初始恢复范围,让团队先验证身份与工具选择,再引入实际业务承诺。
对于写入,应明确批准、有效期、重复处理和不确定结果的规则。批准必须对应实际拟议变更与目标记录。用户批准模糊指令,不应授权后续发生实质变化的操作。
保留禁用工具的方法,同时不能丢失核对已提交工作所需的证据。从工具发现列表移除某项操作,并不能证明之前接受的工作已经停止。
什么决定开发与支持成本?
主要成本因素是下游 API 质量、身份映射、客户端种类及每项操作的后果。针对文档完整 API 的只读查询,与需要协调多个系统变更的集成,是不同的项目。
要求 GBP 方案报价,分别列出协议配置、授权、工具实施、验收与运维交接。询问包含哪些环境与客户端。排除客户端兼容性或下游故障的低报价,不能与完整集成方案直接比较。
| 工作领域 | 验收交付成果 | 常见额外工作来源 |
|---|---|---|
| 身份 | 调用者到记录的权限测试 | 系统间角色不一致 |
| 工具设计 | 稳定且已验证的输入与结果 | 下游语义缺乏文档 |
| 客户端支持 | 指定客户端中的流程记录 | 传输或登录行为不同 |
| 恢复 | 演练过的不确定结果处理流程 | 目标系统没有操作编号 |
| 维护 | 责任归属与升级流程 | 依赖未固定或没有测试环境 |
托管用量只是预算的一项。还应计入日志、上游 API 使用、监控、依赖维护与支持。在估算持续费用前,根据所选负载核实当前供应商费率;工具数量本身不能确定用量成本。
委托开发可由他人运维的端点
交接应让另一位工程师能够部署服务器、轮换测试凭据、复现访问拒绝并追踪失败查询。包括支持客户端列表、依赖锁,以及报告错误工具结果的渠道。
业务系统负责人应批准每项操作的含义,部署负责人应批准恢复与变更流程。尽早让这些人共同参与,避免端点技术上已经完成,却无人负责其真实行为。
我们可以通过 AI 集成试点 界定有限服务器的范围。请提供来源 API、目标客户端、示例任务与访问规则,索取 MCP 部署方案 ,将身份、验收与交接纳入范围,而不只是演示端点。
常见问题
什么让 MCP 服务器成为远程服务器? 服务器与用户本地客户端分开托管,通过受支持的远程连接访问。重要实施问题包括传输支持、认证,以及托管服务如何访问关联业务系统。
部署到 Cloudflare 后,工具会自动安全吗? 不会。应用仍必须验证输入、确定调用者身份、执行下游权限并控制工具权限。托管位置不能决定哪位员工可以读取或修改业务记录。
一台服务器可以支持多个 AI 客户端吗? 可以这样设计,但应测试每个指定客户端。发现、授权和展示行为可能不同。支持承诺应说明验证过哪些客户端与配置。
首个版本应该包含写入工具吗? 只有在第一个有用任务需要写入,而且批准与恢复规则明确时才加入。只读操作通常是验证身份与来源集成的实用起点。
写入超时后应该怎么办? 保留操作编号,在重复请求前检查目标系统。即使响应丢失,目标系统也可能已完成变更。如果无法确定结果,应交由指定运维人员处理。
MCP 交接应该包含什么? 包括源码、依赖锁、环境配置、工具契约、客户端验收结果、凭据责任归属与恢复手册。另一位工程师应能复现成功任务和被拒绝的操作。
如何估算实施成本? 先明确下游系统、身份映射、指定客户端与操作。要求以 GBP 分别列出需求探索、实施、验收与支持范围。按工具收费会掩盖权限与不确定业务结果的复杂性。