
MCP 服务器治理:从引入到退役
保留 MCP 服务器库存、在使用前批准服务器、审查每个工具、将更改的定义视为新决策并彻底退役服务器。
决策摘要
MCP服务器治理将每台服务器视为可以在公司系统上运行的软件。为每台服务器的所有者保留一份清单,根据明确的标准批准服务器,审查每个工具而不是单独的服务器,将更改的工具定义视为新决策,包含在笔记本电脑上运行的服务器,并通过撤销凭据及其配置来淘汰服务器。注册表列表或通过扫描会告知这些决定;它不会让他们。
MCP 服务器治理涵盖哪些内容
MCP 服务器是执行该工作的智能体设置的一部分。它提供了一些工具,例如创建问题或查询数据库,并使用任何凭据运行它们并访问它所拥有的权限。一些服务器远程运行并通过 HTTP 访问;其他是在个人笔记本电脑上启动的本地进程。
MCP 服务器治理决定您的团队可以使用哪些服务器,并保持该决定最新。它遵循一个生命周期:查找存在的内容,根据标准批准服务器,检查其工具,观察更改并在不再需要时淘汰它们。每个阶段都需要一个所有者和一个记录。
它位于访问治理旁边,治理决定谁可以使用经批准的服务器以及使用哪些数据。服务器治理通常首先出现,因为管理对您尚未决定信任的服务器的访问没有什么意义。 OWASP 的 MCP Top 10 目前是测试版项目,其风险包括供应链攻击、工具中毒和影子 MCP 服务器。
建立一个可以保持最新的库存
MCP 服务器通常在任何人批准之前就已投入使用; MCP 项目的指南告诉管理员假设他们不会首先被询问。首先列出已经存在的内容:通过网关或 AI 客户端的管理设置连接的远程服务器,以及 Claude Code 和 Cursor 等工具的配置文件中的本地服务器。
客户端配置文件位于已知位置,因此端点管理工具可以连续收集它们。设备清单显示配置的内容,这与连接或使用的内容不同。将其视为对话的起点而不是证据。
记录足够多的有关每台服务器的信息,以便以后快速做出决策。
| 字段 | 为什么这很重要 |
|---|---|
| 所有者 | 有人批准更改并回答问题 |
| 出版商和来源 | 显示您信任的人以及更新的来源 |
| 版本或端点 | 让您注意到更改并响应安全建议 |
| 它运行在哪里 | 本地服务器需要端点控制;远程可以使用网关 |
| 凭据和范围 | 显示服务器可以用某人的权限做什么 |
| 启用的工具 | 显示智能体实际上可以要求它做什么 |
| 用户和团队 | 显示谁受到变更或退休的影响 |
| 下次审核日期 | 默认情况下阻止审批永久生效 |
根据明确的标准批准服务器
一套简短的、已发布的标准使审批更快、更一致。 MCP 项目为组织提供的指南提出了一份经过审查的服务器许可名单,其中包含固定版本,以及可识别的发布者、可读源、出处元数据和软件材料清单等标准。
注册表有助于发现,而不是审批。官方 MCP 注册表(仍处于预览状态)会验证发布者是否控制命名空间,并将安全扫描留给打包注册表和下游目录。用该项目自己的话说,在注册表中列出并不是一种认可。这些问题涵盖了大多数审批决策:
- 谁发布了服务器,您能阅读其源代码吗?
- 它需要在本地运行,还是有远程版本?
- 它如何进行身份验证?它将使用谁的凭据?
- 它要求哪些范围,它们是最窄的工作范围吗?
- 它提供哪些工具,其中哪些工具可以更改数据或联系人员?
- 它会读取哪些数据,结果会去哪里?
- 更新是如何发布的?您将如何得知漏洞?
对于共享系统更喜欢远程服务器
仅封装 SaaS API 的服务器在每台笔记本电脑上运行时不会获得任何好处。 MCP 指南建议使用远程版本:它不在用户的计算机上运行任何代码,使用协议的授权流程而不是本地文件中的令牌,并且在一处进行修补。
还可以通过受控路径访问远程服务器,其中访问规则和记录适用于每个请求。保留本地服务器用于真正需要机器的工作,例如读取工作树或驱动本地工具。
检查每个工具,而不仅仅是服务器
批准服务器并不等于批准它可以执行的所有操作。项目管理服务器可能提供读取问题、编辑问题、删除问题和更改权限的工具。启用工作流程所需的工具并保留其余的。
阅读工具定义和文档。工具名称和描述是模型读取的指令,恶意服务器可以在其中隐藏指令。 Invariant Labs 在 2025 年 4 月演示攻击时称此工具中毒。MCP 规范规定,客户端必须将工具注释(例如工具仅读取数据的提示)视为不可信,除非服务器可信。
工具列表也可能因调用者而异。当前规范允许服务器根据请求提供的授权返回不同的工具,因此请检查每个角色实际可以看到的工具。
将变化视为新的决定
服务器可以在您批准后更改其工具定义,有时称为地毯拉动。该协议不要求客户端在定义更改时再次询问,因此保护必须来自您的客户端、网关或进程。
固定您批准的内容。对于本地包,固定版本;使用 npx 或 uvx 等启动器仅修复顶级包,而由摘要固定的容器映像则修复整个依赖关系树。对于工具,记录已审查的定义并保留更改的定义,直到有人审查它们。
你身边的改变也很重要。新的范围、新的团队或新的环境(例如生产)是重新审视审批的时刻,而不是默默地扩展它。
包含本地运行的服务器
本地服务器是一个具有用户权限的普通进程。它可以读取用户可以读取的文件和环境变量,并连接网络上的任何地方。 MCP 项目将进程隔离称为单一最高杠杆缓解措施。
设置默认姿势而不是留给每个人:在容器中运行第三方服务器,不安装超出其需要的任何内容,只为每个服务器提供其自己的狭窄范围的凭据,限制文件系统访问并限制出站连接。提供一键安装的客户端必须在运行之前显示确切的命令。
记录每个审批
存在于聊天线程中的审批以后很难查看。简短的记录使决定变得明确,并为下一个审阅者提供了可供检查的东西。下面的例子是说明性的。
保留库存条目的记录,并在服务器、其工具或其凭据发生变化时进行更新。
| 字段 | 示例 |
|---|---|
| 服务器 | 问题跟踪器、供应商托管的远程服务器 |
| 所有者 | 平台工程负责人 |
| 批准用于 | 工程团队,生产工作区 |
| 启用的工具 | 搜索问题、阅读问题、创建问题 |
| 保持关闭 | 删除问题,更改项目权限 |
| 凭据 | 每个人自己的 OAuth 授权,仅限于问题范围 |
| 条件 | 在第一个月内审核问题创建 |
| 下次审核 | 三个月内,或者如果工具或范围发生变化则更早 |
彻底退役服务器
退役服务器不仅仅意味着删除配置条目。删除所有使用它的人的访问权限,撤销它持有的凭据,并尽可能删除本地配置。 MCP 指南建议在移除服务器时旋转服务器所持有的任何内容。
保留历史。服务器所做的事情的记录在服务器消失后仍然对调查有用,并且重新出现在清单中的退役服务器应被视为新请求。
Durin 的适用位置
Durin 将远程 MCP 服务器置于一条受控路径下。成员可以从目录中请求连接,或提议一个具有其地址和用途的自定义服务器,管理员会批准或拒绝该请求。 审批本身不会激活任何内容:提供商设置、工具审查、只读测试和激活仍然如此。
每个工具在使用之前都会经过审查,包括是否读取或更改数据以及可能接触哪些资源。未经审查的工具将被阻止。如果服务器更改了工具的定义,则更改后的工具需要重新审核,并且早期的审批将被撤销。管理员可以将连接范围限定为团队,或者禁用安装,同时保留其配置和历史记录。
对于 Durin 之外的服务器,影子 MCP 发现会收集注册设备上配置的 MCP 服务器的报告。报告是观察结果,而不是当前连接的证据,并且审核状态不会阻止访问。要管理发现的服务器,请通过连接添加它,并将客户端指向 Durin。