You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: hub/package-manager/package/manifest.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Create your package manifest
3
3
description: If you want to submit a software package to the Windows Package Manager repository, start by creating a package manifest.
4
-
ms.date: 11/01/2023
4
+
ms.date: 03/24/2026
5
5
ms.topic: how-to
6
6
ms.localizationpriority: medium
7
7
---
@@ -57,7 +57,7 @@ For a complete list and descriptions of items in a manifest, see the [manifest s
57
57
58
58
### Minimal required schema
59
59
60
-
As specified in the [singleton JSON schema](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.6.0/manifest.singleton.1.6.0.json),
60
+
As specified in the [singleton JSON schema](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.12.0/manifest.singleton.1.12.0.json),
61
61
only certain fields are required. The minimal supported YAML file would look like the example below. The singleton format is only valid for packages containing a single installer and a single locale. If more than one installer or locale is provided, the multiple YAML file format and schema must be used.
62
62
63
63
The partitioning scheme was added to help with GitHub's UX. Folders with thousands of children do not render well in the browser.
@@ -74,11 +74,11 @@ License: # The license of the application.
74
74
ShortDescription: # The description of the application.
75
75
Installers:
76
76
- Architecture: # Enumeration of supported architectures.
To provide the best user experience, manifests should contain as much meta-data as possible. In order to separate concerns for validating installers
111
111
and providing localized metadata, manifests should be split into multiple files. The minimum number of YAML files for this kind of manifest is three. Additional locales should also be provided.
112
112
113
-
* A [version](https://github.com/microsoft/winget-pkgs/blob/master/doc/manifest/schema/1.6.0/version.md) ([JSON Schema](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.6.0/manifest.version.1.6.0.json)) file.
114
-
* The [default locale](https://github.com/microsoft/winget-pkgs/blob/master/doc/manifest/schema/1.6.0/defaultLocale.md) ([JSON Schema](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.6.0/manifest.defaultLocale.1.6.0.json)) file.
115
-
* An [installer](https://github.com/microsoft/winget-pkgs/blob/master/doc/manifest/schema/1.6.0/installer.md) ([JSON Schema](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.6.0/manifest.installer.1.6.0.json)) file.
The example below shows many optional metadata fields and multiple locales. Note the default locale has more requirements than additional locales. In the [show command](../winget/show.md), any required fields that aren't provided for additional locales will display fields from the default locale.
Copy file name to clipboardExpand all lines: hub/package-manager/winget/mcp-server.md
+94-6Lines changed: 94 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Using Windows Package Manager with Model Context Protocol (MCP) Server
3
3
description: The Windows Package Manager includes a Model Context Protocol (MCP) server that enables AI agents and tools to discover and install packages through a standardized interface, enhancing the authoring experience in supported editors like VS Code.
4
-
ms.date: 10/30/2025
4
+
ms.date: 03/24/2026
5
5
ms.topic: overview
6
6
---
7
7
@@ -129,14 +129,102 @@ To start using the Windows Package Manager (WinGet) MCP Server in Visual Studio
129
129
1. Verify that the WinGet MCP server tools are available, with a checkmark next to the entry.
130
130
1. Begin asking questions or requesting assistance with package management tasks. The AI agent automatically uses the WinGet MCP tools when appropriate to provide accurate, context-aware help.
131
131
132
+
## Use WinGet MCP with GitHub Copilot CLI
133
+
134
+
[GitHub Copilot CLI](https://docs.github.com/copilot/concepts/agents/about-copilot-cli) brings AI-powered assistance directly to your terminal. After registering the WinGet MCP server with Copilot CLI, you can search for and install packages using natural language prompts — without leaving the command line.
135
+
136
+
### Prerequisites
137
+
138
+
-[GitHub Copilot CLI installed](https://docs.github.com/copilot/how-tos/set-up/install-copilot-cli) and authenticated
139
+
- The WinGet MCP server executable path (see [Find the WinGet MCP server executable path](#find-the-winget-mcp-server-executable-path))
140
+
141
+
### Add the WinGet MCP server to Copilot CLI
142
+
143
+
#### Option 1: Use the interactive `/mcp add` command (recommended)
144
+
145
+
1. Start Copilot CLI in your terminal:
146
+
147
+
```powershell
148
+
copilot
149
+
```
150
+
151
+
1. At the prompt, enter the `/mcp add` slash command:
152
+
153
+
```
154
+
/mcp add
155
+
```
156
+
157
+
1. Fill in the MCP server details in the interactive form. Use **Tab** to move between fields:
158
+
159
+
| Field | Value |
160
+
|---|---|
161
+
| Name |`winget-mcp`|
162
+
| Type |`stdio`|
163
+
| Command | Full path to `WindowsPackageManagerMCPServer.exe`|
164
+
165
+
1. Press **Ctrl+S** to save. Copilot CLI writes the configuration to `~/.copilot/mcp-config.json`.
166
+
167
+
#### Option 2: Edit `mcp-config.json` directly
168
+
169
+
Open (or create) `~/.copilot/mcp-config.json` and add the following entry, replacing `<username>` with your Windows username:
> If `mcp-config.json` already exists and contains other servers, add the `winget-mcp` entry inside the existing `mcpServers` object rather than replacing the file.
186
+
187
+
### Verify the server is registered
188
+
189
+
After adding the server, confirm it is loaded:
190
+
191
+
1. Start or restart Copilot CLI:
192
+
193
+
```powershell
194
+
copilot
195
+
```
196
+
197
+
1. At the prompt, enter:
198
+
199
+
```
200
+
/mcp
201
+
```
202
+
203
+
The output lists all configured MCP servers. Verify that **winget-mcp** appears and shows a connected status.
204
+
205
+
### Use WinGet MCP in Copilot CLI prompts
206
+
207
+
Once the server is registered, Copilot CLI automatically calls WinGet MCP tools when your prompt involves package management. After each search or install request, Copilot asks for your approval before running any command. For example prompts and prompting tips, see [Example prompts for WinGet MCP](#example-prompts-for-winget-mcp).
208
+
132
209
## Example prompts for WinGet MCP
133
210
134
-
Example prompts that work well with WinGet MCP integration:
211
+
The following prompts work well with both GitHub Copilot (VS Code) and GitHub Copilot CLI when the WinGet MCP server is configured:
212
+
213
+
| Goal | Example prompt |
214
+
|---|---|
215
+
| Search for a package |`"Search WinGet for a PDF reader"`|
216
+
| Install by name |`"Install the latest version of Git"`|
217
+
| Install a specific version |`"Install Node.js 20 LTS from WinGet"`|
218
+
| Find packages for a task |`"What WinGet packages are available for container development?"`|
219
+
| Find packages for Python development |`"What packages are available for Python development?"`|
220
+
| Install a common tool |`"Help me install Visual Studio Code"`|
221
+
| Find platform-specific packages |`"Find packages for Docker on Windows"`|
222
+
223
+
### Tips for effective prompting
224
+
225
+
To help Copilot reliably invoke the WinGet MCP tools, use language that clearly indicates a package management intent. If Copilot does not use the WinGet MCP tools automatically, add explicit keywords such as **"using WinGet"**, **"from WinGet"**, or **"search WinGet"** to your prompt.
135
226
136
-
- "What packages are available for Python development?"
137
-
- "Help me install Visual Studio Code"
138
-
- "Find packages for Docker on Windows"
139
-
- "Install the latest version of Git"
227
+
When using VS Code, also verify that Agent Mode is still enabled and that **winget-mcp** is checked in the tools panel. When using Copilot CLI, use `/mcp` to confirm the server is connected.
Copy file name to clipboardExpand all lines: hub/package-manager/winget/settings.md
+87-3Lines changed: 87 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: settings command
3
3
description: Provides customizations for the Windows Package Manager.
4
-
ms.date: 07/08/2025
4
+
ms.date: 03/24/2026
5
5
ms.topic: article
6
6
---
7
7
@@ -73,7 +73,7 @@ We have also defined a schema for the settings file. This allows you to use TAB
73
73
74
74
## Updating settings
75
75
76
-
The following settings are available for the 1.11 release of the Windows Package Manager.
76
+
The following settings are available for the 1.28 release of the Windows Package Manager.
77
77
78
78
### source settings
79
79
@@ -119,7 +119,7 @@ Color of the progress bar that WinGet displays when not specified by arguments.
119
119
120
120
Replaces some known folder paths with their respective environment variables.
121
121
122
-
#### enableSizels
122
+
#### enableSixels
123
123
124
124
Enables output of sixel images in certain contexts.
125
125
@@ -144,6 +144,39 @@ The following logging levels are available. Defaults to `info` if the value is n
144
144
- error
145
145
- critical
146
146
147
+
#### channels
148
+
149
+
The `channels` setting restricts logging output to specific log channels. Special values `default` (the default set of channels) and `all` (all channels) are also accepted. Invalid values are ignored.
150
+
151
+
```json
152
+
"logging": {
153
+
"channels": ["default"]
154
+
}
155
+
```
156
+
157
+
#### file
158
+
159
+
The `file` settings control automatic cleanup of log files in the default log directory. Cleanup runs at the start of each WinGet process and applies only to the default log location.
160
+
161
+
| Setting | Description | Default |
162
+
|---------|-------------|---------|
163
+
|`ageLimitInDays`| Maximum age in days of files in the log directory; older files are deleted. Set to `0` to disable. | 7 |
164
+
|`totalSizeLimitInMB`| Maximum total size in megabytes of all files in the log directory; the oldest files are deleted first. Set to `0` to disable. | 128 |
165
+
|`countLimit`| Maximum number of files in the log directory; the oldest files are deleted first. Set to `0` to disable. | 0 (disabled) |
166
+
|`individualSizeLimitInMB`| Maximum size in megabytes of a single log file. If a file would exceed this limit, logs wrap. Set to `0` to disable. | 16 |
167
+
168
+
```json
169
+
"logging": {
170
+
"level": "verbose",
171
+
"file": {
172
+
"ageLimitInDays": 7,
173
+
"totalSizeLimitInMB": 128,
174
+
"countLimit": 0,
175
+
"individualSizeLimitInMB": 16
176
+
}
177
+
}
178
+
```
179
+
147
180
### preferences and requirements settings
148
181
149
182
Some of the settings are duplicated under `preferences` and `requirements`.
@@ -336,3 +369,54 @@ The `Interactivity` setting controls whether interactive prompts are shown by th
336
369
### Enabling experimental features
337
370
338
371
To discover which experimental features are available, go to [https://aka.ms/winget-settings](https://aka.ms/winget-settings) where you can see the experimental features available to you.
372
+
373
+
The `experimentalFeatures` settings involve the configuration of these "experimental" features. Individual features can be enabled under this node:
374
+
375
+
```json
376
+
"experimentalFeatures": {
377
+
"directMSI": true,
378
+
"resume": true
379
+
}
380
+
```
381
+
382
+
#### directMSI
383
+
384
+
This feature enables the Windows Package Manager to directly install MSI packages with the MSI APIs rather than through msiexec. Note that when silent installation is used this is already in effect, as MSI packages that require elevation will fail in that scenario without it.
385
+
386
+
```json
387
+
"experimentalFeatures": {
388
+
"directMSI": true
389
+
}
390
+
```
391
+
392
+
#### resume
393
+
394
+
This feature enables support for some commands to resume after a reboot.
395
+
396
+
```json
397
+
"experimentalFeatures": {
398
+
"resume": true
399
+
}
400
+
```
401
+
402
+
#### fonts
403
+
404
+
This feature enables support for fonts via `winget settings`. The `winget font list` command will list installed font families and the number of installed font faces.
405
+
406
+
```json
407
+
"experimentalFeatures": {
408
+
"fonts": true
409
+
}
410
+
```
411
+
412
+
#### sourcePriority
413
+
414
+
This feature enables sources to have a priority value assigned. Sources with a higher priority will appear earlier in search results and will be selected for installing new packages when multiple sources have a matching package.
415
+
416
+
Note that search result ordering is dependent on several factors, and source priority is the lowest field currently (match quality and field are more important).
0 commit comments