Azure DevOps CLI MCP server for Claude Code and Codex CLI — boards, work items, repos, PRs
Project description
az-devops-cli-mcp
Azure DevOps MCP tools for Claude Code and Codex CLI — boards, work items, repos, and PRs.
Install & Register
# 1. Install
pip install az-devops-cli-mcp
# 2. Login (once per machine)
az login
az devops configure --defaults organization=https://dev.azure.com/YOUR_ORG
# 3. Register with Claude Code
claude mcp add az-devops-cli-mcp -- python -m az_devops_cli_mcp.server
# 4. Register with Codex CLI
codex mcp add az-devops-cli-mcp -- python -m az_devops_cli_mcp.server
Restart Claude Code or Codex CLI. All 13 tools are ready.
How It Works
The server runs as a stdio process — spawned on demand by the client, no ports or background services needed.
Claude Code / Codex CLI
| spawns on demand
v
python -m az_devops_cli_mcp.server (stdin/stdout)
|
v
az CLI (your az login session)
Available Tools (13 total)
Work Items
| Tool | What it does |
|---|---|
create_work_item |
Create Task, Bug, User Story, Epic |
get_work_item |
Get item by ID |
update_work_item |
Update state, assignment, title |
set_iteration |
Assign to sprint (required for Sprint board) |
query_work_items |
WIQL query for bulk lookups |
link_work_items |
Link items (Child, Parent, Related) |
get_work_item_relations |
Verify hierarchy after linking |
add_comment |
Add discussion comment / agent log |
Repos / PRs
| Tool | What it does |
|---|---|
list_prs |
List PRs by status |
get_pr |
Get PR details |
create_pr |
Open a new PR |
link_pr_to_work_item |
Trace PR to work item |
list_branches |
List repo branches |
AG2 Usage (optional)
from autogen import ConversableAgent
from az_devops_cli_mcp import ALL_TOOLS, WORK_ITEM_TOOLS, REPO_TOOLS
agent = ConversableAgent(
name="devops_agent",
tools=ALL_TOOLS,
system_message="You manage Azure DevOps for LytStore..."
)
Configuration
| Method | How |
|---|---|
az devops configure |
Preferred — org set globally for your machine |
AZURE_DEVOPS_ORG env var |
Per-session override |
.env file |
AZURE_DEVOPS_ORG=https://dev.azure.com/YOUR_ORG |
Safety
Destructive commands (delete, remove, destroy) are blocked at the core layer.
The agent returns an error and requires explicit user confirmation.
Manual MCP Config (fallback)
If claude mcp add / codex mcp add aren't available, add this to your config file manually.
Claude Code — ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"az-devops-cli-mcp": {
"type": "stdio",
"command": "python",
"args": ["-m", "az_devops_cli_mcp.server"]
}
}
}
Codex CLI — ~/.codex/config.json: same block.
Contributing
git clone https://github.com/PraiseSinkamba/az-devops-cli-mcp
cd az-devops-cli-mcp
pip install -e ".[dev]"
pytest tests/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file az_devops_cli_mcp-1.0.2.tar.gz.
File metadata
- Download URL: az_devops_cli_mcp-1.0.2.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4aeb8d4007c58c014aa7620e79b276515d53352f3e6334e2007a8c00eacd3c1
|
|
| MD5 |
b922dcc067c33c4d3693e1048ba59aa8
|
|
| BLAKE2b-256 |
48f9b00d67db213f88e69aa90a4be6af99c9444012f3c4fa4f978a7b56934ecf
|
Provenance
The following attestation bundles were made for az_devops_cli_mcp-1.0.2.tar.gz:
Publisher:
publish.yml on PraiseSinkamba/az-devops-cli-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
az_devops_cli_mcp-1.0.2.tar.gz -
Subject digest:
f4aeb8d4007c58c014aa7620e79b276515d53352f3e6334e2007a8c00eacd3c1 - Sigstore transparency entry: 1239319623
- Sigstore integration time:
-
Permalink:
PraiseSinkamba/az-devops-cli-mcp@e4982799f98c8841cc4110d35716e2a1fc10736e -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/PraiseSinkamba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e4982799f98c8841cc4110d35716e2a1fc10736e -
Trigger Event:
push
-
Statement type:
File details
Details for the file az_devops_cli_mcp-1.0.2-py3-none-any.whl.
File metadata
- Download URL: az_devops_cli_mcp-1.0.2-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
649939de5f42ec650f245c8772239cdb19700f4805a56beaabb4e2a124483517
|
|
| MD5 |
b8bc73650bb290048e6af9552b4d3ed4
|
|
| BLAKE2b-256 |
fc7d88238ed7f2e4163b61d8b4583b5f713ea9c27fb34bd493671818798c5c65
|
Provenance
The following attestation bundles were made for az_devops_cli_mcp-1.0.2-py3-none-any.whl:
Publisher:
publish.yml on PraiseSinkamba/az-devops-cli-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
az_devops_cli_mcp-1.0.2-py3-none-any.whl -
Subject digest:
649939de5f42ec650f245c8772239cdb19700f4805a56beaabb4e2a124483517 - Sigstore transparency entry: 1239319625
- Sigstore integration time:
-
Permalink:
PraiseSinkamba/az-devops-cli-mcp@e4982799f98c8841cc4110d35716e2a1fc10736e -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/PraiseSinkamba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e4982799f98c8841cc4110d35716e2a1fc10736e -
Trigger Event:
push
-
Statement type: