msmcp-azure 2.0.0b18
Azure MCP Server - Model Context Protocol implementation for Azure
Requires Python: >=3.10
Keywords: ai, azure, llm, mcp, model-context-protocol

# <img height="36" width="36" src="https://cdn-dynmedia-1.microsoft.com/is/content/microsoftcorp/acom_social_icon_azure" alt="Microsoft Azure Logo" /> Azure MCP Server 
> [!NOTE]
> Azure MCP Server 1.0 is now [generally available](https://aka.ms/azmcp/announcement/ga).


All Azure MCP tools in a single server. The Azure MCP Server implements the [MCP specification](https://modelcontextprotocol.io) to create a seamless connection between AI agents and Azure services. Azure MCP Server can be used alone or with the [GitHub Copilot for Azure extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azure-github-copilot) in VS Code.
[![Install Azure MCP in VS Code](https://img.shields.io/badge/VS_Code-Install_Azure_MCP_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:extension/ms-azuretools.vscode-azure-mcp-server) [![Install Azure MCP in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install_Azure_MCP_Server-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode-insiders:extension/ms-azuretools.vscode-azure-mcp-server) [![Install Azure MCP in Visual Studio 2026](https://img.shields.io/badge/Visual_Studio_2026-Install_Azure_MCP_Server-8D52F3?style=flat-square&logo=visualstudio&logoColor=white)](https://aka.ms/ghcp4a/vs2026) [![Install Azure MCP in Visual Studio 2022](https://img.shields.io/badge/Visual_Studio_2022-Install_Azure_MCP_Server-C16FDE?style=flat-square&logo=visualstudio&logoColor=white)](https://marketplace.visualstudio.com/items?itemName=github-copilot-azure.GitHubCopilotForAzure2022) [![Install Azure MCP Server](https://img.shields.io/badge/IntelliJ%20IDEA-Install%20Azure%20MCP%20Server-1495b1?style=flat-square&logo=intellijidea&logoColor=white)](https://plugins.jetbrains.com/plugin/8053) [![Install Azure MCP in Eclipse](https://img.shields.io/badge/Eclipse-Install_Azure_MCP_Server-b6ae1d?style=flat-square&logo=eclipse&logoColor=white)](https://marketplace.eclipse.org/content/azure-toolkit-eclipse)

[![GitHub](https://img.shields.io/badge/github-microsoft/mcp-blue.svg?style=flat-square&logo=github&color=2787B7)](https://github.com/microsoft/mcp)
[![GitHub Release](https://img.shields.io/github/v/release/microsoft/mcp?include_prereleases&filter=Azure.Mcp.*&style=flat-square&color=2787B7)](https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server-)
[![License](https://img.shields.io/badge/license-MIT-green?style=flat-square&color=2787B7)](https://github.com/microsoft/mcp/blob/main/LICENSE)

## Table of Contents
- [Overview](#overview)
- [Installation](#installation)
    - [IDE](#ide)
        - [VS Code (Recommended)](#vs-code-recommended)
        - [Visual Studio 2026](#visual-studio-2026)
        - [Visual Studio 2022](#visual-studio-2022)
        - [IntelliJ IDEA](#intellij-idea)
        - [Eclipse IDE](#eclipse-ide)
        - [Manual Setup](#manual-setup)
    - [Package Manager](#package-manager)
        - [NuGet](#nuget)
        - [NPM](#npm)
        - [PyPI](#pypi)
        - [Docker](#docker)
    - [Remote MCP Server (preview)](#remote-mcp-server-preview)
- [Usage](#usage)
    - [Getting Started](#getting-started)
    - [What can you do with the Azure MCP Server?](#what-can-you-do-with-the-azure-mcp-server)
    - [Complete List of Supported Azure Services](#complete-list-of-supported-azure-services)
- [Support and Reference](#support-and-reference)
    - [Documentation](#documentation)
    - [Feedback and Support](#feedback-and-support)
    - [Security](#security)
    - [Permissions and Risk](#permissions-and-risk)
    - [Data Collection](#data-collection)
    - [Compliance Responsibility](#compliance-responsibility)
    - [Third Party Components](#third-party-components)
    - [Export Control](#export-control)
    - [No Warranty / Limitation of Liability](#no-warranty--limitation-of-liability)
    - [Contributing](#contributing)
    - [Code of Conduct](#code-of-conduct)

# Overview

**Azure MCP Server** supercharges your agents with Azure context across **40+ different Azure services**.

# Installation
Install Azure MCP Server using either an IDE extension or package manager. Choose one method below.

> [!IMPORTANT]
> Authenticate to Azure before running the Azure MCP server. See the [Authentication guide](https://github.com/microsoft/mcp/blob/main/docs/Authentication.md) for authentication methods and instructions.

## IDE

Start using Azure MCP with your favorite IDE.  We recommend VS Code:

### VS Code (Recommended)
Compatible with both the [Stable](https://code.visualstudio.com/download) and [Insiders](https://code.visualstudio.com/insiders) builds of VS Code.

![Install Azure MCP Server Extension](images/install_azure_mcp_server_extension.gif)

1. Install the [GitHub Copilot Chat](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat) extension.
1. Install the [Azure MCP Server](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azure-mcp-server) extension.
1. Sign in to Azure ([Command Palette](https://code.visualstudio.com/docs/getstarted/getting-started#_access-commands-with-the-command-palette): `Azure: Sign In`).

### Visual Studio 2026
1. Download [Visual Studio 2026](https://visualstudio.microsoft.com/) or [Visual Studio 2026 Insiders](https://visualstudio.microsoft.com/insiders/) and install using the **Visual Studio Installer**.
    - If Visual Studio 2026 is already installed, open the **Visual Studio Installer** and select the **Modify** button, which displays the available workloads.
1. On the Workloads tab, select **Azure and AI development** and select **GitHub Copilot**.
1. Click **install while downloading** to complete the installation.

For more information, visit [Install GitHub Copilot for Azure in Visual Studio 2026](https://aka.ms/ghcp4a/vs2026)

### Visual Studio 2022

From within Visual Studio 2022 install [GitHub Copilot for Azure (VS 2022)](https://marketplace.visualstudio.com/items?itemName=github-copilot-azure.GitHubCopilotForAzure2022):
1. Go to `Extensions | Manage Extensions...`
2. Switch to the `Browse` tab in `Extension Manager`
3. Search for `Github Copilot for Azure`
4. Click `Install`

### IntelliJ IDEA

1. Install either the [IntelliJ IDEA Ultimate](https://www.jetbrains.com/idea/download) or [IntelliJ IDEA Community](https://www.jetbrains.com/idea/download) edition.
1. Install the [GitHub Copilot](https://plugins.jetbrains.com/plugin/17718-github-copilot) plugin.
1. Install the [Azure Toolkit for Intellij](https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij) plugin.

### Eclipse IDE

1. Install [Eclipse IDE](https://www.eclipse.org/downloads/packages/).
1. Install the [GitHub Copilot](https://marketplace.eclipse.org/content/github-copilot) plugin.
1. Install the [Azure Toolkit for Eclipse](https://marketplace.eclipse.org/content/azure-toolkit-eclipse) plugin.

### Manual Setup
Azure MCP Server can also be configured across other IDEs, CLIs, and MCP clients:

<details>
<summary>Manual setup instructions</summary>

Use one of the following options to configure your `mcp.json`:
#### Option 1: Configure using .NET tool (dnx)
- To use Azure MCP server from .NET, you must have [.NET 10 Preview 6 or later](https://dotnet.microsoft.com/download/dotnet/10.0) installed. This version of .NET adds a command, dnx, which is used to download, install, and run the MCP server from [nuget.org](https://www.nuget.org).
To verify the .NET version, run the following command in the terminal: `dotnet --info`
-  Configure the `mcp.json` file with the following:

    ```json
    {
        "mcpServers": {
            "Azure MCP Server": {
                "command": "dnx",
                "args": [
                    "Azure.Mcp",
                    "--source",
                    "https://api.nuget.org/v3/index.json",
                    "--yes",
                    "--",
                    "azmcp",
                    "server",
                    "start"
                ],
                "type": "stdio"
            }
        }
    }
    ```
#### Option 2: Configure using Node.js (npm/npx)
- To use Azure MCP server from node one must have Node.js (LTS) installed and available on your system PATH — this provides both `npm` and `npx`. We recommend Node.js 20 LTS or later. To verify your installation run: `node --version`, `npm --version`, and `npx --version`.
-  Configure the `mcp.json` file with the following:

    ```json
    {
        "mcpServers": {
            "Azure MCP Server": {
            "command": "npx",
            "args": [
                "-y",
                "@azure/mcp@latest",
                "server",
                "start"
                ]
            }
        }
    }
    ```
#### Option 3: Configure using Python (uvx)
- To use Azure MCP server from Python, you must have [uv](https://docs.astral.sh/uv/getting-started/installation/) installed. uv is a fast Python package installer and resolver. To verify your installation run: `uv --version` and `uvx --version`.
-  Configure the `mcp.json` file with the following:

    ```json
    {
        "mcpServers": {
            "Azure MCP Server": {
                "command": "uvx",
                "args": [
                    "--from",
                    "msmcp-azure",
                    "azmcp",
                    "server",
                    "start"
                ]
            }
        }
    }
    ```
**Note:** When manually configuring Visual Studio and Visual Studio Code, use `servers` instead of `mcpServers` as the root object.

**Client-Specific Configuration**
| IDE | File Location | Documentation Link |
|-----|---------------|-------------------|
| **VS Code** | `.vscode/mcp.json` (workspace)<br>`settings.json` (user) | [VS Code MCP Documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) |
| **Visual Studio** | `.mcp.json` (solution/workspace) | [Visual Studio MCP Setup](https://learn.microsoft.com/visualstudio/ide/mcp-servers?view=vs-2022) |
| **GitHub Copilot CLI** | `~/.copilot/mcp-config.json` | [Copilot CLI MCP Configuration](#github-copilot-cli-configuration) |
| **Claude Code** | `~/.claude.json` or `.mcp.json` (project) | [Claude Code MCP Configuration](https://scottspence.com/posts/configuring-mcp-tools-in-claude-code) |
| **Eclipse IDE** | GitHub Copilot Chat -> Configure Tools -> MCP Servers  | [Eclipse MCP Documentation](https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp#configuring-mcp-servers-in-eclipse) |
| **IntelliJ IDEA** | Built-in MCP server (2025.2+)<br>Settings > Tools > MCP Server | [IntelliJ MCP Documentation](https://www.jetbrains.com/help/ai-assistant/mcp.html) |
| **Cursor** | `~/.cursor/mcp.json` or `.cursor/mcp.json` | [Cursor MCP Documentation](https://docs.cursor.com/context/model-context-protocol) |
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | [Windsurf Cascade MCP Integration](https://docs.windsurf.com/windsurf/cascade/mcp) |
| **Amazon Q Developer** | `~/.aws/amazonq/mcp.json` (global)<br>`.amazonq/mcp.json` (workspace) | [AWS Q Developer MCP Guide](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/qdev-mcp.html) |
| **Claude Desktop** | `~/.claude/claude_desktop_config.json` (macOS)<br>`%APPDATA%\Claude\claude_desktop_config.json` (Windows) | [Claude Desktop MCP Setup](https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop) |
</details>

## Package Manager
Package manager installation offers several advantages over IDE-specific setup, including centralized dependency management, CI/CD integration, support for headless/server environments, version control, and project portability.

Install Azure MCP Server via a package manager:

### NuGet

Install the .NET Tool: [Azure.Mcp](https://www.nuget.org/packages/Azure.Mcp).

```bash
dotnet tool install Azure.Mcp
```
or
```bash
dotnet tool install Azure.Mcp --version <version>
```

### NPM

Install the Node.js package: [@azure/mcp](https://www.npmjs.com/package/@azure/mcp).

**Local installation (recommended):**

```bash
npm install @azure/mcp@latest
```

**Install a specific version:**

```bash
npm install @azure/mcp@<version>
```

**Run a command without installing (using npx):**

```bash
npx -y @azure/mcp@latest [command]
```
For example,

Start a server
```bash
npx -y @azure/mcp@latest server start
```

List tools
```bash
npx -y @azure/mcp@latest tools list
```

<details>
<summary>Additional instructions</summary>

**When to use local vs global installation:**

-   **Local (recommended):** Install in the project directory for project-specific tooling, CI/CD pipelines, or when using mcp.json configuration.
-   **Global:** Install system-wide to run `azmcp` commands directly from any terminal.

**Troubleshooting:**
To troubleshoot [@azure/mcp](https://www.npmjs.com/package/@azure/mcp) package (or respective binaries) installation, review the [troubleshooting guide](https://github.com/microsoft/mcp/blob/main/eng/npm/TROUBLESHOOTING.md).

**Architecture:**
To understand how platform-specific binaries are installed with @azure/mcp, review the [wrapper binaries architecture](https://github.com/microsoft/mcp/blob/main/eng/npm/wrapperBinariesArchitecture.md).

</details>

### PyPI

Install the Python package: [msmcp-azure](https://pypi.org/project/msmcp-azure/).

**Run directly without installation (using uvx - recommended):**

```bash
uvx --from msmcp-azure azmcp server start
```

**Install as a global tool (using pipx):**

```bash
pipx install msmcp-azure
```

**Install using pip:**

```bash
pip install msmcp-azure
```

**Install a specific version:**

```bash
pip install msmcp-azure==<version>
```

<details>
<summary>Additional instructions</summary>

**When to use uvx vs pipx vs pip:**

-   **uvx (recommended):** Run directly without installation. Best for MCP server usage where you want the latest version without managing installations.
-   **pipx:** Install as an isolated global tool. Best when you want a persistent installation that doesn't interfere with other Python projects.
-   **pip:** Install in the current Python environment. Best for integration into existing Python projects or virtual environments.

**Prerequisites:**

-   [uv](https://docs.astral.sh/uv/getting-started/installation/) for `uvx` commands
-   Python 3.10+ for `pip` or `pipx` installation

</details>

### Docker

Run the Azure MCP server as a Docker container for easy deployment and isolation. The container image is available at [mcr.microsoft.com/azure-sdk/azure-mcp](https://mcr.microsoft.com/artifact/mar/azure-sdk/azure-mcp).

<details>
<summary>Docker instructions</summary>

#### Create an env file with Azure credentials

1. Create a `.env` file with Azure credentials ([see EnvironmentCredential options](https://learn.microsoft.com/dotnet/api/azure.identity.environmentcredential)):

```bash
AZURE_TENANT_ID={YOUR_AZURE_TENANT_ID}
AZURE_CLIENT_ID={YOUR_AZURE_CLIENT_ID}
AZURE_CLIENT_SECRET={YOUR_AZURE_CLIENT_SECRET}
```

#### Configure MCP client to use Docker

2. Add or update existing `mcp.json`.  Replace `/full/path/to/.env` with the actual `.env` file path.

```json
   {
      "mcpServers": {
         "Azure MCP Server": {
            "command": "docker",
            "args": [
               "run",
               "-i",
               "--rm",
               "--env-file",
               "/full/path/to/.env",
               "mcr.microsoft.com/azure-sdk/azure-mcp:latest"
            ]
         }
      }
   }
```
</details>

To use Azure Entra ID, review the [troubleshooting guide](https://github.com/microsoft/mcp/blob/main/servers/Azure.Mcp.Server/TROUBLESHOOTING.md#using-azure-entra-id-with-docker).

### GitHub Copilot CLI Configuration

[GitHub Copilot CLI](https://github.blog/changelog/2026-01-14-github-copilot-cli-enhanced-agents-context-management-and-new-ways-to-install/) supports MCP servers via the `/mcp` command.

<details>
<summary>GitHub Copilot CLI setup instructions</summary>

#### Add Azure MCP Server

1. In a Copilot CLI session, run `/mcp add` to open the MCP server configuration form.

2. Fill in the fields:

   | Field | Value |
   |-------|-------|
   | **Server Name** | `azure-mcp` |
   | **Server Type** | `1` (Local) |
   | **Command** | `npx -y @azure/mcp@latest server start` |
   | **Environment Variables** | *(leave blank - uses Azure CLI auth)* |
   | **Tools** | `*` |

   > **Alternative Command (using .NET):** `dotnet dnx -p Azure.Mcp server start`

3. Press **Ctrl+S** (or **Cmd+S** on macOS) to save the server configuration.

#### Verification

Verify the MCP server is configured by running:

```
/mcp show
```

You should see output similar to:

```
● MCP Server Configuration:
  • azure-mcp (local): Command: npx

Total servers: 1
Config file: ~/.copilot/mcp-config.json
```

#### Managing MCP Servers

- **List servers:** `/mcp show`
- **Remove a server:** `/mcp remove azure-mcp`
- **Get help:** `/mcp help`

</details>

### GitHub Copilot SDK Configuration

The [GitHub Copilot SDK](https://github.com/github/copilot-sdk) enables programmatic integration of Azure MCP tools into your applications across multiple languages.

<details>
<summary>GitHub Copilot SDK snippets</summary>

# Using GitHub Copilot SDK with Azure MCP

This guide explains how to configure the [GitHub Copilot SDK](https://github.com/github/copilot-sdk) to use Azure MCP (Model Context Protocol) tools for interacting with Azure resources.

## Overview

Azure MCP provides a set of tools that enable AI assistants to interact with Azure resources directly. When integrated with the Copilot SDK, you can build applications that leverage natural language to manage Azure subscriptions, resource groups, storage accounts, and more.

## Prerequisites

1. **GitHub Copilot CLI** - Install from [GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli)
2. **Azure MCP Server** - Available via npm: `@azure/mcp`
3. **Azure CLI** - Authenticated via `az login`
4. **Valid GitHub Copilot subscription**

### Install Azure MCP Server

```bash
# Option 1: Use npx (downloads on demand)
npx -y @azure/mcp@latest server start

# Option 2: Install globally (faster startup)
npm install -g @azure/mcp@latest
```

---

## Key Configuration Insight

> **Important:** MCP servers must be configured in the **session config** for tools to be available. The critical configuration is:

```json
{
  "mcp_servers": {
    "azure-mcp": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start"],
      "tools": ["*"]
    }
  }
}
```

The `tools: ["*"]` parameter is essential - it enables all tools from the MCP server for the session.

---

## Python

### Installation

```bash
pip install github-copilot-sdk
```

### Configuration

```python
import asyncio
from copilot import CopilotClient
from copilot.generated.session_events import SessionEventType

async def main():
    # Initialize the Copilot client
    client = CopilotClient({
        "cli_args": [
            "--allow-all-tools",
            "--allow-all-paths",
        ]
    })

    await client.start()

    # Configure Azure MCP server in session config
    azure_mcp_config = {
        "azure-mcp": {
            "type": "local",
            "command": "npx",
            "args": ["-y", "@azure/mcp@latest", "server", "start"],
            "tools": ["*"],  # Enable all Azure MCP tools
        }
    }

    # Create session with MCP servers
    session = await client.create_session({
        "model": "gpt-4.1",  # Default model; BYOK can override
        "streaming": True,
        "mcp_servers": azure_mcp_config,
    })

    # Handle events
    def handle_event(event):
        if event.type == SessionEventType.ASSISTANT_MESSAGE_DELTA:
            if hasattr(event.data, 'delta_content') and event.data.delta_content:
                print(event.data.delta_content, end="", flush=True)
        elif event.type == SessionEventType.TOOL_EXECUTION_START:
            tool_name = getattr(event.data, 'tool_name', 'unknown')
            print(f"\n[TOOL: {tool_name}]")

    session.on(handle_event)

    # Send prompt
    await session.send_and_wait({
        "prompt": "List all resource groups in my Azure subscription"
    })

    await client.stop()

if __name__ == "__main__":
    asyncio.run(main())
```

---

## Node.js / TypeScript

### Installation

```bash
npm install @github/copilot-sdk
```

### Configuration (TypeScript)

```typescript
import { CopilotClient, SessionEventType } from '@github/copilot-sdk';

async function main() {
  // Initialize the Copilot client
  const client = new CopilotClient({
    cliArgs: [
      '--allow-all-tools',
      '--allow-all-paths',
    ]
  });

  await client.start();

  // Configure Azure MCP server in session config
  const azureMcpConfig = {
    'azure-mcp': {
      type: 'local' as const,
      command: 'npx',
      args: ['-y', '@azure/mcp@latest', 'server', 'start'],
      tools: ['*'],  // Enable all Azure MCP tools
    }
  };

  // Create session with MCP servers
  const session = await client.createSession({
    model: 'gpt-4.1',  // Default model; BYOK can override
    streaming: true,
    mcpServers: azureMcpConfig,
  });

  // Handle events
  session.on((event) => {
    if (event.type === SessionEventType.ASSISTANT_MESSAGE_DELTA) {
      if (event.data?.deltaContent) {
        process.stdout.write(event.data.deltaContent);
      }
    } else if (event.type === SessionEventType.TOOL_EXECUTION_START) {
      const toolName = event.data?.toolName || 'unknown';
      console.log(`\n[TOOL: ${toolName}]`);
    }
  });

  // Send prompt
  await session.sendAndWait({
    prompt: 'List all resource groups in my Azure subscription'
  });

  await client.stop();
}

main().catch(console.error);
```

---

## Go

### Installation

```bash
go get github.com/github/copilot-sdk/go
```

### Configuration

```go
package main

import (
    "context"
    "fmt"
    "log"

    copilot "github.com/github/copilot-sdk/go"
)

func main() {
    ctx := context.Background()

    // Initialize the Copilot client
    client, err := copilot.NewClient(copilot.ClientOptions{
        CLIArgs: []string{
            "--allow-all-tools",
            "--allow-all-paths",
        },
    })
    if err != nil {
        log.Fatal(err)
    }

    if err := client.Start(ctx); err != nil {
        log.Fatal(err)
    }
    defer client.Stop(ctx)

    // Configure Azure MCP server in session config
    azureMcpConfig := map[string]copilot.MCPServerConfig{
        "azure-mcp": {
            Type:    "local",
            Command: "npx",
            Args:    []string{"-y", "@azure/mcp@latest", "server", "start"},
            Tools:   []string{"*"}, // Enable all Azure MCP tools
        },
    }

    // Create session with MCP servers
    session, err := client.CreateSession(ctx, copilot.SessionConfig{
        Model:      "gpt-4.1",  // Default model; BYOK can override
        Streaming:  true,
        MCPServers: azureMcpConfig,
    })
    if err != nil {
        log.Fatal(err)
    }

    // Handle events
    session.OnEvent(func(event copilot.SessionEvent) {
        switch event.Type {
        case copilot.AssistantMessageDelta:
            if event.Data.DeltaContent != "" {
                fmt.Print(event.Data.DeltaContent)
            }
        case copilot.ToolExecutionStart:
            fmt.Printf("\n[TOOL: %s]\n", event.Data.ToolName)
        }
    })

    // Send prompt
    err = session.SendAndWait(ctx, copilot.Message{
        Prompt: "List all resource groups in my Azure subscription",
    })
    if err != nil {
        log.Fatal(err)
    }
}
```

---

## .NET

### Installation

```bash
dotnet add package GitHub.Copilot.SDK
```

### Configuration (C#)

```csharp
using GitHub.Copilot.SDK;
using GitHub.Copilot.SDK.Models;

class Program
{
    static async Task Main(string[] args)
    {
        // Initialize the Copilot client
        var client = new CopilotClient(new CopilotClientOptions
        {
            CliArgs = new[] { "--allow-all-tools", "--allow-all-paths" }
        });

        await client.StartAsync();

        // Configure Azure MCP server in session config
        var azureMcpConfig = new Dictionary<string, MCPServerConfig>
        {
            ["azure-mcp"] = new MCPServerConfig
            {
                Type = "local",
                Command = "npx",
                Args = new[] { "-y", "@azure/mcp@latest", "server", "start" },
                Tools = new[] { "*" }  // Enable all Azure MCP tools
            }
        };

        // Create session with MCP servers
        var session = await client.CreateSessionAsync(new SessionConfig
        {
            Model = "gpt-4.1",  // Default model; BYOK can override
            Streaming = true,
            McpServers = azureMcpConfig
        });

        // Handle events
        session.OnEvent += (sender, e) =>
        {
            switch (e.Type)
            {
                case SessionEventType.AssistantMessageDelta:
                    if (!string.IsNullOrEmpty(e.Data?.DeltaContent))
                    {
                        Console.Write(e.Data.DeltaContent);
                    }
                    break;
                case SessionEventType.ToolExecutionStart:
                    Console.WriteLine($"\n[TOOL: {e.Data?.ToolName}]");
                    break;
            }
        };

        // Send prompt
        await session.SendAndWaitAsync(new Message
        {
            Prompt = "List all resource groups in my Azure subscription"
        });

        await client.StopAsync();
    }
}
```

---

> **Note:** If startup is slow, use a pinned version (`@azure/mcp@2.0.0-beta.13` instead of `@latest`) or install globally (`npm install -g @azure/mcp@latest`).

</details>


## Remote MCP Server (preview)

Microsoft Foundry and Microsoft Copilot Studio require remote MCP server endpoints. To self-host the Azure MCP Server for use with these platforms, deploy it as a remote MCP server on [Azure Container Apps](https://learn.microsoft.com/azure/container-apps/overview).

Check out the remote hosting [azd templates](https://github.com/microsoft/mcp/blob/main/servers/Azure.Mcp.Server/azd-templates/README.md) for deployment options.


# Usage

## Getting Started

1. Open GitHub Copilot in [VS Code](https://code.visualstudio.com/docs/copilot/chat/chat-agent-mode) or [IntelliJ](https://github.blog/changelog/2025-05-19-agent-mode-and-mcp-support-for-copilot-in-jetbrains-eclipse-and-xcode-now-in-public-preview/#agent-mode) and switch to Agent mode.
1. Click `refresh` on the tools list
    - You should see the Azure MCP Server in the list of tools
1. Try a prompt that tells the agent to use the Azure MCP Server, such as `List my Azure Storage containers`
    - The agent should be able to use the Azure MCP Server tools to complete your query
1. Check out the [documentation](https://learn.microsoft.com/azure/developer/azure-mcp-server/) and review the [troubleshooting guide](https://github.com/microsoft/mcp/blob/main/servers/Azure.Mcp.Server/TROUBLESHOOTING.md) for commonly asked questions
1. We're building this in the open. Your feedback is much appreciated, and will help us shape the future of the Azure MCP server
    - 👉 [Open an issue in the public repository](https://github.com/microsoft/mcp/issues/new/choose)

## What can you do with the Azure MCP Server?

✨ The Azure MCP Server supercharges your agents with Azure context. Here are some cool prompts you can try:

### 🧮 Microsoft Foundry

* List Microsoft Foundry models
* Deploy Microsoft Foundry models
* List Microsoft Foundry model deployments
* List knowledge indexes
* Get knowledge index schema configuration
* Create Microsoft Foundry agents
* List Microsoft Foundry agents
* Connect and query Microsoft Foundry agents
* Evaluate Microsoft Foundry agents
* Get SDK samples for interacting with Microsoft Foundry agent
* Create Microsoft Foundry agent threads
* List Microsoft Foundry agent threads
* Get messages of a Microsoft Foundry thread

### 📊 Azure Advisor

* "List my Advisor recommendations"

### 🔎 Azure AI Search

* "What indexes do I have in my Azure AI Search service 'mysvc'?"
* "Let's search this index for 'my search query'"

### 🎤 Azure AI Services Speech

* "Convert this audio file to text using Azure Speech Services"
* "Recognize speech from my audio file with language detection"
* "Transcribe speech from audio with profanity filtering"
* "Transcribe audio with phrase hints for better accuracy"
* "Convert text to speech and save to output.wav"
* "Synthesize speech from 'Hello, welcome to Azure' with Spanish voice"
* "Generate MP3 audio from text with high quality format"

### ⚙️ Azure App Configuration

* "List my App Configuration stores"
* "Show my key-value pairs in App Config"

### ⚙️ Azure App Lens

* "Help me diagnose issues with my app"

### 🕸️ Azure App Service

* "List the websites in my subscription"
* "Show me the websites in my 'my-resource-group' resource group"
* "Get the details for website 'my-website'"
* "Get the details for app service plan 'my-app-service-plan'"

### 🖥️ Azure CLI Generate

* Generate Azure CLI commands based on user intent

### 🖥️ Azure CLI Install

* Get installation instructions for Azure CLI, Azure Developer CLI and Azure Functions Core Tools CLI for your platform.

### 📞 Azure Communication Services

* "Send an SMS message to +1234567890"
* "Send SMS with delivery reporting enabled"
* "Send a broadcast SMS to multiple recipients"
* "Send SMS with custom tracking tag"
* "Send an email from 'sender@example.com' to 'recipient@example.com' with subject 'Hello' and message 'Welcome!'"
* "Send an HTML email to multiple recipients with CC and BCC using Azure Communication Services"
* "Send an email with reply-to address 'reply@example.com' and subject 'Support Request'"
* "Send an email from my communication service endpoint with custom sender name and multiple recipients"
* "Send an email to 'user1@example.com' and 'user2@example.com' with subject 'Team Update' and message 'Please review the attached document.'"

### � Azure Compute

* "List all virtual machines in my subscription"
* "Show me all VMs in resource group 'my-resource-group'"
* "Get details for virtual machine 'my-vm' in resource group 'my-resource-group'"
* "Get virtual machine 'my-vm' with instance view including power state and runtime status"
* "Show me the power state and provisioning status of VM 'my-vm'"
* "What is the current status of my virtual machine 'my-vm'?"

### �📦 Azure Container Apps

* "List the container apps in my subscription"
* "Show me the container apps in my 'my-resource-group' resource group"

### 🔐 Azure Confidential Ledger

* "Append entry {"foo":"bar"} to ledger contoso"
* "Get entry with id 2.40 from ledger contoso"

### 📦 Azure Container Registry (ACR)

* "List all my Azure Container Registries"
* "Show me my container registries in the 'my-resource-group' resource group"
* "List all my Azure Container Registry repositories"

### 📊 Azure Cosmos DB

* "Show me all my Cosmos DB databases"
* "List containers in my Cosmos DB database"

### 🧮 Azure Data Explorer

* "Get Azure Data Explorer databases in cluster 'mycluster'"
* "Sample 10 rows from table 'StormEvents' in Azure Data Explorer database 'db1'"

### 📣 Azure Event Grid

* "List all Event Grid topics in subscription 'my-subscription'"
* "Show me the Event Grid topics in my subscription"
* "List all Event Grid topics in resource group 'my-resourcegroup' in my subscription"
* "List Event Grid subscriptions for topic 'my-topic' in resource group 'my-resourcegroup'"
* "List Event Grid subscriptions for topic 'my-topic' in subscription 'my-subscription'"
* "List Event Grid Subscriptions in subscription 'my-subscription'"
* "List Event Grid subscriptions for topic 'my-topic' in location 'my-location'"
* "Publish an event with data '{\"name\": \"test\"}' to topic 'my-topic' using CloudEvents schema"
* "Send custom event data to Event Grid topic 'analytics-events' with EventGrid schema"

### 📂 Azure File Shares

* "Get details about a specific file share in my resource group"
* "Create a new Azure managed file share with NFS protocol"
* "Create a file share with 64 GiB storage, 3000 IOPS, and 125 MiB/s throughput"
* "Update the provisioned storage size of my file share"
* "Update network access settings for my file share"
* "Delete a file share from my resource group"
* "Check if a file share name is available"
* "Get details about a file share snapshot"
* "Create a snapshot of my file share"
* "Update tags on a file share snapshot"
* "Delete a file share snapshot"
* "Get a private endpoint connection for my file share"
* "Update private endpoint connection status to Approved"
* "Delete a private endpoint connection"
* "Get file share limits and quotas for a region"
* "Get provisioning recommendations for my file share workload"
* "Get usage data and metrics for my file share"

### 🔑 Azure Key Vault

* "List all secrets in my key vault 'my-vault'"
* "Create a new secret called 'apiKey' with value 'xyz' in key vault 'my-vault'"
* "List all keys in key vault 'my-vault'"
* "Create a new RSA key called 'encryption-key' in key vault 'my-vault'"
* "List all certificates in key vault 'my-vault'"
* "Import a certificate file into key vault 'my-vault' using the name 'tls-cert'"
* "Get the account settings for my key vault 'my-vault'"

### ☸️ Azure Kubernetes Service (AKS)

* "List my AKS clusters in my subscription"
* "Show me all my Azure Kubernetes Service clusters"
* "List the node pools for my AKS cluster"
* "Get details for the node pool 'np1' of my AKS cluster 'my-aks-cluster' in the 'my-resource-group' resource group"

### ⚡ Azure Managed Lustre

* "List the Azure Managed Lustre clusters in resource group 'my-resource-group'"
* "How many IP Addresses I need to create a 128 TiB cluster of AMLFS 500?"
* "Check if 'my-subnet-id' can host an Azure Managed Lustre with 'my-size' TiB and 'my-sku' in 'my-region'
* Create a 4 TIB Azure Managed Lustre filesystem in 'my-region' attaching to 'my-subnet' in virtual network 'my-virtual-network'

### 📊 Azure Monitor

* "Query my Log Analytics workspace"

### 🔧 Azure Resource Management

* "List my resource groups"
* "List my Azure CDN endpoints"
* "Help me build an Azure application using Node.js"

### 🗄️ Azure SQL Database

* "List all SQL servers in my subscription"
* "List all SQL servers in my resource group 'my-resource-group'"
* "Show me details about my Azure SQL database 'mydb'"
* "List all databases in my Azure SQL server 'myserver'"
* "Update the performance tier of my Azure SQL database 'mydb'"
* "Rename my Azure SQL database 'mydb' to 'newname'"
* "List all firewall rules for my Azure SQL server 'myserver'"
* "Create a firewall rule for my Azure SQL server 'myserver'"
* "Delete a firewall rule from my Azure SQL server 'myserver'"
* "List all elastic pools in my Azure SQL server 'myserver'"
* "List Active Directory administrators for my Azure SQL server 'myserver'"
* "Create a new Azure SQL server in my resource group 'my-resource-group'"
* "Show me details about my Azure SQL server 'myserver'"
* "Delete my Azure SQL server 'myserver'"

### 💾 Azure Storage

* "List my Azure storage accounts"
* "Get details about my storage account 'mystorageaccount'"
* "Create a new storage account in East US with Data Lake support"
* "Get details about my Storage container"
* "Upload my file to the blob container"

### 🔄 Azure Migrate

* "Generate a Platform Landing Zone"
* "Turn off DDoS protection in my Platform Landing Zone"
* "Turn off Bastion host in my Platform Landing Zone"

## Complete List of Supported Azure Services

The Azure MCP Server provides tools for interacting with **42+ Azure service areas**:

- 🧮 **Microsoft Foundry** - AI model management, AI model deployment, and knowledge index management
- 📊 **Azure Advisor** - Advisor recommendations
- 🔎 **Azure AI Search** - Search engine/vector database operations
- 🎤 **Azure AI Services Speech** - Speech-to-text recognition and text-to-speech synthesis
- ⚙️ **Azure App Configuration** - Configuration management
- 🕸️ **Azure App Service** - Web app hosting
- 🛡️ **Azure Best Practices** - Secure, production-grade guidance
- 🖥️ **Azure CLI Generate** - Generate Azure CLI commands from natural language
- 📞 **Azure Communication Services** - SMS messaging and communication
- � **Azure Compute** - Virtual Machine and Virtual Machine Scale Set management
- �🔐 **Azure Confidential Ledger** - Tamper-proof ledger operations
- 📦 **Azure Container Apps** - Container hosting
- 📦 **Azure Container Registry (ACR)** - Container registry management
- 📊 **Azure Cosmos DB** - NoSQL database operations
- 🧮 **Azure Data Explorer** - Analytics queries and KQL
- 🐬 **Azure Database for MySQL** - MySQL database management
- 🐘 **Azure Database for PostgreSQL** - PostgreSQL database management
- 📊 **Azure Event Grid** - Event routing and management
- � **Azure File Shares** - Azure managed file share operations
- ⚡ **Azure Functions** - Function App management
- 🔑 **Azure Key Vault** - Secrets, keys, and certificates
- ☸️ **Azure Kubernetes Service (AKS)** - Container orchestration
- 📦 **Azure Load Testing** - Performance testing
- 🚀 **Azure Managed Grafana** - Monitoring dashboards
- 🗃️ **Azure Managed Lustre** - High-performance Lustre filesystem operations
- 🏪 **Azure Marketplace** - Product discovery
- 🔄 **Azure Migrate** - Platform Landing Zone generation and modification guidance
- 📈 **Azure Monitor** - Logging, metrics, and health monitoring
- ⚖️ **Azure Policy** - Policies set to enforce organizational standards
- ⚙️ **Azure Native ISV Services** - Third-party integrations
- 🛡️ **Azure Quick Review CLI** - Compliance scanning
- 📊 **Azure Quota** - Resource quota and usage management
- 🎭 **Azure RBAC** - Access control management
- 🔴 **Azure Redis Cache** - In-memory data store
- 🏗️ **Azure Resource Groups** - Resource organization
- 🚌 **Azure Service Bus** - Message queuing
- 🏥 **Azure Service Health** - Resource health status and availability
- 🗄️ **Azure SQL Database** - Relational database management
- 🗄️ **Azure SQL Elastic Pool** - Database resource sharing
- 🗄️ **Azure SQL Server** - Server administration
- 💾 **Azure Storage** - Blob storage
-  **Azure Storage Sync** - Azure File Sync management operations
- 📋 **Azure Subscription** - Subscription management
- 🏗️ **Azure Terraform Best Practices** - Infrastructure as code guidance
- 🖥️ **Azure Virtual Desktop** - Virtual desktop infrastructure
- 📊 **Azure Workbooks** - Custom visualizations
- 🏗️ **Bicep** - Azure resource templates
- 🏗️ **Cloud Architect** - Guided architecture design

# Support and Reference

## Documentation

- See our [official documentation on learn.microsoft.com](https://learn.microsoft.com/azure/developer/azure-mcp-server/) to learn how to use the Azure MCP Server to interact with Azure resources through natural language commands from AI agents and other types of clients.
- For additional command documentation and examples, see [Azure MCP Commands](https://github.com/microsoft/mcp/blob/main/servers/Azure.Mcp.Server/docs/azmcp-commands.md).

## Feedback and Support

- Check the [Troubleshooting guide](https://aka.ms/azmcp/troubleshooting) to diagnose and resolve common issues with the Azure MCP Server.
- For advanced troubleshooting, you can enable [support logging](https://github.com/microsoft/mcp/blob/main/servers/Azure.Mcp.Server/TROUBLESHOOTING.md#support-logging) using the `--dangerously-write-support-logs-to-dir` option.
-