diff --git a/docs/extensibility/media/visualstudio/extension-entry-menu.png b/docs/extensibility/media/visualstudio/extension-entry-menu.png new file mode 100644 index 00000000000..563d659b94b Binary files /dev/null and b/docs/extensibility/media/visualstudio/extension-entry-menu.png differ diff --git a/docs/extensibility/media/visualstudio/marketplace-select-extension.png b/docs/extensibility/media/visualstudio/marketplace-select-extension.png new file mode 100644 index 00000000000..3c955a93f5e Binary files /dev/null and b/docs/extensibility/media/visualstudio/marketplace-select-extension.png differ diff --git a/docs/extensibility/media/visualstudio/remove-extension.png b/docs/extensibility/media/visualstudio/remove-extension.png new file mode 100644 index 00000000000..c5a63f1f3b3 Binary files /dev/null and b/docs/extensibility/media/visualstudio/remove-extension.png differ diff --git a/docs/extensibility/media/visualstudio/update-extension-vsixmanifest.png b/docs/extensibility/media/visualstudio/update-extension-vsixmanifest.png new file mode 100644 index 00000000000..5d2656fdbcc Binary files /dev/null and b/docs/extensibility/media/visualstudio/update-extension-vsixmanifest.png differ diff --git a/docs/extensibility/walkthrough-publishing-a-visual-studio-extension.md b/docs/extensibility/walkthrough-publishing-a-visual-studio-extension.md index 5cda06b5023..7c755722a89 100644 --- a/docs/extensibility/walkthrough-publishing-a-visual-studio-extension.md +++ b/docs/extensibility/walkthrough-publishing-a-visual-studio-extension.md @@ -1,7 +1,7 @@ --- title: 'Walkthrough: Publish a Visual Studio extension' description: Publish a Visual Studio extension to Visual Studio Marketplace, which allows developers to browse for new and updated extensions. -ms.date: 01/25/2023 +ms.date: 04/27/2026 ms.topic: how-to helpviewer_keywords: - publishing web controls @@ -30,7 +30,7 @@ This article uses a default VSPackage extension, but the steps are valid for eve 1. Update the extension *.vsixmanifest* with the correct information about product name, author, and version. - ![update extension vsixmanifest](media/update-extension-vsixmanifest.png) + [![Screenshot that shows the .vsixmanifest.](media/visualstudio/update-extension-vsixmanifest.png)](media/visualstudio/update-extension-vsixmanifest.png#lightbox) 2. Build your extension in **Release** mode. Now your extension is packaged as a VSIX in the \bin\Release folder. @@ -42,7 +42,7 @@ This article uses a default VSPackage extension, but the steps are valid for eve 1. In Visual Studio, start debugging to open an experimental instance of Visual Studio. -2. In the experimental instance, go to the **Tools** menu and click **Extensions and Updates**. The TestPublish extension should appear in the center pane and be enabled. +2. In the experimental instance, go to the **Tools** menu and select **Extensions and Updates**. The TestPublish extension should appear in the center pane and be enabled. 3. On the **Tools** menu, make sure you see the test command. @@ -52,31 +52,31 @@ This article uses a default VSPackage extension, but the steps are valid for eve 2. In a web browser, go to [Visual Studio Marketplace](https://marketplace.visualstudio.com/vs). -3. In the upper-right corner, click **Sign in**. +3. In the upper-right corner, select **Sign in**. -4. Use your Microsoft account to sign in. If you do not have a Microsoft account, you can create one at this point. +4. Use your Microsoft account to sign in. If you don't have a Microsoft account, you can create one at this point. -5. Click **Publish extensions**. This option navigates you to the manage page for all your extensions. If you don't have a publisher account, you are prompted to create one at this time. +5. Select **Publish extensions**. This option navigates you to the manage page for all your extensions. If you don't have a publisher account, you're prompted to create one at this time. ![Upload to Marketplace](media/upload-to-marketplace.png) -6. Choose the publisher you want to use to upload your extension. You can change publishers by clicking on the publisher names listed on the left. Click **New extension** and select **Visual Studio**. +6. Choose the publisher you want to use to upload your extension. You can change publishers by clicking on the publisher names listed on the left. Select **New extension** and select **Visual Studio**. -7. In **1: Upload extension**, you can choose to upload a VSIX file directly to Visual Studio Marketplace or just add a link to your own website. In this example, the extension, *TestPublish.vsix* is uploaded. Drag and drop your extension or use the **click** link to browse for the file. Find your extension in the \bin\Release folder of the project. Click **Continue**. +7. In **1: Upload extension**, you can choose to upload a VSIX file directly to Visual Studio Marketplace or just add a link to your own website. In this example, the extension, *TestPublish.vsix* is uploaded. Drag and drop your extension or use the **click** link to browse for the file. Find your extension in the \bin\Release folder of the project. Select **Continue**. -8. In **2: Provide extension details**, some fields are auto-populated from the *source.extension.vsixmanifest* file from your extension. Find more details about each below: +8. In **2: Provide extension details**, some fields are autopopulated from the *source.extension.vsixmanifest* file from your extension. Find more details about each below: * **Internal Name** is used in the URL of the extension's detail page. For an example, publishing an extension under the publisher name "myname" and specifying the internal name to be "my extension" results in a URL of "marketplace.visualstudio\.com/items?itemName=myname.myextension" for your extension's detail page. - * **Display Name** of your extension. This name is auto-populated from the *source.extension.vsixmanifest* file. + * **Display Name** of your extension. This name is autopopulated from the *source.extension.vsixmanifest* file. - * **Version** number of the extension you are uploading. This version is auto-populated from the *source.extension.vsixmanifest* file. + * **Version** number of the extension you're uploading. This version is autopopulated from the *source.extension.vsixmanifest* file. - * **VSIX ID** is the unique identifier that Visual Studio uses for your extension. This identifier is required if you would like to have your extension auto-updated. This identifier is auto-populated from the *source.extension.vsixmanifest* file. + * **VSIX ID** is the unique identifier that Visual Studio uses for your extension. This identifier is required if you would like to have your extension auto-updated. This identifier is autopopulated from the *source.extension.vsixmanifest* file. - * **Logo** that is used for your extension. This logo is auto-populated from the *source.extension.vsixmanifest* file if provided. + * **Logo** that is used for your extension. This logo is autopopulated from the *source.extension.vsixmanifest* file if provided. - * **Short description** of what your extension does. This description is auto-populated from the *source.extension.vsixmanifest* file. + * **Short description** of what your extension does. This description is autopopulated from the *source.extension.vsixmanifest* file. * **Overview** is a good place to include screenshots and detailed information about what your extension does. @@ -96,13 +96,19 @@ This article uses a default VSPackage extension, but the steps are valid for eve * **Allow Q&A for your extension** lets users leave questions on your extension entry page. -9. Click **Save & Upload**. This option takes you back to your publisher manage page. Your extension has not yet been published. +9. Select **Save & Upload**. This option takes you back to your publisher manage page. Your extension hasn't yet been published. -10. To publish your extension, right-click on your extension and select **Make Public**. To see how your extension will look in Visual Studio Marketplace, select **View Extension**. For acquisition numbers, click on **Reports**. To make changes to your extension, click on **Edit**. +10. To publish your extension, right-click on your extension and select **Make Public**. To see how your extension will look in Visual Studio Marketplace, select **View Extension**. For acquisition numbers, select **Reports**. To make changes to your extension, select **Edit**. + :::moniker range="visualstudio" + ![Screenshot that shows the right-click menu for an extenstion.](media/visualstudio/extension-entry-menu.png) + :::moniker-end + + :::moniker range="vs-2022" ![Extension Entry Menu](media/extension-entry-menu.png) + :::moniker-end -11. Click **Make Public**, and your extension is now public. Search Visual Studio Marketplace for your extension. +11. Select **Make Public**, and your extension is now public. Search Visual Studio Marketplace for your extension. ## Update a published extension in Visual Studio Marketplace @@ -110,41 +116,49 @@ Before you begin, make sure that you've built the new release version of your ex 1. In a web browser, go to [Visual Studio Marketplace](https://marketplace.visualstudio.com/vs). -1. In the upper-right corner, click **Sign in**, and then sign in with your Microsoft account. - - :::image type="content" source="media/marketplace-upload-extension.png" alt-text="Screenshot that shows selecting an uploaded extension file in File Explorer."::: +1. In the upper-right corner, select **Sign in**, and then sign in with your Microsoft account. -1. Click **Publish extensions**, and then choose the publisher you want to use to upload your updated extension. +1. Select **Publish extensions**, and then choose the publisher you want to use to upload your updated extension. :::image type="content" source="media/marketplace-select-extension-version.png" alt-text="Screenshot of Visual Studio Marketplace with the Publish extensions link highlighted."::: -1. Next to the extension you want to update, hover your mouse over the three horizontal dots, and then choose **Edit**. +:::moniker range="visualstudio" +4. Next to the extension you want to update, hover your mouse over the three vertical dots, and then select **Edit**. + + :::image type="content" source="media/visualstudio/marketplace-select-extension.png" alt-text="Screenshot that shows the Edit menu option."::: +:::moniker-end + +:::moniker range="vs-2022" +4. Next to the extension you want to update, hover your mouse over the three horizontal dots, and then choose **Edit**. :::image type="content" source="media/marketplace-select-extension.png" alt-text="Screenshot that shows choosing an extension to edit."::: +:::moniker-end -1. In **1: Upload extension**, after your VSIX file name, click the pencil icon to edit your published extension. +5. In **1: Upload extension**, after your VSIX file name, select the pencil icon to edit your published extension. :::image type="content" source="media/marketplace-edit-extension-details.png" alt-text="Screenshot that shows clicking the pencil icon to edit your extension."::: -1. Browse to your updated extension VSIX file. Click the file, and then click **Open**. +6. Browse to your updated extension VSIX file. Select the file, and then select **Open**. + + :::image type="content" source="media/marketplace-upload-extension.png" alt-text="Screenshot that shows selecting an uploaded extension file in File Explorer."::: Your updated extension uploads. :::image type="content" source="media/marketplace-upload-extension-notification.png" alt-text="Screenshot of an Uploading file notification after uploading an edited extension."::: -1. In **2: Provide extension details**, some details are read-only for an extension update or they're auto-populated from the *source.extension.vsixmanifest* file from your extension. Here's more information about extension details: +7. In **2: Provide extension details**, some details are read-only for an extension update or they're autopopulated from the *source.extension.vsixmanifest* file from your extension. Here's more information about extension details: - **Internal Name**\* is used in the URL of the extension's detail page. For an example, publishing an extension under the publisher name "myname" and specifying the internal name as "my extension" results in a URL of "marketplace.visualstudio.com/items?itemName=myname.myextension" for your extension's detail page. - - **Display Name**\* of your extension. This name is auto-populated from the *source.extension.vsixmanifest* file. + - **Display Name**\* of your extension. This name is autopopulated from the *source.extension.vsixmanifest* file. - - **Version**\* number of the extension you are uploading. This version is auto-populated from the *source.extension.vsixmanifest* file. + - **Version**\* number of the extension you're uploading. This version is autopopulated from the *source.extension.vsixmanifest* file. - - **VSIX ID**\* is the unique identifier that Visual Studio uses for your extension. This identifier is required if you would like to have your extension auto-updated. This identifier is auto-populated from the *source.extension.vsixmanifest* file. + - **VSIX ID**\* is the unique identifier that Visual Studio uses for your extension. This identifier is required if you would like to have your extension auto-updated. This identifier is autopopulated from the *source.extension.vsixmanifest* file. - - **Logo**\* that is used for your extension. This logo is auto-populated from the *source.extension.vsixmanifest* file if provided. + - **Logo**\* that is used for your extension. This logo is autopopulated from the *source.extension.vsixmanifest* file if provided. - - **Short description**\* of what your extension does. This description is auto-populated from the *source.extension.vsixmanifest* file. + - **Short description**\* of what your extension does. This description is autopopulated from the *source.extension.vsixmanifest* file. - **Overview** is a good place to include screenshots and detailed information about what your extension does. @@ -166,9 +180,9 @@ Before you begin, make sure that you've built the new release version of your ex \* This detail can't be changed for an extension update. -1. Click **Save & Upload**. This option takes you back to your publisher manage page. Your extension has not yet been published. +8. Select **Save & Upload**. This option takes you back to your publisher manage page. Your extension hasn't yet been published. -1. To publish your extension, right-click your extension and select **Make Public**. To see how your extension will look in Visual Studio Marketplace, select **View Extension**. For acquisition numbers, click **Reports**. To make changes to your extension, click **Edit**. +9. To publish your extension, right-click your extension and select **Make Public**. To see how your extension will look in Visual Studio Marketplace, select **View Extension**. For acquisition numbers, select **Reports**. To make changes to your extension, select **Edit**. ## Add additional users to manage your publisher account @@ -182,17 +196,17 @@ Visual Studio Marketplace supports granting additional users permissions to acce 3. Navigate to the publisher account you wish to add additional users to. -4. Select **Members** and click on **Add**. +4. Select **Members** and select **Add**. ![Add Additional User](media/add-users.png) 5. You can then specify the User ID of the user you wish to add and grant the right level of access under **Select a role**. You can choose from the following options: - * **Creator**: The user can publish extensions, but cannot view or manage extensions published by other users. + * **Creator**: The user can publish extensions, but can't view or manage extensions published by other users. - * **Reader**: The user can view extensions, but cannot publish or manage extensions. + * **Reader**: The user can view extensions, but can't publish or manage extensions. - * **Contributor**: The user can publish and manage extensions, but cannot edit publisher settings or manage access. + * **Contributor**: The user can publish and manage extensions, but can't edit publisher settings or manage access. * **Owner**: The user can publish and manage extensions, edit publisher settings, and manage access. @@ -210,11 +224,11 @@ You can then [add the new user](#add-additional-users-to-manage-your-publisher-a Now that the extension is published, install it in Visual Studio and test it there. -1. In Visual Studio, on the **Tools** menu, click **Extensions and Updates**. +1. In Visual Studio, on the **Tools** menu, select **Extensions and Updates**. -2. Click **Online** and then search for **TestPublish**. +2. Select **Online** and then search for **TestPublish**. -3. Click **Download**. The extension is then scheduled for install. +3. Select **Download**. The extension is then scheduled for install. 4. To complete the installation, close all instances of Visual Studio. @@ -226,11 +240,17 @@ You can remove the extension from Visual Studio Marketplace and from your comput 1. Go to [Visual Studio Marketplace](https://marketplace.visualstudio.com/vs). -2. In the upper-right hand corner, click **Publish** extensions. Pick the publisher that you used to publish (eg: **TestPublish**). The listing for extensions will appear. +2. In the upper-right hand corner, select **Publish** extensions. Pick the publisher that you used to publish (eg: **TestPublish**). The listing for extensions will appear. + +3. Select the extension menu button, and then select **Remove**. You're asked to confirm if you want to remove the extension. -3. Click on extension menu button → click **Remove**. You are asked to confirm if you want to remove the extension. +:::moniker range="visualstudio" +![Screenshot that shows the Remove menu item.](media/visualstudio/remove-extension.png) +:::moniker-end +:::moniker range="vs-2022" ![Screenshot that shows Remove menu item.](media/remove-extension.png) +:::moniker-end To prevent accidental unpublishing, you must confirm the remove operation by filling extension name in the warning dialog. Note that remove/unpublish action is non-reversible @@ -238,8 +258,8 @@ To prevent accidental unpublishing, you must confirm the remove operation by fil ### To remove the extension from your computer -1. In Visual Studio, on the **Tools** menu, click **Extensions and Updates**. +1. In Visual Studio, on the **Tools** menu, select **Extensions and Updates**. -2. Select **TestPublish** and then click **Uninstall**. The extension is then scheduled for uninstall. +2. Select **TestPublish** and then select **Uninstall**. The extension is then scheduled for uninstall. 3. To complete the uninstallation, close all instances of Visual Studio. diff --git a/docs/ide/mcp-servers.md b/docs/ide/mcp-servers.md index 51b2a6b00b6..318a561429a 100644 --- a/docs/ide/mcp-servers.md +++ b/docs/ide/mcp-servers.md @@ -1,12 +1,11 @@ --- title: Use MCP Servers description: Learn how to add MCP servers in Visual Studio to extend GitHub Copilot agent capabilities, set up mcp.json, and manage tool permissions. -ms.date: 03/26/2026 +ms.date: 04/29/2026 ms.update-cycle: 180-days ms.topic: get-started author: RoseHJM ms.author: rosemalcolm - ms.subservice: ai-tools ms.collection: ce-skilling-ai-copilot ms.custom: awp-ai @@ -16,119 +15,41 @@ ai-usage: ai-assisted # Use MCP servers -Model Context Protocol (MCP) is an open standard that enables AI models to interact with external tools and services through a unified interface. In Visual Studio, MCP support enhances GitHub Copilot agent mode by allowing you to connect any MCP-compatible server to your agentic coding workflow. - -This article guides you through setting up MCP servers and using tools with agent mode in Visual Studio. - -## Prerequisites - -[Visual Studio 2026](/visualstudio/releases/2026/release-notes) -Or -[Visual Studio 2022](/visualstudio/releases/2022/release-history) version 17.14 (with the latest servicing release recommended for the most up-to-date MCP features) - -## How MCP and Visual Studio extend the GitHub Copilot agent +Model Context Protocol (MCP) is an open standard that lets GitHub Copilot use tools and services outside the IDE. In Visual Studio, MCP lets GitHub Copilot agents use external tools by connecting MCP clients to MCP servers that expose important functionality like file access, repo management, or PR creation. By standardizing how tools are discovered and invoked, MCP removes the need for custom integrations and makes it easy to extend AI assistants simply by adding new MCP servers. -MCP support in Visual Studio works as follows: +MCP support enhances GitHub Copilot agent mode by allowing you to connect any MCP-compatible server to your agentic coding workflow. MCP support in Visual Studio works as follows: - MCP clients, such as Visual Studio, connect to MCP servers and request actions on behalf of the AI model. - MCP servers provide one or more tools that expose specific functionalities through a well-defined interface. - The protocol defines the message format for communication between clients and servers, including tool discovery, invocation, and response handling. -For example, an MCP server for a file system might provide tools for reading, writing, or searching files and directories. [The official GitHub MCP server](https://github.com/github/github-mcp-server) offers tools to list repositories, create pull requests, or manage issues. MCP servers can run locally on your machine or be hosted remotely. Visual Studio supports both configurations. +For example, with the GitHub MCP server enabled, you can have copilot create and manage PRs or let you know if there are PRs that need your review. With the Azure DevOps MCP server enabled, you can have Copilot create and manage work items. -By standardizing this interaction, MCP eliminates the need for custom integrations between each AI model and each tool. You can then extend your AI assistant's capabilities by simply adding new MCP servers to your workspace. [Learn more about the MCP specification](https://modelcontextprotocol.io/specification/draft). - -## Configuration example with a GitHub MCP server - -The following walkthrough requires version 17.14.9 or later. - -1. Create a new file: `\.mcp.json` or `%USERPROFILE%\.mcp.json`. We recommend that you use Visual Studio to edit this file so that its JSON schema is automatically applied. - -2. Paste the following contents into the `.mcp.json` file: - - ```json - { - "servers": { - "github": { - "url": "https://api.githubcopilot.com/mcp/" - } - } - } - ``` - -3. Save the file. Then activate the CodeLens information that appears over the new server to authenticate to this server through a GitHub account. - -4. In Visual Studio, select the **Ask** arrow in the GitHub Copilot Chat window, and then select **Agent**. - -:::moniker range="visualstudio" - -:::image type="content" source="media/visualstudio/copilot-agent-dropdown.png" alt-text="Screenshot that shows the Agent button in Copilot." lightbox="media/visualstudio/copilot-agent-dropdown.png"::: - -:::moniker-end - -:::moniker range="<=vs-2022" - -:::image type="content" source="media/vs-2022/copilot-agent-mode/copilot-agent-dropdown.png" alt-text="Screenshot that shows the Copilot agent mode selector." lightbox="media/vs-2022/copilot-agent-mode/copilot-agent-dropdown.png"::: - -:::moniker-end - -5. Select the tools that you want to use; for example, **List issues**. - -:::moniker range="visualstudio" - -:::image type="content" source="media/visualstudio/model-context-protocol-github-tools-list.png" alt-text="Screenshot that shows the MCP GitHub tools." lightbox="media/visualstudio/model-context-protocol-github-tools-list.png"::: - -:::moniker-end - -:::moniker range="<=vs-2022" - -:::image type="content" source="media/vs-2022/mcp-servers/model-context-protocol-github-tools-list.png" alt-text="Screenshot that shows MCP GitHub tools." lightbox="media/vs-2022/mcp-servers/model-context-protocol-github-tools-list.png"::: - -:::moniker-end - - - -6. Try a sample prompt: **List issues assigned to me on GitHub**. - - -:::moniker range="visualstudio" - -7. Copilot asks for permission to use a tool that the MCP server made available to it. Select **Confirm** with the scope that you want to proceed with. - -:::image type="content" source="media/visualstudio/copilot-agent-tool-approval.png" alt-text="Screenshot that shows the confirmation options for agent tools." lightbox="media/visualstudio/copilot-agent-tool-approval.png"::: - -:::moniker-end - -:::moniker range="<=vs-2022" +This article guides you through setting up MCP servers and using tools with agent mode in Visual Studio. -7. Copilot asks for permission to use a tool that the MCP server made available to it. Select **Allow** with the scope that you want to proceed with. +## Prerequisites -:::image type="content" source="media/vs-2022/copilot-agent-mode/copilot-agent-tool-approval.png" alt-text="Screenshot that shows confirmation options for agent tools." lightbox="media/vs-2022/copilot-agent-mode/copilot-agent-tool-approval.png"::: +[Visual Studio 2026](/visualstudio/releases/2026/release-notes) +Or +[Visual Studio 2022](/visualstudio/releases/2022/release-history) version 17.14 (with the latest servicing release recommended for the most up-to-date MCP features) -:::moniker-end +## Find MCP servers -## Supported MCP capabilities +The [official MCP server repository](https://github.com/modelcontextprotocol/servers) is a great starting point for reference, official, and community-contributed servers that showcase the versatility of MCP. You can explore servers for various functionalities, such as file system operations, database interactions, and web services. -Visual Studio supports the following MCP capabilities: +MCP is a relatively new standard, and the ecosystem is rapidly evolving. As more developers adopt MCP, you can expect to see an increasing number of servers and tools available for integration with your projects. -- The options for MCP server transport are local standard input/output (`stdio`), server-sent events (`sse`), and streamable HTTP (`http`). -- Of the [features](https://modelcontextprotocol.io/specification/2025-03-26#features) (tools, prompts, resources, sampling), Visual Studio now supports: - - **Tools**: Execute actions and operations through Copilot agent mode - - **Prompts**: Reusable prompt templates that you can invoke with parameters - - **Resources**: Access external data and context through URI-based resources - - **Sampling**: Enhanced AI model interactions with your tools and services -- Visual Studio provides servers with the current solution folders by using `roots` ([specification](https://modelcontextprotocol.io/docs/concepts/roots)). -- For [MCP authorization](https://modelcontextprotocol.io/specification/draft/basic/authorization), Visual Studio supports authentication for remote servers with any OAuth provider. +## Add an MCP server -## Finding MCP servers +You have multiple options to add an MCP server in Visual Studio. -The [official MCP server repository](https://github.com/modelcontextprotocol/servers) is a great starting point for reference, official, and community-contributed servers that showcase the versatility of MCP. You can explore servers for various functionalities, such as file system operations, database interactions, and web services. +### Add an MCP server directly from the web -MCP is a relatively new standard, and the ecosystem is rapidly evolving. As more developers adopt MCP, you can expect to see an increasing number of servers and tools available for integration with your projects. +Starting with the latest servicing release of version 17.14, you can add an MCP server by installing it directly from the web. Select the **Install** button on an MCP server to automatically install it and add it to your Visual Studio instance. -### Example MCP servers +**Example MCP servers** -Try out some other popular MCP servers in Visual Studio with one-click: +Try out some popular MCP servers in Visual Studio with one-click: - [![Install Awesome MCP in Visual Studio](https://img.shields.io/badge/Visual_Studio-Install_Awesome_MCP-purple?style=flat-square&logo=visualstudio&logoColor=white)](https://vs-open.link/mcp-install?%7B%22name%22%3A%22Awesome%20Copilot%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22ghcr.io%2Fmicrosoft%2Fmcp-dotnet-samples%2Fawesome-copilot%3Alatest%22%5D%7D) – Discover and install custom prompts and instructions for GitHub Copilot. - [![Install MarkItDown MCP in Visual Studio](https://img.shields.io/badge/Visual_Studio-Install_MarkItDown_MCP-purple?style=flat-square&logo=visualstudio&logoColor=white)](https://vs-open.link/mcp-install?%7B%22name%22%3A%22markitdown%22%2C%22gallery%22%3Atrue%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22markitdown-mcp%22%5D%7D) – Convert various file formats (PDF, Word, Excel, images, audio) to Markdown. @@ -136,14 +57,6 @@ Try out some other popular MCP servers in Visual Studio with one-click: - [![Install MongoDB MCP in Visual Studio](https://img.shields.io/badge/Visual_Studio-Install_MongoDB_MCP-purple?style=flat-square&logo=visualstudio&logoColor=white)](https://vs-open.link/mcp-install?%7B%22name%22%3A%22mongodb%22%2C%22gallery%22%3Atrue%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22mongodb-mcp-server%22%5D%7D) – Database operations and management. Execute queries, manage collections, aggregation pipelines, and document operations. - [![Install HuggingFace MCP in Visual Studio](https://img.shields.io/badge/Visual_Studio-Install_HuggingFace_MCP-purple?style=flat-square&logo=visualstudio&logoColor=white)](https://vs-open.link/mcp-install?%7B%22name%22%3A%22huggingface%22%2C%22gallery%22%3Atrue%2C%22url%22%3A%22https%3A%2F%2Fhf.co%2Fmcp%22%7D) – Access models, datasets, and Spaces on the Hugging Face Hub. -## Options for adding an MCP server - -You have multiple options to add an MCP server in Visual Studio. - -### Install from the web - -Starting with the latest servicing release of version 17.14, Visual Studio supports direct installation of MCP servers. Select the **Install** button on an MCP server to automatically add it to your Visual Studio instance. - ### Add an MCP Server from chat To add an MCP server from chat view: @@ -160,15 +73,15 @@ To add an MCP server from chat view: You can install an MCP server directly from the GitHub MCP server registry via Extensions in Visual Studio. -1. From the Visual Studio menu, select **Extensions > MCP Registries...** to open the **MCP Server Manager**. +1. From the Visual Studio menu, select **Extensions** > **MCP Registries...** to open the **MCP Server Manager**. :::image type="content" source="media/vs-2022/mcp-servers/model-context-protocol-registry.png" alt-text="Screenshot that shows the Extensions menu for MCP Registries." lightbox="media/vs-2022/mcp-servers/model-context-protocol-registry.png"::: -1. Select the desired server, and then select install for your Visual Studio instance. +1. Select the server you want, and then select **Install** for your Visual Studio instance. :::image type="content" source="media/vs-2022/mcp-servers/model-context-protocol-server-manager.png" alt-text="Screenshot that shows adding an MCP server from the MCP Server Manager." lightbox="media/vs-2022/mcp-servers/model-context-protocol-server-manager.png"::: -### Add an MCP Server to the `.mcp.json` file +### Add an MCP server to the `.mcp.json` file The following steps walk you through a configuration example with the GitHub MCP server: @@ -210,7 +123,10 @@ The following steps walk you through a configuration example with the GitHub MCP :::image type="content" source="media/vs-2022/copilot-agent-mode/copilot-agent-tool-approval.png" alt-text="Screenshot that shows confirmation options for agent tools." lightbox="media/vs-2022/copilot-agent-mode/copilot-agent-tool-approval.png"::: -## Create a file to manage configuration of MCP servers +## Manage configuration of MCP servers + +Visual Studio supports the use of `mcp.json` files to store configuration information for MCP servers. `mcp.json` files store each server's name, transport type (for example, stdio or SSE), the command to +launch it, any arguments, and optional environment variables needed to connect to that server. If you don't already have an `mcp.json` file, create one in any of the supported locations based on your repository, user, or editor requirements. @@ -237,7 +153,7 @@ Some of these locations require `.mcp.json`, whereas others require `mcp.json`. You can define both *remote* (URL and credentials) and *local* (command-line invocation) servers. -It's common to invoke tools via package managers; for example, `npx -y @azure/mcp@latest` or `docker run ... mcp/github`. Visual Studio respects whatever command you specify, so you can pin versions or pass flags as needed. +It's common to invoke tools through package managers. For example, use `npx -y @azure/mcp@latest` or `docker run ... mcp/github`. Visual Studio respects whatever command you specify, so you can pin versions or pass flags as needed. The format must follow the MCP specification. For example, it must include an array of server objects, each with `name`, `command` or `url`, and `transport`. @@ -259,8 +175,6 @@ When you save the file with valid syntax, the GitHub Copilot agent restarts and :::moniker-end - - ### Tool lifecycle As soon as Visual Studio discovers or adds a server: @@ -320,11 +234,11 @@ To manage authentication for an MCP server: :::moniker range="visualstudio" -## MCP server allowlist policies +## MCP server allow list policies -MCP server usage in Visual Studio respects allowlist policies set by organization administrators through GitHub. When an allowlist is configured for your organization, you can only connect to approved MCP servers. +MCP server usage in Visual Studio respects allow list policies set by organization administrators through GitHub. When an allow list is configured for your organization, you can only connect to approved MCP servers. -If you try to connect to an MCP server that isn't on the allowlist, Visual Studio displays an error message indicating that the server isn't allowed by your organization's policy. Contact your organization administrator to request access to the server or to verify which servers are approved. +If you try to connect to an MCP server that isn't on the allow list, Visual Studio displays an error message indicating that the server isn't allowed by your organization's policy. Contact your organization administrator to request access to the server or to verify which servers are approved. This feature helps organizations: @@ -332,7 +246,7 @@ This feature helps organizations: - Maintain compliance with security policies - Centrally manage MCP server access across development teams -For information on configuring MCP server allowlists as an administrator, see [Configure MCP server allowlist](visual-studio-github-copilot-admin.md#configure-mcp-server-allowlist). +For information on configuring MCP server allow lists as an administrator, see [Configure MCP server allow list](visual-studio-github-copilot-admin.md#configure-mcp-server-allowlist). :::moniker-end @@ -393,7 +307,7 @@ The GitHub policy settings on the GitHub Copilot dashboard for administrators go :::moniker range="visualstudio" -Additionally, administrators can configure an MCP server allowlist to control exactly which MCP servers are permitted within their organization. For more information, see [Configure MCP server allowlist](visual-studio-github-copilot-admin.md#configure-mcp-server-allowlist). +Additionally, administrators can configure an MCP server allow list to control exactly which MCP servers are permitted within their organization. For more information, see [Configure MCP server allow list](visual-studio-github-copilot-admin.md#configure-mcp-server-allowlist). :::moniker-end diff --git a/docs/ide/media/visualstudio/flask-installed.png b/docs/ide/media/visualstudio/flask-installed.png new file mode 100644 index 00000000000..fd39a7d88ab Binary files /dev/null and b/docs/ide/media/visualstudio/flask-installed.png differ diff --git a/docs/ide/media/visualstudio/install-flask.png b/docs/ide/media/visualstudio/install-flask.png new file mode 100644 index 00000000000..c24e3a097cc Binary files /dev/null and b/docs/ide/media/visualstudio/install-flask.png differ diff --git a/docs/ide/media/visualstudio/python-environment.png b/docs/ide/media/visualstudio/python-environment.png new file mode 100644 index 00000000000..b830d489aec Binary files /dev/null and b/docs/ide/media/visualstudio/python-environment.png differ diff --git a/docs/ide/media/visualstudio/python-web-project.png b/docs/ide/media/visualstudio/python-web-project.png new file mode 100644 index 00000000000..8ca0114fe8e Binary files /dev/null and b/docs/ide/media/visualstudio/python-web-project.png differ diff --git a/docs/ide/media/visualstudio/python-web.png b/docs/ide/media/visualstudio/python-web.png new file mode 100644 index 00000000000..d9977a98910 Binary files /dev/null and b/docs/ide/media/visualstudio/python-web.png differ diff --git a/docs/ide/media/visualstudio/set-startup-file.png b/docs/ide/media/visualstudio/set-startup-file.png new file mode 100644 index 00000000000..d603a6a8000 Binary files /dev/null and b/docs/ide/media/visualstudio/set-startup-file.png differ diff --git a/docs/ide/media/visualstudio/solution-explorer-python.png b/docs/ide/media/visualstudio/solution-explorer-python.png new file mode 100644 index 00000000000..b63e482784b Binary files /dev/null and b/docs/ide/media/visualstudio/solution-explorer-python.png differ diff --git a/docs/ide/quickstart-python.md b/docs/ide/quickstart-python.md index a26451018e7..3e9d0cea544 100644 --- a/docs/ide/quickstart-python.md +++ b/docs/ide/quickstart-python.md @@ -2,7 +2,7 @@ title: Create a Python Web App with Visual Studio titleSuffix: "" description: Learn how to use Visual Studio and the Flask framework to build a web application in Python, add a code file, and run the app. -ms.date: 07/29/2025 +ms.date: 04/15/2026 ms.subservice: python ms.topic: quickstart author: cwebster-99 @@ -17,7 +17,15 @@ ms.custom: vs-acquisition In this quickstart, you create a Python web application based on the Flask framework in Visual Studio. You create the project through discrete steps that help you learn about Visual Studio's basic features. Explore how to create project items, add code, and run applications. -::: moniker range=">=vs-2022" +::: moniker range="visualstudio" + +If you need to install Visual Studio, go to [Visual Studio downloads](https://aka.ms/vs/download/?cid=learn-onpage-download-cta) to install it for free. In the Visual Studio Installer, select the **Python development** workload. In the installation details pane, select **Python web support**. + +:::image type="content" source="media/visualstudio/python-web.png" alt-text="Screenshot of the Visual Studio Installer with the Python development workload and Python web support selected." lightbox="media/visualstudio/python-web.png"::: + +::: moniker-end + +::: moniker range="vs-2022" If you need to install Visual Studio, go to [Visual Studio downloads](https://aka.ms/vs/download/?cid=learn-onpage-download-cta) to install it for free. In the Visual Studio Installer, select the **Python development** workload. In the installation details pane, select **Python web support**. @@ -33,7 +41,13 @@ The following steps create an empty project that serves as a container for the a 1. In the **Create a new project** dialog, enter *Python web* in the search box. In the results list, select **Web Project**, and then select **Next**. - ::: moniker range=">=vs-2022" + ::: moniker range="visualstudio" + + :::image type="content" source="media/visualstudio/python-web-project.png" alt-text="Screenshot that shows how to create a new Python Web Project in Visual Studio." lightbox="media/visualstudio/python-web-project.png"::: + + ::: moniker-end + + ::: moniker range="vs-2022" :::image type="content" source="media/vs-2022/python-web-project.png" alt-text="Screenshot that shows how to create a new Python Web Project in Visual Studio." lightbox="media/vs-2022/python-web-project.png"::: @@ -55,7 +69,13 @@ The following steps create an empty project that serves as a container for the a The new project opens in **Solution Explorer**. The **Solution name** is automatically set to match the **Project name**. The new project is empty because it doesn't contain any files. - ::: moniker range=">=vs-2022" + ::: moniker range="visualstudio" + + :::image type="content" source="media/visualstudio/solution-explorer-python.png" alt-text="Screenshot showing the newly created empty Python Web Project in the Solution Explorer." lightbox="media/visualstudio/solution-explorer-python.png"::: + + ::: moniker-end + + ::: moniker range="vs-2022" :::image type="content" source="media/vs-2022/solution-explorer.png" alt-text="Screenshot showing the newly created empty Python Web Project in the Solution Explorer." lightbox="media/vs-2022/solution-explorer.png"::: @@ -77,7 +97,13 @@ Use the following steps to install the Flask library into the default *global en 1. Expand the **Python Environments** node in the project to see the default environment for the project. - ::: moniker range=">=vs-2022" + ::: moniker range="visualstudio" + + :::image type="content" source="media/visualstudio/python-environment.png" alt-text="Screenshot that shows the default environment in Solution Explorer in Visual Studio." lightbox="media/visualstudio/python-environment.png"::: + + ::: moniker-end + + ::: moniker range="vs-2022" :::image type="content" source="media/vs-2022/python-environment.png" alt-text="Screenshot that shows the default environment in Solution Explorer in Visual Studio." lightbox="media/vs-2022/python-environment.png"::: @@ -91,7 +117,13 @@ Use the following steps to install the Flask library into the default *global en - If the **Flask** command doesn't appear below the search box, select **Run command: pip install flask**. - ::: moniker range=">=vs-2022" + ::: moniker range="visualstudio" + + :::image type="content" source="media/visualstudio/install-flask.png" alt-text="Screenshot that shows how to install the Flask library by using pip install in Visual Studio." lightbox="media/visualstudio/install-flask.png"::: + + ::: moniker-end + + ::: moniker range="vs-2022" :::image type="content" source="media/vs-2022/install-flask.png" alt-text="Screenshot that shows how to install the Flask library by using pip install in Visual Studio." lightbox="media/vs-2022/install-flask.png"::: @@ -101,7 +133,13 @@ Use the following steps to install the Flask library into the default *global en 1. After you install Flask, the library appears in the environment in **Solution Explorer**. You can now use Flask commands in your Python code. - ::: moniker range=">=vs-2022" + ::: moniker range="visualstudio" + + :::image type="content" source="media/visualstudio/flask-installed.png" alt-text="Screenshot that shows the Flask library installed and present in Solution Explorer in Visual Studio." lightbox="media/visualstudio/flask-installed.png"::: + + ::: moniker-end + + ::: moniker range="vs-2022" :::image type="content" source="media/vs-2022/flask-installed.png" alt-text="Screenshot that shows the Flask library installed and present in Solution Explorer in Visual Studio." lightbox="media/vs-2022/flask-installed.png"::: @@ -156,7 +194,13 @@ Follow these steps to run your web application: 1. In **Solution Explorer**, right-click the *app.py* file and select **Set as Startup File**. This command identifies the code file to launch in Python when running the app. - ::: moniker range=">=vs-2022" + ::: moniker range="visualstudio" + + :::image type="content" source="media/visualstudio/set-startup-file.png" alt-text="Screenshot that shows how to set the startup file for a project in Solution Explorer in Visual Studio." lightbox="media/visualstudio/set-startup-file.png"::: + + ::: moniker-end + + ::: moniker range="vs-2022" :::image type="content" source="media/vs-2022/set-startup-file.png" alt-text="Screenshot that shows how to set the startup file for a project in Solution Explorer in Visual Studio." lightbox="media/vs-2022/set-startup-file.png"::: diff --git a/subscriptions/vs-ide-benefit.md b/subscriptions/vs-ide-benefit.md index 8a5514570e4..4dede0b9e20 100644 --- a/subscriptions/vs-ide-benefit.md +++ b/subscriptions/vs-ide-benefit.md @@ -1,18 +1,16 @@ --- -title: Visual Studio IDE in Visual Studio subscriptions +title: Visual Studio IDE in Visual Studio Subscriptions author: joseb-rdc ms.author: amast -ms.manager: shve -ms.date: 04/03/2026 +ms.manager: shve +ms.date: 04/29/2026 ms.topic: how-to -description: In this article, you learn how to download and install the Visual Studio IDE included in your Visual Studio subscription. +description: In this article, you learn how to download and install the Visual Studio IDE included in your Visual Studio Subscription. --- # The Visual Studio IDE -This article explains how the Visual Studio IDE is included with Visual Studio Subscriptions and how to download and install it. - -As a Visual Studio subscriber, you have access to the Visual Studio integrated development environment (IDE). Your IDE version depends on the level of your subscription. The benefit appears as a tile in the **Tools** category on the **Benefits included in my subscription** page of the [Visual Studio subscription portal](https://my.visualstudio.com/benefits?wt.mc_id=o~msft~docs). +This article explains how the Visual Studio IDE is included as a **benefit** of Visual Studio Subscriptions and how to download and install it. If your subscription includes the IDE, you can download the latest release available for your subscription level from the [Visual Studio Subscriptions portal]( https://my.visualstudio.com/benefits), where it appears as a benefit tile in the **Tools** category. ## Download and install the IDE @@ -24,7 +22,9 @@ Here's how to download and install the IDE for your version of Visual Studio. We ![Screenshot of the Visual Studio Enterprise tile and accompanying 'Download' button.](media/vs-ide-experience/visual-studio-ide-tile-revised.png "Screenshot of the Visual Studio Enterprise tile and accompanying Download button.") - Product keys aren’t available for all Visual Studio Subscriptions levels; for the Visual Studio IDE, authentication is based on account sign-in. For more information, see [Access and authenticate the Visual Studio IDE by signing in]( https://learn.microsoft.com/visualstudio/subscriptions/use-visual-studio-without-key). + To use the Visual Studio IDE, sign in with the account your Visual Studio Subscription was assigned to. When you sign in, Visual Studio automatically verifies your subscription and unlocks the IDE. + + Product keys aren’t required for the Visual Studio IDE. Authentication is based on your signed-in account. For more information, see [Access and authenticate the Visual Studio IDE by signing in]( https://learn.microsoft.com/visualstudio/subscriptions/use-visual-studio-without-key). 1. On the **Downloads** page, select your architecture: **x86** or **x64** and language preference if applicable then select **Download**.