注释
一些信息与预发布产品相关,在商业发行之前可能发生实质性修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。
默认情况下, MCP 通过 Windows 设备代理注册表(ODR)访问的服务器在代理会话中运行,安全包含在单独的环境中,并且只能允许访问已批准的资源,从而限制跨提示注入攻击等威胁的漏洞。 本文介绍服务器在代理会话中运行的安全要求 MCP 、代理会话的访问限制以及如何授予代理对其他资源的访问权限。
概述
MCP 被包含的服务器在单独的 Windows 会话中使用单独的代理用户帐户运行。 这包括 Windows 提供的所有服务器,以及通过 MSIX 包或具有外部位置的包在 Windows 设备代理注册表上注册的所有 MCP 服务器。 有关服务器注册的信息,请参阅 在 Windows 上注册 MCP 服务器。
使用捆绑包打包 MCP 的服务器当前不能在代理会话中运行。 有关使用捆绑包注册MCP服务器的详细信息,请参阅MCP。MCP
要求
若要运行封闭的 MCP 服务器,必须满足以下要求:
- 服务器必须实现为二进制(.exe)服务器
- 服务器必须具有包标识,并且必须通过 MSIX 包扩展注册
- 服务器必须至少提供有效的 manifest.json 注册,包括以下字段:
- manifest_version
- 姓名
- 版本
- 描述
- 作者
- 服务器
- _meta(字段包含
com.microsoft.windows的定义,定义包括static_responses和tools/list)。
要了解有关将MCP服务器打包以满足这些要求的信息,请参阅使用包标识从应用注册MCP服务器。
服务器在受限条件下可以执行和不能执行的操作
包含 MCP 的服务器有自己的标识,并使用单独的代理用户帐户在单独的 Windows 会话中运行。 因此,服务器无权直接访问用户的会话,包括:
- 用户文件(除非用户向代理授予权限)
- 用户设置、注册表和凭据
- 用户正在使用的应用和窗口
- 运行修改用户会话的可执行文件
但是,在代理会话中运行的服务器可以:
- 访问 Internet
- 读取和写入代理的文件和注册表
- 在代理用户环境中运行可执行文件
- 在代理会话中运行可执行文件
- 使用用户的同意访问特定用户文件
请求访问用户文件
在代理会话中运行时,默认情况下, MCP 服务器将无法访问用户文件。 但是, MCP 服务器可以通过在其包 appxmanifest.xml中声明特定的已知文件夹功能来请求访问用户文件。 主机应用是用户直接与交互的应用,充当用户与一个或多个 MCP 服务器之间的代理。 MCP如果请求特定功能的服务器由主机使用,系统会提示用户授予对关联资源的访问权限。 用户授予访问权限后,该主机应用使用的所有 MCP 服务器都将有权访问资源。 例如,如果主机使用的一台服务器请求用户文件访问权限并授予访问权限,则同一 MCP 主机应用使用的任何 MCP 服务器都可以访问用户文件。
注释
为主机授予对用户文件的权限,而不是为每个服务器授予权限。 当用户授予对其用户文件的访问权限时,该会话中使用的任何 MCP 服务器都将有权访问用户的文件。
减少代理连接器的保护
任何具有标识的打包应用都将在这一预览版本中始终在受限制的会话中运行。
未打包的应用程序(包括 MCP 捆绑包(.mcpb 文件)将无法在包含中运行。 出于测试目的,可以在 Windows 设置中启用此设置,以允许 MCP 通过 Windows 设备代理注册表访问的服务器以减少保护运行:
重要
此设置使 MCP 服务器能够以更高的访问权限和特权运行,并可能使您的设备面临更多安全威胁。
Settings > System > Advanced > AI components > Reduce protections for agent connectors
若要使 MCP 服务器在用户会话中运行,当前在公共预览版中,需要将其部署为未打包的应用程序。