Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions eng/ignore-links.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,11 @@ https://dev.azure.com/azure-sdk/internal/_build?definitionId=7571

# Link check times out, but link is valid
https://aka.ms/security.md/msrc/bounty

# MCPB links not yet released
https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-linux-arm64.mcpb
https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-linux-x64.mcpb
https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-osx-arm64.mcpb
https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-osx-x64.mcpb
https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-win-arm64.mcpb
https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-win-x64.mcpb
148 changes: 140 additions & 8 deletions servers/Azure.Mcp.Server/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,147 @@

The Azure MCP Server updates automatically by default whenever a new release comes out 🚀. We ship updates twice a week on Tuesdays and Thursdays 😊

## 2.0.0-beta.41 (Unreleased)
## 2.0.0 (2026-04-09)

**🚀 New Major Release — Azure MCP Server 2.0**

We're thrilled to announce the second major release of the Azure MCP Server! Version 2.0 represents a significant evolution from the 1.0 release, bringing remote HTTP deployment, dramatically expanded Azure service coverage, comprehensive security hardening, and major performance improvements. This release spans 40 beta iterations and hundreds of contributions.

### Key Features & Improvements

- **Deploy as a Remote MCP Server**: Deploy the Azure MCP Server as a shared, multi-user HTTP service with Entra ID authentication and On-Behalf-Of (OBO) authorization
- **Use with Sovereign Clouds**: Full support for Azure Government and Azure operated by 21Vianet Cloud (Azure in China) clouds across multiple services
- **More Docker Options**: AMD64 and ARM64 images are now available. Trimmed binaries cut image size by ~60% compared to initial Docker builds
- **New Installation Methods**: Added two new distribution formats:
- **PyPI**: With UVX support for Python/uv-based workflows
- **MCP Bundles (`.mcpb`)**: A portable format compatible with Claude Desktop
- **Security Hardening**: Comprehensive input validation, SSRF protection, SQL/KQL injection prevention, query parameterization, and endpoint validation across all services
- **User Confirmation Prompts**: Added user confirmation prompts for sensitive and destructive operations via MCP elicitation
- **Foundry Integration**: Added integration with the external Microsoft Foundry MCP server (`https://mcp.ai.azure.com`) providing agent lifecycle, batch evaluation, prompt optimization, and project connection management tools
- **More Tools**: Increased tool coverage from 170+ to 260+ across 50+ services, including the following new namespaces:
- Azure Advisor - `advisor`
- Azure Compute - `compute`
- Azure Container Apps - `containerapps`
- Azure Device Registry - `deviceregistry`
- Azure File Shares - `fileshares`
- Azure Functions - `functions`
- Azure Migrate - `azuremigrate`
- Azure Policy - `policy`
- Azure Pricing - `pricing`
- Azure Service Fabric - `servicefabric`
- Azure Storage Sync - `storagesync`
- Azure Well-Architected Framework - `wellarchitectedframework`
- **Improved Performance**: Server startup reduced from ~20s to ~1-2s when proxied MCP servers are enabled (Microsoft Documentation, Azure Developer CLI, Microsoft Foundry)

### Features Added
### Getting Started

### Breaking Changes
Install the Azure MCP Server from your preferred platform:

