本文介绍了具有包标识的应用如何通过演练 MCP Windows 示例存储库中的示例来注册MCP服务器,github.com/microsoft/mcp-on-windows-samples,以说明具有包标识的应用如何注册MCP服务器。 将所需元数据添加到打包的应用时,OS 会在安装应用包时自动注册服务器。 使用 MSIX 包格式的应用具有包标识。 通过向应用生成包并将其注册到外部位置,可以向未打包的应用授予包标识。 有关详细信息,请参阅 通过使用外部位置打包授予软件包身份。
如果你的应用没有包标识,例如使用 MSI 安装的应用,或者只是使用独立 .exe安装的应用,并且你不想使用 MSIX 打包来授予它包标识,则可以使用MCP捆绑包安装MCP服务器。 有关详细信息,请参阅使用MCP捆绑包注册MCP服务器。
注释
一些信息与预发布产品相关,在商业发行之前可能发生实质性修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。
先决条件
- Windows 内部版本 26220.7262 或更高版本
- 确保具有最新的 SignTool.exe版本 10.0.26100.4188 或更高版本。 SignTool.exe 随 Windows SDK 一起提供。 可以使用 WinGet 获取最新的 Windows SDK。
winget install Microsoft.WindowsSDK.10.0.26100 - 对于生产版本,你需要一个是Microsoft受信任根计划一部分的证书。
- 服务器 MCP 。 有关详细信息,请参阅 MCP 服务器概述
- 具有包标识和 AppxManifest.xml 文件的应用
- 已安装 NodeJS。 若要使用 WinGet 安装 NodeJS,请使用以下命令:
winget install OpenJS.NodeJS
概述
添加MCP服务器到带有包标识的应用程序需要执行以下步骤:
- 将描述MCP服务器的
manifest.json包MCP文件添加到项目中。 有关此文件格式的详细信息,请参阅 MCP 捆绑 github 存储库 ,github.com/anthropics/mcpb/。 - 向文件添加 uap3:AppExtension 条目
AppxManifest.xml。
克隆示例
在 Windows 上克隆 MCP 示例存储库。
git clone https://github.com/microsoft/mcp-on-windows-samples.git
注册 MCP 服务器的 MSIX 应用的解决方案文件位于 mcp-on-windows-samples\msix-app-with-server\ 目录中。
设置并生成示例
.sln从 Visual Studio 中的示例打开该文件,从解决方案平台下拉列表中选择设备的正确体系结构。
应用需要证书才能成功生成。 若要添加测试证书,请执行以下操作:
- 在 解决方案资源管理器的
mcp-server-msix项目中,双击该文件Package.appxmanifest以打开包清单编辑器。 - 在“ 打包 ”选项卡上,单击“ 选择证书”。
- 在“ 选择证书 ”对话框中,单击“ 创建...”
- 将所有字段保留默认值,然后单击“ 确定”。 再次单击 “确定 ”以完成证书创建过程。
生成示例。 在 解决方案资源管理器中,右键单击 mcp-server-msix 项目并选择“ 部署”。 现在运行应用。
接下来,通过打开该文件夹的 PowerShell 提示符并运行以下命令来启动 MCP 服务器。 可能需要根据计算机的体系结构更改路径。
npx @modelcontextprotocol/inspector .\McpServer\bin\x64\Debug\net8.0\McpServer.exe
此命令将启动 MCP 服务器。 它还将在浏览器窗口中启动 MCP 检查器(用于与 MCP 服务器交互的实用工具)。 切换回示例应用,以使用应用的 UI 与 MCP 服务器交互。
本演练的其余部分将指出此示例应用程序中的组件,这些组件会在安装时被注册。
MCP捆绑包配置 JSON 文件
MCP捆绑包配置 JSON 文件描述服务器以及如何与之交互。 示例 MCP 项目的捆绑包配置 JSON 文件位于该文件 Assets/manifest.json中。 代码列表如下所示。 请注意,它提供元数据,例如服务器的名称、说明和作者。 接下来,它定义三种不同的工具,并定义预期的输入类型。
{
"manifest_version": "0.1",
"name": "MCP-Server-Sample-App",
"version": "1.0.0",
"description": "A Sample App MCP Server",
"author": {
"name": "Microsoft"
},
"server": {
"type": "binary",
"entry_point": "SampleMCPServer.McpServer.exe",
"mcp_config": {
"command": "SampleMCPServer.McpServer.exe",
"args": []
}
},
"tools": [
{
"name": "get_random_fact",
"description": "Gets a random interesting fact from an online API."
},
{
"name": "get_random_quote",
"description": "Gets a random inspirational quote from an online API."
},
{
"name": "get_weather",
"description": "Gets current weather information for a specified city."
}
],
"tools_generated": false,
"license": "MIT",
"_meta": {
"com.microsoft.windows": {
"static_responses": {
"initialize": {
"protocolVersion": "2025-06-18",
"capabilities": {
"logging": {},
"tools": {
"listChanged": true
}
},
"serverInfo": {
"name": "McpServer",
"version": "1.0.0.0"
}
},
"tools/list": {
"tools": [
{
"name": "get_random_quote",
"description": "Gets a random inspirational quote from an online API.",
"inputSchema": {
"type": "object",
"properties": {}
}
},
{
"name": "get_random_fact",
"description": "Gets a random interesting fact from an online API.",
"inputSchema": {
"type": "object",
"properties": {}
}
},
{
"name": "get_weather",
"description": "Gets current weather information for a specified city.",
"inputSchema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"default": "London"
}
}
}
}
]
}
}
}
}
}
MCP包清单文件中的应用扩展条目
通过将 MCP 元素添加到应用的程序包清单文件,将服务器注册AppxManifest.xml到系统。 扩展名的名称为 com.microsoft.windows.ai.mcpServer. 此扩展允许 Windows 在安装或卸载应用时注册和注销服务器 MCP 。
uap5:AppExecutionAlias 告知系统服务器的可执行文件MCP。
<Extensions>
<uap3:Extension Category="windows.appExtension">
<uap3:AppExtension
Name="com.microsoft.windows.ai.mcpServer"
Id="WindowsMCPServerSampleApp"
DisplayName="Windows Sample MCP Server"
PublicFolder="Assets">
<uap3:Properties>
<Registration>mcpServerConfig.json</Registration>
</uap3:Properties>
</uap3:AppExtension>
</uap3:Extension>
<uap5:Extension Category="windows.appExecutionAlias">
<uap5:AppExecutionAlias>
<uap5:ExecutionAlias Alias="WindowsMCPServerSampleApp.exe"/>
</uap5:AppExecutionAlias>
</uap5:Extension>
</Extensions>
可以通过右键单击 Package.appxmanifest 文件并选择 “查看代码”来查看示例项目的代码。
请求服务器的功能
MCP向包应用注册的服务器将在包含的环境中运行,这意味着默认情况下,它无法访问受保护的资源,例如当前用户的文件。 有关详细信息,请参阅 在 Windows 上安全管理服务器MCP。
可以通过在应用清单文件中声明功能来请求对资源集的访问权限。 访问服务器时,系统将提示用户允许访问请求的资源。 大多数功能可以直接在清单编辑器 UI 中设置。 可通过功能访问的一些常见资源包括:
- documentsLibrary – 授予对用户 Documents 文件夹的访问权限。
- downloadsFolder – 授予对用户下载文件夹的访问权限。
- picturesLibrary – 授予对用户“图片”文件夹的访问权限。
- musicLibrary – 授予对用户音乐文件夹的访问权限。
- videosLibrary – 授予对用户视频文件夹的访问权限。
有关功能的详细信息,请参阅 应用功能声明。
测试MCP服务器
有关测试 MCP 服务器的注册和功能的信息,请参阅 在 Windows 上测试 MCP 服务器。