Render MCP Server
OFFICIAL SERVERCreate, deploy and troubleshoot Render services, Postgres and Key Value from an AI client
Microsoft's MCP server for querying and managing Azure resources, from storage and databases to AKS.
Official · Microsoft C# Local · stdio Cloud platformsDatabasesDevOps and monitoring
103 popularity score ★ 3.8k ↓ 199k/wk
Opens the app, which asks before it adds the server.
claude mcp add azure -- npx -y @azure/mcp@latest server start{
"mcpServers": {
"azure": {
"command": "npx",
"args": [
"-y",
"@azure/mcp@latest",
"server",
"start"
]
}
}
}{
"mcpServers": {
"azure": {
"command": "npx",
"args": [
"-y",
"@azure/mcp@latest",
"server",
"start"
]
}
}
}{
"servers": {
"azure": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@azure/mcp@latest",
"server",
"start"
]
}
}
}[mcp_servers.azure]
command = "npx"
args = ["-y", "@azure/mcp@latest", "server", "start"]gemini mcp add --scope user azure npx -- -y @azure/mcp@latest server startOpens the app, which asks before it adds the server.
claude mcp add azure -- uvx --from msmcp-azure azmcp server start{
"mcpServers": {
"azure": {
"command": "uvx",
"args": [
"--from",
"msmcp-azure",
"azmcp",
"server",
"start"
]
}
}
}{
"mcpServers": {
"azure": {
"command": "uvx",
"args": [
"--from",
"msmcp-azure",
"azmcp",
"server",
"start"
]
}
}
}{
"servers": {
"azure": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"msmcp-azure",
"azmcp",
"server",
"start"
]
}
}
}[mcp_servers.azure]
command = "uvx"
args = ["--from", "msmcp-azure", "azmcp", "server", "start"]gemini mcp add --scope user azure uvx -- --from msmcp-azure azmcp server startOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
claude mcp add azure -- docker run -i --rm --env-file '<ABSOLUTE_PATH_TO_ENV_FILE>' mcr.microsoft.com/azure-sdk/azure-mcp:latest{
"mcpServers": {
"azure": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--env-file",
"<ABSOLUTE_PATH_TO_ENV_FILE>",
"mcr.microsoft.com/azure-sdk/azure-mcp:latest"
]
}
}
}{
"mcpServers": {
"azure": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--env-file",
"<ABSOLUTE_PATH_TO_ENV_FILE>",
"mcr.microsoft.com/azure-sdk/azure-mcp:latest"
]
}
}
}{
"servers": {
"azure": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--env-file",
"<ABSOLUTE_PATH_TO_ENV_FILE>",
"mcr.microsoft.com/azure-sdk/azure-mcp:latest"
]
}
}
}[mcp_servers.azure]
command = "docker"
args = ["run", "-i", "--rm", "--env-file", "<ABSOLUTE_PATH_TO_ENV_FILE>", "mcr.microsoft.com/azure-sdk/azure-mcp:latest"]gemini mcp add --scope user azure docker -- run -i --rm --env-file '<ABSOLUTE_PATH_TO_ENV_FILE>' mcr.microsoft.com/azure-sdk/azure-mcp:latestAZURE_TOKEN_CREDENTIALS |
Optional: Pins the credential to use: dev, prod or one credential name such as AzureCliCredential. Unset, it tries developer sign-ins in turn. |
|---|---|
AZURE_CLOUD |
Optional: Sovereign cloud such as AzureChinaCloud or AzureUSGovernment. Same as --cloud. |
AZURE_MCP_COLLECT_TELEMETRY |
Optional: Set to false to stop all telemetry. |
AZURE_MCP_COLLECT_TELEMETRY_MICROSOFT |
Optional: Set to false to stop only the telemetry sent to Microsoft. |
APPLICATIONINSIGHTS_CONNECTION_STRING secret |
Optional: Sends telemetry to your own Application Insights resource as well. |
AZURE_MCP_CLIENT_ID |
Optional: Client ID of the app registration to sign in with. |
AZURE_MCP_ONLY_USE_BROKER_CREDENTIAL |
Optional: Set true to sign in only through the browser or system broker. |
AZURE_MCP_BROWSER_AUTH_TIMEOUT_SECONDS |
Optional: How long interactive browser sign-in waits, in seconds. |
AZURE_MCP_ENABLE_OTLP_EXPORTER |
Optional: Set true to export traces over OTLP. |
ASPNETCORE_URLS |
Optional: Address to listen on with --transport http. One URL only. |
In a container, a setting goes in with -e NAME=value after docker run.
Microsoft's own server for working with Azure from a chat client. It reaches a long list of services, from storage accounts and Cosmos DB to Key Vault, AKS, App Service, Service Bus, Log Analytics queries, AI Search and Foundry. Next to the resource tools sit guidance tools for Bicep and Terraform, a retail price lookup and a helper that writes Azure CLI commands.
In the default namespace mode each service is one tool. The client sends an intent and can ask the tool to list its sub-commands before it picks one. Counted in the source of the published release, that comes to 69 tools, or 70 when the azqr extension is switched on. The code also has a consolidated mode with 168 task-shaped tools, which the README never mentions. --mode all gives one tool per command and --mode single gives one azure tool. Unless you pass --disable-proxy-tools, it also proxies the Microsoft Learn documentation tools.
You can run it locally through npx, uvx, a .NET tool or the Docker image, or host it yourself over HTTP. In HTTP mode it listens on 127.0.0.1:5001 unless ASPNETCORE_URLS points elsewhere. Sign-in goes through the Azure Identity credential chain, so an existing az login usually does the job. Before a command returns something sensitive such as a Key Vault secret, the server asks the user to confirm. Starting it with --dangerously-disable-elicitation removes that prompt.
| Runtime | Node.js |
|---|---|
| Runs on | macOS, Windows, Linux |
| Azure | Paid planActs with the RBAC roles of the signed-in identity, and resources it creates are billed to that subscription. |
| Also |
|
Sign in before starting it, for example with az login or Connect-AzAccount, or pick a credential with AZURE_TOKEN_CREDENTIALS. The uvx way needs uv. The .NET tool needs the .NET 10 SDK. For Docker, put a service principal's tenant ID, client ID and client credential in an env file and pass its full path with --env-file.
Teams already on Azure who want a chat client to look at and change their resources with their own credentials, from a laptop or a shared self-hosted endpoint. Because it can delete anything the signed-in roles permit, give it a least-privilege identity or run it with --read-only. If all you need is Microsoft documentation, the Microsoft Learn server (microsoft-learn-mcp, which we also list) answers that without touching a subscription.
34 only read, 4 change things, 22 can delete or overwrite. A ? marks an optional parameter.
get_azure_bestpracticesintent: stringcommand?: stringparameters?: objectlearn?: booleansubscription_listgroup_listgroup_resource_liststorage deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanfileshares deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanstoragesync deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanmanagedlustre deletesintent: stringcommand?: stringparameters?: objectlearn?: booleancosmosintent: stringcommand?: stringparameters?: objectlearn?: booleansql deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanpostgres deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanmysql deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanredis deletesintent: stringcommand?: stringparameters?: objectlearn?: booleankustointent: stringcommand?: stringparameters?: objectlearn?: booleankeyvault deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanconfidentialledger changesintent: stringcommand?: stringparameters?: objectlearn?: booleanroleintent: stringcommand?: stringparameters?: objectlearn?: booleanpolicyintent: stringcommand?: stringparameters?: objectlearn?: booleancompute deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanaksintent: stringcommand?: stringparameters?: objectlearn?: booleanacrintent: stringcommand?: stringparameters?: objectlearn?: booleancontainerappsintent: stringcommand?: stringparameters?: objectlearn?: booleanappservice deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanfunctionappintent: stringcommand?: stringparameters?: objectlearn?: booleanfunctionsintent: stringcommand?: stringparameters?: objectlearn?: booleanappconfig deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanservicebusintent: stringcommand?: stringparameters?: objectlearn?: booleaneventhubs deletesintent: stringcommand?: stringparameters?: objectlearn?: booleaneventgrid changesintent: stringcommand?: stringparameters?: objectlearn?: booleansignalrintent: stringcommand?: stringparameters?: objectlearn?: booleancommunication changesintent: stringcommand?: stringparameters?: objectlearn?: booleanmonitor deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanapplicationinsightsintent: stringcommand?: stringparameters?: objectlearn?: booleangrafanaintent: stringcommand?: stringparameters?: objectlearn?: booleanworkbooks deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanadvisor deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanresourcehealthintent: stringcommand?: stringparameters?: objectlearn?: booleanapplensintent: stringcommand?: stringparameters?: objectlearn?: booleansearchintent: stringcommand?: stringparameters?: objectlearn?: booleanspeech changesintent: stringcommand?: stringparameters?: objectlearn?: booleanfoundryextensionsintent: stringcommand?: stringparameters?: objectlearn?: booleanloadtesting deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanvirtualdesktopintent: stringcommand?: stringparameters?: objectlearn?: booleaniothubintent: stringcommand?: stringparameters?: objectlearn?: booleaniotoperationsintent: stringcommand?: stringparameters?: objectlearn?: booleanazurebackup deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanresiliency deletesintent: stringcommand?: stringparameters?: objectlearn?: booleansreagent deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanservicefabric deletesintent: stringcommand?: stringparameters?: objectlearn?: booleanquotaintent: stringcommand?: stringparameters?: objectlearn?: booleanpricingintent: stringcommand?: stringparameters?: objectlearn?: booleanmarketplaceintent: stringcommand?: stringparameters?: objectlearn?: booleanazuremigrate deletesintent: stringcommand?: stringparameters?: objectlearn?: booleandeployintent: stringcommand?: stringparameters?: objectlearn?: booleanbicepschemaintent: stringcommand?: stringparameters?: objectlearn?: booleanazureterraformintent: stringcommand?: stringparameters?: objectlearn?: booleancloudarchitectintent: stringcommand?: stringparameters?: objectlearn?: booleanwellarchitectedframeworkintent: stringcommand?: stringparameters?: objectlearn?: booleanoptimizationintent: stringcommand?: stringparameters?: objectlearn?: booleandatadogintent: stringcommand?: stringparameters?: objectlearn?: boolean