The Azure MCP Server implements the MCP specification 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 in VS Code. This project is in Public Preview and implementation may significantly change prior to our General Availability.
Here's a short (16 seconds) video to help you get the Azure MCP Server installed in VS Code.
AzureMCPServerQuickstart.mp4
- Install either the stable or Insiders release of VS Code:
- Install the GitHub Copilot and GitHub Copilot Chat extensions
- Install Node.js 20 or later
- Ensure
npx
is your path
- Ensure
- Install any of the available Azure MCP Servers from the table below.
- Open GitHub Copilot in VS Code and switch to Agent mode
- Click
refresh
on the tools list.
- Open GitHub Copilot in VS Code and switch to Agent mode
- You should see the Azure MCP Server in the list of tools
- 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
- Check out the documentation and troubleshooting guide
The Azure MCP Server supercharges your agents with Azure context. Here are some cool prompts you can try:
- "What indexes do I have in my Azure AI Search service 'mysvc'?"
- "Let's search this index for 'my search query'"
- "List my App Configuration stores"
- "List my AKS clusters in my subscription"
- "Show me all my Azure Kubernetes Service clusters"
- "Show me all my Cosmos DB databases"
- "List containers in my Cosmos DB database"
- "Get Azure Data Explorer databases in cluster 'mycluster'"
- "Sample 10 rows from table 'StormEvents' in Azure Data Explorer database 'db1'"
- "Query my Log Analytics workspace"
- "Show me details about my Azure SQL database 'mydb'"
- "List Active Directory administrators for my SQL server 'myserver'"
- "List my Azure storage accounts"
- "Show me the tables in my Storage account"
- "Get details about my Storage container"
- "Show my key-value pairs in App Config"
- "List my resource groups"
- "List my Azure CDN endpoints"
- "Help me build an Azure application using Node.js"
The Azure MCP Server provides tools for interacting with the following Azure services
- List Azure AI Search services
- List indexes and look at their schema and configuration
- Query search indexes
- List App Configuration stores
- Manage key-value pairs
- Handle labeled configurations
- Lock/unlock configuration settings
- Execute Azure CLI commands directly
- Support for all Azure CLI functionality
- JSON output formatting
- Cross-platform compatibility
- List Cosmos DB accounts
- List and query databases
- Manage containers and items
- Execute SQL queries against containers
- List Azure Data Explorer clusters
- List databases
- List tables
- Get schema for a table
- Sample rows from a table
- Query using KQL
- List and query databases.
- List and get schema for tables.
- List, get configuration and get parameters for servers.
- Execute Azure Developer CLI commands directly
- Support for template discovery, template initialization, provisioning and deployment
- Cross-platform compatibility
- List Azure Foundry models
- Deploy foundry models
- List foundry model deployments
- List Azure Managed Grafana
- List, create, and get keys
- List Log Analytics workspaces
- Query logs using KQL
- List available tables
- Get health of an entity
- Query Azure Monitor metrics for resources with time series data
- List available metric definitions for resources
- List Monitored Resources in a Datadog Monitor
- List resource groups
- List role assignments
- Examine properties and runtime information about queues, topics, and subscriptions
- Show database details and properties
- List Storage accounts
- Manage blob containers and blobs
- List and query Storage tables
- Get container properties and metadata
Agents and models can discover and learn best practices and usage guidelines for the azd
MCP tool. For more information, see AZD Best Practices.
- Get secure, production-grade Azure SDK best practices for effective code generation.
For detailed command documentation and examples, see Azure MCP Commands.
How to stay current with releases of Azure MCP Server
If you use the default package spec of @azure/mcp@latest
, npx will look for a new version on each server start. If you use just @azure/mcp
, npx will continue to use its cached version until its cache is cleared.
If you globally install the cli via npm install -g @azure/mcp
it will use the installed version until you manually update it with npm update -g @azure/mcp
.
There is no version update built into the docker image. To update, just pull the latest from the repo and repeat the docker installation instructions.
Installation in VS Code should be in one of the previous forms and the update instructions are the same. If you installed the mcp server with the npx
command and -y @azure/mcp@latest
args, npx will check for package updates each time VS Code starts the server. Using a docker container in VS Code has the same no-update limitation described above.
Docker containers, custom MCP clients, and manual install options
For a step-by-step Docker installation, follow these instructions:
- Clone repository
- From repository root, build Docker image:
docker build -t azure/azuremcp .
- Create an
.env
file with environment variables that match one of theEnvironmentCredential
sets. For example, a.env
file using a service principal could look like:
AZURE_TENANT_ID={YOUR_AZURE_TENANT_ID}
AZURE_CLIENT_ID={YOUR_AZURE_CLIENT_ID}
AZURE_CLIENT_SECRET={YOUR_AZURE_CLIENT_SECRET}
- Add
.vscode/mcp.json
or update existing MCP configuration. Replace/full/path/to/.env
with a path to your.env
file.
{
"servers": {
"Azure MCP Server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--env-file",
"/full/path/to/.env"
"azure/azuremcp",
]
}
}
}
Optionally, customers can use --env
or --volume
to pass authentication values.
You can easily configure your MCP client to use the Azure MCP Server. Have your client run the following command and access it via standard IO or SSE.
For a step-by-step installation, follow these instructions:
- Add
.vscode/mcp.json
:
{
"servers": {
"Azure MCP Server": {
"command": "npx",
"args": [
"-y",
"@azure/mcp@latest",
"server",
"start"
]
}
}
}
You can optionally set the --namespace <namespace>
flag to install tools for the specified Azure product or service.
- Add
.vscode/mcp.json
:
{
"servers": {
"Azure Best Practices": {
"command": "npx",
"args": [
"-y",
"@azure/mcp@latest",
"server",
"start",
"--namespace",
"bestpractices" // Any of the available MCP servers can be referenced here.
]
}
}
}
Configure the MCP client to execute: npx -y @azure/mcp@latest server start
. For instructions on using , follow instructions in Quick install with VS Code or Manual Install.
- Open a terminal window and execute:
npx -y @azure/mcp@latest server start --transport sse
- The server starts up and is hosted at: http://localhost:5008. To use another port, append
--port {YOUR-PORT-NUMBER}
. - Open your MCP client and add the SSE configuration value. This may differ between MCP clients. In VS Code, it will look like:
{ "servers": { "Azure MCP Server": { "type": "sse", "url": "http://localhost:5008/sse" } } }
More end-to-end MCP client/agent guides are coming soon!
The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkId=521839. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.
Telemetry collection is on by default.
To opt out, set the environment variable AZURE_MCP_COLLECT_TELEMETRY
to false
in your environment.
See Troubleshooting guide for help with common issues and logging.
Authentication options including DefaultAzureCredential flow, RBAC permissions, troubleshooting, and production credentials
The Azure MCP Server uses the Azure Identity library for .NET to authenticate to Microsoft Entra ID. For detailed information, see Authentication Fundamentals.
If you're running into any issues with authentication, visit our troubleshooting guide.
For enterprise authentication scenarios, including network restrictions, security policies, and protected resources, see Authentication Scenarios in Enterprise Environments.
Your credentials are always handled securely through the official Azure Identity SDK - we never store or manage tokens directly.
MCP as a phenomenon is very novel and cutting-edge. As with all new technology standards, consider doing a security review to ensure any systems that integrate with MCP servers follow all regulations and standards your system is expected to adhere to. This includes not only the Azure MCP Server, but any MCP client/agent that you choose to implement down to the model provider.
We welcome contributions to the Azure MCP Server! Whether you're fixing bugs, adding new features, or improving documentation, your contributions are welcome.
Please read our Contributing Guide for guidelines on:
- 🛠️ Setting up your development environment
- ✨ Adding new commands
- 📝 Code style and testing requirements
- 🔄 Making pull requests
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.
This project has adopted the Microsoft Open Source Code of Conduct. For more information, see the Code of Conduct FAQ or contact open@microsoft.com with any additional questions or comments.