### Bugs Fixed
- **VS Code**: Install the [Azure MCP Server extension in VS Code](https://vscode.dev/redirect?url=vscode:extension/ms-azuretools.vscode-azure-mcp-server)
- **VS Code Insiders**: Install the [Azure MCP Server extension in VS Code Insiders](https://vscode.dev/redirect?url=vscode-insiders:extension/ms-azuretools.vscode-azure-mcp-server)
- **Visual Studio 2022**: Install [GitHub Copilot for Azure](https://marketplace.visualstudio.com/items?itemName=github-copilot-azure.GitHubCopilotForAzure2022)
- **Visual Studio 2026**: Install the [Azure and AI Development workload](https://learn.microsoft.com/en-us/azure/developer/github-copilot-azure/get-started?pivots=visual-studio-2026#install-github-copilot-for-azure)
- **Claude and GitHub Copilot CLI**: Install the [Azure Skills Plugin](https://github.com/microsoft/azure-skills?tab=readme-ov-file#install-in-60-seconds)
- **IntelliJ IDEA**: Install the [Azure Toolkit for IntelliJ](https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij)
- **Eclipse IDE**: Install the [Azure Toolkit for Eclipse](https://marketplace.eclipse.org/content/azure-toolkit-eclipse)
- **NuGet**: Run `dotnet tool install -g Azure.Mcp --version 2.0.0`
- **npm**: Run `npx @azure/mcp@2.0.0`
- **Docker**: Run `docker pull mcr.microsoft.com/azure-mcp:2.0.0`
- **PyPI**: Run `pip install msmcp-azure==2.0.0`
- **MCP Bundles**: Download the `.mcpb` file for your platform/architecture and open it with your client, like Claude Desktop:
- Linux: [x64](https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-linux-x64.mcpb) | [ARM64](https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-linux-arm64.mcpb)
- macOS: [x64](https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-osx-x64.mcpb) | [ARM64](https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-osx-arm64.mcpb)
- Windows: [x64](https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-win-x64.mcpb) | [ARM64](https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-2.0.0/Azure.Mcp.Server-win-arm64.mcpb)

### Other Changes
### Documentation

- [Complete Command Reference](https://github.com/microsoft/mcp/blob/release/azure/2.x/servers/Azure.Mcp.Server/docs/azmcp-commands.md)
- [Authentication](https://github.com/microsoft/mcp/blob/release/azure/2.x/docs/Authentication.md)
- [Remote Server Deployment](https://github.com/microsoft/mcp/blob/release/azure/2.x/servers/Azure.Mcp.Server/README.md#remote-mcp-server-preview)
- [Connecting to Sovereign Clouds](https://github.com/microsoft/mcp/blob/release/azure/2.x/servers/Azure.Mcp.Server/README.md#sovereign-cloud-support)
- [Troubleshooting](https://github.com/microsoft/mcp/blob/release/azure/2.x/servers/Azure.Mcp.Server/TROUBLESHOOTING.md)
- [Contributing Guidelines](https://github.com/microsoft/mcp/blob/release/azure/2.x/CONTRIBUTING.md)

### Thank You

This release was made possible by the incredible efforts of our engineering team, partners, contributors, and the invaluable feedback from our users and the open-source community. We want to extend a huge thank you to everyone who contributed, tested, and provided feedback throughout the development of Azure MCP Server 2.0!

For a complete history of changes included in this release, see entries for versions [2.0.0-beta.1](#200-beta1-2025-10-29) through [2.0.0-beta.40](#200-beta40-2026-04-07).

---

### Other Changes since 1.0.0

#### Breaking Changes

**Tool Consolidation:** Numerous related tools were consolidated for a more streamlined tool surface:

- **Cosmos DB/MySQL/PostgreSQL**: Consolidated **list** commands:
- Removed `cosmos account list`, `cosmos database list`, and `cosmos database container list` - use `cosmos list` with the appropriate parameters to route hierarchically
- Removed `postgres server list`, `postgres database list`, `postgres table list` – use `postgres list` with the appropriate parameters to route hierarchically
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: this line and the following service entries use the en-dash character as a separator, but the Cosmos DB entry above and Key Vault entries below use a regular hyphen. Consider picking one for consistency across the section.

- Removed `mysql server list`, `mysql database list`, `mysql table list` – use `mysql list` with the appropriate parameters to route hierarchically
- **Key Vault**: Merged **get**/**list** tools:
- Removed `keyvault key list` - use `keyvault key get` without providing a key name to list keys in a key vault
- Removed `keyvault secret list` - use `keyvault secret get` without providing a secret name to list secrets in a key vault
- Removed `keyvault certificate list` - use `keyvault certificate get` without providing a certificate name to list certificates in a key vault
- **Monitor WebTest**: Merged **get**/**list** and **create**/**update** tools:
- Removed `monitor webtests list` – use `monitor webtests get` without providing a WebTest name to list WebTests in a resource group
- Removed `monitor webtests update` – use `monitor webtests createorupdate` for both create and update scenarios
- **SQL**: Merged **show**/**list** tools:
- Removed `sql db show` and `sql db list` – use `sql db get` without providing a database name to list databases in a server
- Removed `sql server show` and `sql server list` – use `sql server get` without providing a server name to list servers in a subscription
- **Load Testing**: Merged **list**/**get** and **create**/**update** tools:
- Removed `loadtesting testrun list` – use `loadtesting testrun get` without providing a TestRun name to list test runs in a resource group
- Removed `loadtesting testrun update` – use `loadtesting testrun createorupdate` for both create and update scenarios
- **Resource Health**: Merged **get**/**list** tools:
- Removed `resourcehealth availability-status list` – use `resourcehealth availability-status get` without providing a resource ID to list availability status for multiple resources

**Namespace, Tool, and Option Renames**:

- **Foundry**: Split the `foundry` namespace into `foundryextensions` for in-process tools and `foundry` for tools proxied from the external Microsoft Foundry MCP server.
- The following tools were migrated to the external server under new names:
- `foundry agents list` → `foundry agent get`
- `foundry agents create` → `foundry agent update`
- `foundry agents connect` → `foundry agent invoke`
- `foundry models list` → `foundry model catalog list`
- `foundry models deploy` → `foundry model deploy`
- `foundry models deployments list` → `foundry model deployment get`
- `foundry agents query-and-evaluate` → `foundry evaluation agent batch eval create`
- `foundry agents evaluate` → `foundry evaluator catalog get`
- **Best Practices**: Renamed the following tools:
- `get bestpractices get` → `get azure bestpractices get`
- `get bestpractices ai app` → `get azure bestpractices ai app`
- **Options**: Renamed the following options:
- Server-wide: `--insecure-disable-elicitation` → `--dangerously-disable-elicitation`
- Tool listing with `tools list`: `--namespaces` → `--namespace-mode`
- Getting pipeline deployment guidance with `deploy pipeline guidance get`:
- `--use-azd-pipeline-config` → `--is-azd-project`,
- `--azd-iac-options` → `--iac-options`

**Database Security**:

- PostgreSQL tools now require SSL and verify the server's full certificate chain before creating database connections. This SSL mode provides both `eavesdropping protection` and `man-in-the-middle protection`. See [SSL Mode VerifyFull](https://www.npgsql.org/doc/security.html?tabs=tabid-1#encryption-ssltls) for more details.

**Miscellaneous**:

- Removed support for custom URL-based authority hosts in `--cloud`. The option now accepts only well-known cloud names
- Narrowed subscription list response to include only `subscriptionId`, `displayName`, `state`, `tenantId`, and `isDefault`
- Removed the following options for the `deploy pipeline guidance get` tool:
- `--organization-name`
- `--repository-name`
- `--github-environment-name`

#### Bugs Fixed

- Fixed SignalR caching where runtime results were not stored
- Fixed retained-buffer leaks across services and tool loaders
- Fixed Linux stdio watcher regression where using CWD as content root could exhaust `inotify` watchers
- Added regex timeouts and cancellation propagation to prevent hangs

#### Other Changes

- Removed JSON pretty printing from serialization to reduce token usage
- Extensive tool description improvements across all namespaces for better LLM selection accuracy

## 2.0.0-beta.40 (2026-04-07)

Expand Down Expand Up @@ -327,7 +459,7 @@ The Azure MCP Server updates automatically by default whenever a new release com

### Features Added

- Added new tools available via the external Azure AI Foundry MCP server (https://mcp.ai.azure.com) that provide capabilities not previously available in Azure MCP Server: [[#1771](https://github.com/microsoft/mcp/pull/1771)]
- Added new tools available via the external Microsoft Foundry MCP server (https://mcp.ai.azure.com) that provide capabilities not previously available in Azure MCP Server: [[#1771](https://github.com/microsoft/mcp/pull/1771)]
- agent_container_control: Control an agent container
- agent_container_status_get: Get the status of an agent container
- agent_definition_schema_get: Get the schema for an agent definition
Expand Down Expand Up @@ -357,7 +489,7 @@ The Azure MCP Server updates automatically by default whenever a new release com
### Breaking Changes

- Foundry tools previously under the `foundry` namespace have moved to the new `foundryextensions` namespace within Azure MCP Server, retaining direct in-process access to Azure OpenAI, knowledge indexes, agent threads, and resources: [[#1771](https://github.com/microsoft/mcp/pull/1771)]
- foundryextensions_agents_get_sdk_sample: Get an SDK code sample for Azure AI Foundry Agents
- foundryextensions_agents_get_sdk_sample: Get an SDK code sample for Microsoft Foundry Agents
- foundryextensions_knowledge_index_list: List knowledge indexes in a Foundry project
- foundryextensions_knowledge_index_schema: Get the schema of a knowledge index
- foundryextensions_openai_chat_completions_create: Create a chat completion using an Azure OpenAI deployment
Expand All @@ -368,7 +500,7 @@ The Azure MCP Server updates automatically by default whenever a new release com
- foundryextensions_threads_create: Create a new agent thread
- foundryextensions_threads_get_messages: Get messages from an agent thread
- foundryextensions_threads_list: List agent threads
- The following Azure AI Foundry tools were renamed as part of the migration to the external Foundry MCP server (https://mcp.ai.azure.com). See the Breaking Changes entry for the full list of removed tools: [[#1771](https://github.com/microsoft/mcp/pull/1771)]
- The following Microsoft Foundry tools were renamed as part of the migration to the external Foundry MCP server (https://mcp.ai.azure.com). See the Breaking Changes entry for the full list of removed tools: [[#1771](https://github.com/microsoft/mcp/pull/1771)]
- foundry_agents_list → agent_get
- foundry_agents_create → agent_update
- foundry_agents_connect → agent_invoke
Expand Down
2 changes: 1 addition & 1 deletion servers/Azure.Mcp.Server/src/Azure.Mcp.Server.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Version>2.0.0-beta.41</Version>
<Version>2.0.0</Version>
<CliName>azmcp</CliName>
<AssemblyTitle>Azure MCP Server</AssemblyTitle>
<Description>Azure MCP Server - Model Context Protocol implementation for Azure</Description>
Expand Down
Loading
Loading