azdo — Command Reference
Version: 0.6.0 | Package: AzDo | MCP Tools: 68
All commands support --org and --project overrides (optional — auto-detected from git remote, or .azdo file if not in a git repo).
📋 CLI Commands
Context
| Command |
Description |
azdo context |
Detect Azure DevOps org/project/repo from the current git remote (or .azdo file) |
.azdo file: If not in a git repo, azdo searches parent directories for a .azdo JSON file:
{ "org": "myorg", "project": "myproject" }
org is required; project is optional.
- When inside a git repository, the
.azdo file is ignored — git remote always wins.
Configuration
| Command |
Description |
azdo config list |
List all configured organizations |
azdo config add --org X --pat <token> |
Register an organization |
azdo config remove --org X |
Remove an organization |
azdo config path |
Show the config file path |
Work Items
| Command |
Description |
azdo wi query --wiql "SELECT ..." [--top 10] |
Run a WIQL query |
azdo wi get --ids 1,2,3 [--fields System.Title,System.State] |
Get work items by ID |
azdo wi create --type Task --title "..." [--description "..."] [--assigned-to me@eng.it] [--parent 1234] [--iteration "MyProject\\Sprint 1"] |
Create a work item |
azdo wi update --id 1234 [--state Active] [--title "..."] [--assigned-to me@eng.it] |
Update a work item |
azdo wi comment --id 1234 --text "..." |
Add a comment to a work item |
azdo wi hierarchy --id 1234 |
Get work item with full child tree |
azdo wi link --source 1234 --target 5678 --type child |
Link two work items |
azdo wi search --query "keyword" [--type Bug] [--top 10] |
Full-text search on work items |
Projects
| Command |
Description |
azdo project list [--top 20] [--skip 10] |
List projects in the organization |
azdo project get --id <name-or-id> |
Get project details |
azdo project clone-all [--output <dir>] [--ssh] [--dry-run] [--parallel 4] |
Clone (or pull) all repos from all projects |
Boards — Iterations, Teams, Areas
| Command |
Description |
azdo board iterations [--team X] |
List iterations/sprints for a project |
azdo board iteration current [--team X] |
Get current sprint |
azdo board teams |
List teams in the project |
azdo board members --team-id X |
List members of a team |
azdo board areas [--depth 5] |
List area paths (tree flattened) |
azdo board backlog [--team X] |
Get product backlog for a team |
azdo board sprint --iteration X [--team X] |
Get sprint backlog |
azdo board iteration create --name "Sprint 42" [--start 2026-01-01] [--finish 2026-01-14] |
Create a sprint |
azdo board area create --name "NewArea" [--parent "ParentArea"] |
Create an area path |
azdo board team create --name "MyTeam" [--description "..."] |
Create a team |
azdo board team set-area --team-id X --area-path "Project\\Area" |
Assign area to a team |
azdo board team add-member --team-id X --member-id <guid> |
Add a member to a team |
azdo board team remove-member --team-id X --member-id <guid> |
Remove a member from a team |
Identity, Users & Groups
| Command |
Description |
azdo identity search --query "email@example.com" [--top 20] |
Search identities by email or display name |
azdo identity list-users [--top 100] [--skip 0] |
List users with entitlements in the organization |
azdo identity add-user --email user@example.com [--license express] |
Invite a user to the organization |
azdo identity remove-user --id <guid> |
Remove a user from the organization |
azdo identity list-groups |
List groups in the organization |
azdo identity group-members --descriptor vssgp.… |
List members of a group |
azdo identity group-create --name "MyGroup" [--description "..."] |
Create a new group |
azdo identity group-member-add --group vssgp.… --member aad.… |
Add a member to a group |
azdo identity group-member-remove --group vssgp.… --member aad.… |
Remove a member from a group |
Note: Identity and group tools use the Azure DevOps Graph API (vssps.dev.azure.com). User entitlement tools use the Member Entitlement Management API (vsaex.dev.azure.com). These require vso.graph and vso.memberentitlementmanagement PAT scopes respectively.
Repositories & Git
| Command |
Description |
azdo repo list [--top 20] [--skip 10] |
List repositories |
azdo repo create --name "MyNewRepo" |
Create a new repository |
azdo repo branches --repo X [--search feature] [--top 20] |
List branches |
azdo repo branch create --repo X --name feature/foo --from main |
Create a branch |
azdo repo branch delete --repo X --name feature/foo |
Delete a branch |
azdo repo commits --repo X [--branch main] [--author me@eng.it] [--since 2026-01-01] [--until 2026-06-01] [--top 50] [--skip 0] |
List commits |
azdo repo diff --repo X --base main --target feature/foo |
Get diff between two commits/branches |
azdo repo file --repo X --path src/Program.cs [--ref main] |
Get file content |
azdo repo file push --repo X --path src/foo.cs --content "..." --branch main --message "Add foo.cs" |
Create/update file via direct commit |
azdo repo file delete --repo X --path src/foo.cs --branch main --message "Remove foo.cs" |
Delete file via direct commit |
azdo repo tags --repo X |
List tags |
azdo repo tag create --repo X --name v1.0 --message "Release v1.0" --object-id <sha> |
Create annotated tag |
azdo repo clone-all [--output <dir>] [--ssh] [--dry-run] [--parallel 4] |
Clone all repositories in the project |
Pull Requests
| Command |
Description |
azdo pr list [--repo X] [--status active] [--creator me@eng.it] [--top 20] [--skip 0] |
List pull requests |
azdo pr create --title "..." [--repo X] [--source feature/foo] [--target main] [--description "..."] [--draft] [--work-item 1234] [--reviewer <guid>] |
Create a pull request |
azdo pr vote --pr 1234 [--repo X] --voter-id <guid> --vote 10 |
Vote on a PR |
azdo pr abandon --pr 1234 [--repo X] |
Abandon a PR |
azdo pr complete --pr 1234 [--repo X] [--delete-source] |
Complete a PR |
azdo pr detail --pr 1234 [--repo X] |
Show PR details with reviewers, votes, merge status |
azdo pr threads --pr 1234 [--repo X] |
List review threads on a PR |
azdo pr comment --pr 1234 --text "..." [--repo X] [--file src/Foo.cs --line 42] |
Add a comment to a PR |
Builds, Pipelines & Releases
| Command |
Description |
azdo build list [--top 20] [--definition 5] |
List recent builds |
azdo build status --id 1234 |
Get build status and timeline |
azdo build trigger --definition 5 [--branch refs/heads/main] |
Trigger a pipeline run |
azdo build logs --id 1234 |
Get task-level logs for a build |
azdo pipeline list [--top 20] |
List YAML and classic pipelines |
azdo release definitions [--search X] [--top 20] |
List release definitions |
azdo release list [--definition 5] [--status active] [--top 20] |
List releases |
azdo release trigger --definition 5 [--description "..."] |
Trigger a release |
Wiki
| Command |
Description |
azdo wiki list |
List wikis in the project |
azdo wiki page --wiki-id X --path "/Architecture/Overview" |
Get a wiki page |
azdo wiki upsert --wiki-id X --path "/Guide" --content "# Hello" |
Create or update a wiki page |
Search
| Command |
Description |
azdo search code --query "IDisposable" [--repo X] [--top 20] |
Full-text code search |
azdo search wi --query "authentication" [--type Bug] [--top 20] |
Full-text work item search |
MCP Server
| Command |
Description |
azdo mcp serve [--transport stdio|http] [--port 9287] |
Start the MCP server |
azdo mcp list-tools |
List all available MCP tools as JSON |
Use these in Claude Desktop, Copilot, Cursor, or any MCP-compatible agent.
Context & Session
| Tool |
Required Args |
Optional Args |
Description |
azdo_context |
(none) |
— |
Detect org/project/repo from git remote |
azdo_context_set |
(none) |
org, project |
Set default org/project overrides for the current session |
Work Items
| Tool |
Required Args |
Optional Args |
Description |
azdo_wi_query |
wiql |
top, compact, org, project |
Run a WIQL query |
azdo_wi_get |
ids |
fields, compact, org, project |
Get work items by ID |
azdo_wi_create |
type, title |
description, assignedTo, parent, iteration, org, project |
Create a work item |
azdo_wi_update |
id |
state, title, assignedTo, parent, iteration, org, project |
Update a work item |
azdo_wi_comment |
id, text |
org, project |
Add a comment to a work item |
azdo_wi_hierarchy |
id |
org, project |
Get work item with full child tree |
azdo_wi_link |
sourceId, targetId, linkType |
org, project |
Link two work items (child, parent, related, duplicate) |
azdo_wi_search |
query |
type, top, org, project |
Full-text search on work items |
Projects
| Tool |
Required Args |
Optional Args |
Description |
azdo_project_list |
(none) |
top, skip, compact, org |
List projects in the organization |
azdo_project_get |
id |
compact, org |
Get project details by ID or name |
azdo_project_clone_all |
(none) |
org, output, ssh, dryRun, parallel |
Clone (or pull) all repos from all projects |
Boards — Iterations
| Tool |
Required Args |
Optional Args |
Description |
azdo_iterations_list |
(none) |
team, compact, org, project |
List iterations/sprints |
azdo_iteration_current |
(none) |
team, compact, org, project |
Get current sprint |
azdo_iteration_create |
name |
startDate, finishDate, org, project |
Create a new sprint |
Boards — Teams
| Tool |
Required Args |
Optional Args |
Description |
azdo_teams_list |
(none) |
compact, org, project |
List teams in a project |
azdo_members_list |
teamId |
compact, org, project |
List members of a team |
azdo_team_create |
name |
description, org, project |
Create a new team |
azdo_team_area_set |
teamId, areaPath |
org, project |
Assign an area to a team |
azdo_team_member_add |
teamId, memberId |
org, project |
Add a member to a team |
azdo_team_member_remove |
teamId, memberId |
org, project |
Remove a member from a team |
Identity, Users & Groups
| Tool |
Required Args |
Optional Args |
Description |
azdo_identity_search |
(none) |
query, top, compact, org |
Search identities by email or display name (Graph API) |
azdo_group_list |
(none) |
compact, org, project |
List groups in the organization (Graph API) |
azdo_group_members |
groupDescriptor |
compact, org |
List members of a group by descriptor (Graph API) |
azdo_group_create |
name |
description, org, project |
Create a new group (Graph API) |
azdo_group_member_add |
groupDescriptor, memberDescriptor |
org |
Add a member to a group (Graph API) |
azdo_group_member_remove |
groupDescriptor, memberDescriptor |
org |
Remove a member from a group (Graph API) |
azdo_user_list |
(none) |
top, skip, compact, org |
List users with entitlements (Member Entitlement Management API) |
azdo_user_add |
email |
license, org |
Invite a user to the organization (MEM API) |
azdo_user_remove |
userId |
org |
Remove a user from the organization (MEM API) |
Graph descriptors: Group and user descriptors are opaque identifiers like vssgp.… (group) or aad.… (AAD user). Use azdo_identity_search to find user descriptors and azdo_group_list to find group descriptors. azdo_group_members automatically resolves member names via batch subject lookup.
Boards — Areas & Backlogs
| Tool |
Required Args |
Optional Args |
Description |
azdo_areas_list |
(none) |
depth, compact, org, project |
List area paths (tree flattened) |
azdo_area_create |
name |
parentPath, org, project |
Create a new area path |
azdo_backlog_product |
(none) |
team, compact, org, project |
Get product backlog |
azdo_backlog_sprint |
iteration |
team, org, project |
Get sprint backlog |
Repositories — Read
| Tool |
Required Args |
Optional Args |
Description |
azdo_repo_list |
(none) |
top, skip, compact, org, project |
List repositories |
azdo_git_branches |
repo |
search, top, compact, org, project |
List branches |
azdo_git_commits |
repo |
branch, author, from, to, top, skip, compact, org, project |
List commits |
azdo_git_diff |
repo, base, target |
org, project |
Get diff between two commits/branches |
azdo_git_file |
repo, path |
ref, org, project |
Get file content |
azdo_repo_tags_list |
repo |
compact, org, project |
List tags |
Repositories — Write
| Tool |
Required Args |
Optional Args |
Description |
azdo_repo_create |
name |
org, project |
Create a new repository |
azdo_repo_branch_create |
repo, branchName, sourceRef |
org, project |
Create a branch from a ref |
azdo_repo_branch_delete |
repo, branchName |
org, project |
Delete a branch |
azdo_repo_tag_create |
repo, tagName, message, objectId |
org, project |
Create an annotated tag |
azdo_repo_file_push |
repo, path, content, branch, commitMessage |
org, project |
Create/update a file via direct commit |
azdo_repo_file_delete |
repo, path, branch, commitMessage |
org, project |
Delete a file via direct commit |
azdo_repo_clone_all |
(none) |
org, project, output, ssh, dryRun, parallel |
Clone all repositories in a project |
Pull Requests
| Tool |
Required Args |
Optional Args |
Description |
azdo_pr_list |
(none) |
repo, status, creator, top, skip, compact, org, project |
List pull requests |
azdo_pr_create |
title |
repo, source, target, description, draft, workItems, reviewers, org, project |
Create a pull request |
azdo_pr_vote |
prId, repo, voterId, vote |
org, project |
Vote on a PR |
azdo_pr_update |
prId, repo |
status, title, autoComplete, deleteSourceBranch, org, project |
Update PR status or auto-complete |
azdo_pr_detail |
prId, repo |
org, project |
Get PR detail with reviewers, votes, merge status |
azdo_pr_threads |
prId, repo |
compact, org, project |
List review threads on a PR |
azdo_pr_comment |
prId, repo, content |
threadId, file, line, org, project |
Add a comment to a PR thread |
azdo_pr_resolve |
prId, repo, threadId |
org, project |
Resolve a review thread |
Builds & Pipelines
| Tool |
Required Args |
Optional Args |
Description |
azdo_build_list |
(none) |
top, definition, compact, org, project |
List recent builds |
azdo_build_status |
id |
compact, org, project |
Get build status and timeline |
azdo_build_trigger |
definition |
branch, org, project |
Trigger a pipeline run |
azdo_pipelines_list |
(none) |
top, compact, org, project |
List YAML and classic pipelines |
azdo_build_logs |
buildId |
compact, org, project |
Get task-level logs for a build |
Release Management
| Tool |
Required Args |
Optional Args |
Description |
azdo_release_definitions |
(none) |
search, top, compact, org, project |
List release definitions |
azdo_release_list |
(none) |
definitionId, status, top, compact, org, project |
List releases |
azdo_release_trigger |
definitionId |
description, org, project |
Trigger a release |
Wiki
| Tool |
Required Args |
Optional Args |
Description |
azdo_wiki_list |
(none) |
compact, org, project |
List wikis in a project |
azdo_wiki_page_get |
wikiId, path |
compact, org, project |
Get a wiki page by path |
azdo_wiki_page_upsert |
wikiId, path, content |
org, project |
Create or update a wiki page |
Search
| Tool |
Required Args |
Optional Args |
Description |
azdo_code_search |
query |
repo, top, org, project |
Full-text code search |
azdo_wi_search |
query |
type, top, org, project |
Full-text work item search |
🗳️ Vote Values Reference
| Vote |
Meaning |
10 |
Approved |
5 |
Approved with suggestions |
0 |
Reset vote |
-5 |
Waiting for author |
-10 |
Rejected |
🔗 Work Item Link Types
| Link Type |
Description |
child |
Hierarchy-Forward (parent → child) |
parent |
Hierarchy-Reverse (child → parent) |
related |
Related work item |
duplicate |
Duplicate-Forward |
📝 Notes
compact: Set to false to get the full raw Azure DevOps API response. Default is true (simplified output optimized for LLM consumption).
org / project: Auto-detected from the current git remote, or from a .azdo file if not in a git repo. Pass --org / --project explicitly to override. Use azdo_context_set to set session-level overrides in MCP mode.
.azdo file: Place a .azdo JSON file ({"org":"myorg","project":"myproject"}) in any parent directory of a non-git folder to auto-detect org/project. Ignored when inside a git repository.
voterId: Your Azure DevOps identity GUID (required for voting). Find it in your ADO profile URL: https://dev.azure.com/{org}/_usersSettings/identities.
- Reviewer IDs in
azdo_pr_create: Must be Azure DevOps identity GUIDs, not email addresses. Use azdo_identity_search to resolve emails to GUIDs.
- Code Search (
azdo_code_search): Requires the Azure DevOps search indexing to be enabled in the organization. Returns a clear error if disabled.
- Wiki tools: Require a project-level wiki.
wikiId can be either the wiki UUID or the wiki name.
azdo_wi_hierarchy: Returns the work item with its direct children. Use recursively to walk the full tree.
- Identity & Group tools: Require PAT with
vso.graph scope (for Graph API) and vso.memberentitlementmanagement scope (for user entitlements). Without these scopes, 401/403 errors are returned.
azdo_user_add license types: express (default, free Basic), stakeholder (free), basic (paid Basic), advanced (paid Basic+TestPlans), basicAndTestPlans (paid).
| Product |
Versions
Compatible and additional computed target framework versions.
|
|
.NET
|
net8.0
net8.0 is compatible.
net8.0-android
net8.0-android was computed.
net8.0-browser
net8.0-browser was computed.
net8.0-ios
net8.0-ios was computed.
net8.0-maccatalyst
net8.0-maccatalyst was computed.
net8.0-macos
net8.0-macos was computed.
net8.0-tvos
net8.0-tvos was computed.
net8.0-windows
net8.0-windows was computed.
net9.0
net9.0 was computed.
net9.0-android
net9.0-android was computed.
net9.0-browser
net9.0-browser was computed.
net9.0-ios
net9.0-ios was computed.
net9.0-maccatalyst
net9.0-maccatalyst was computed.
net9.0-macos
net9.0-macos was computed.
net9.0-tvos
net9.0-tvos was computed.
net9.0-windows
net9.0-windows was computed.
net10.0
net10.0 was computed.
net10.0-android
net10.0-android was computed.
net10.0-browser
net10.0-browser was computed.
net10.0-ios
net10.0-ios was computed.
net10.0-maccatalyst
net10.0-maccatalyst was computed.
net10.0-macos
net10.0-macos was computed.
net10.0-tvos
net10.0-tvos was computed.
net10.0-windows
net10.0-windows was computed.
|
This package has no dependencies.