Getting Started
Get azops-mcp running in under five minutes.
Prerequisites
| Requirement | Version | Check |
|---|---|---|
| Python | 3.10+ | python3 --version |
| Azure CLI | any | az version |
| uv (recommended) | any | uv --version |
You need to be authenticated with Azure CLI (az login) or have Service Principal credentials ready. For Docker-based usage you also need Docker (or Podman) with Compose v2.
Installation
Option A: Install from PyPI (recommended)
The fastest way — no clone needed:
# With pip
pip install azops-mcp
# Or with uv
uv pip install azops-mcpAfter installing, the azops-mcp command is available on your PATH. Verify with: azops-mcp --help
Option B: Run with uvx (zero-install)
uvx runs Python packages in temporary, isolated environments — nothing is installed permanently:
uvx azops-mcpOption C: Quick Start Script
git clone https://github.com/artemkozlenkov/azops-mcp.git
cd azops-mcp
./quickstart.shThe script creates a .venv, installs all dependencies, and walks you through configuration.
Option D: Manual Install from Source
git clone https://github.com/artemkozlenkov/azops-mcp.git
cd azops-mcp
uv venv --python 3.12
uv pip install -e .
cp .env.example .envEdit .env to set at least AZURE_SUBSCRIPTION_ID, or leave it blank and use the set_subscription tool in chat.
Option E: Docker
git clone https://github.com/artemkozlenkov/azops-mcp.git
cd azops-mcp
cp .env.example .env # edit with your credentials
docker compose build
docker compose run --rm mcp-serverConnect to Your AI Client
Claude Desktop
Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows).
Important: You must use the full absolute path to uvx. Claude Desktop does not inherit your shell's PATH. Find the path with which uvx.
{
"mcpServers": {
"azops-mcp": {
"command": "/Users/YOUR_USERNAME/.local/bin/uvx",
"args": ["azops-mcp"]
}
}
}{
"mcpServers": {
"azops-mcp": {
"command": "/Users/YOUR_USERNAME/.local/bin/azops-mcp"
}
}
}Cursor
{
"mcpServers": {
"azops-mcp": {
"command": "uvx",
"args": ["azops-mcp"]
}
}
}Windsurf
{
"mcpServers": {
"azops-mcp": {
"command": "uvx",
"args": ["azops-mcp"]
}
}
}VS Code (GitHub Copilot)
{
"servers": {
"azops-mcp": {
"command": "uvx",
"args": ["azops-mcp"]
}
}
}Zed
{
"context_servers": {
"azops-mcp": {
"command": {
"path": "uvx",
"args": ["azops-mcp"]
}
}
}
}Continue (VS Code / JetBrains)
mcpServers:
- name: azops-mcp
command: uvx
args:
- azops-mcpEnvironment Variables
To pass Azure credentials or other config to the server, add an "env" key:
{
"mcpServers": {
"azops-mcp": {
"command": "uvx",
"args": ["azops-mcp"],
"env": {
"AZURE_SUBSCRIPTION_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}
}Restart your AI client after saving the configuration.
First Commands
Once connected, try these in the chat:
List my Azure subscriptions
Show all resource groups
What VMs are running in the "production" resource group?
Check my Azure auth statusThe assistant calls the corresponding MCP tools and returns the results inline.
Next Steps
- Architecture — understand how the server works internally
- Authentication — configure Service Principal or managed identity
- Tools Reference — full list of every available tool
- Configuration — all environment variables and defaults
- Docker — run with Docker Compose