The credential chain reports every attempt's error rather than only the last, which turns an unhelpful authentication failure into something you can act on. Stdio is the default and the safer mode — HTTP server mode binds all interfaces.
A Rust server over the Azure DevOps REST API. Tools are named azdo_VERB_WHAT, and the JSON they return is trimmed for token cost rather than mirroring the raw API response.
- Organizations and projects the signed-in identity can reach — azdo_list_organizations, azdo_list_projects
- Work items created and updated with the full field set — area and iteration path, state, board column and row, priority, severity, story points, effort, tags, parent, dates, acceptance criteria, repro steps and custom fields — azdo_create_work_item, azdo_update_work_item
- One work item or several by id, each optionally carrying its most recent comments — azdo_get_work_item, azdo_get_work_items
- Work items queried by structured filters with include and exclude lists, or by raw WIQL — azdo_query_work_items, azdo_query_work_items_by_wiql
- Comments added, and work items linked as Parent, Child, Related, Duplicate or Dependency — azdo_add_comment, azdo_link_work_items
- Teams, boards, work item types and tags listed, and a team's current and full iteration list — azdo_list_teams, azdo_get_team, azdo_list_team_boards, azdo_get_team_board, azdo_list_work_item_types, azdo_list_tags, azdo_get_team_current_iteration, azdo_get_team_iterations
Access to the target Azure DevOps organization. A bearer token is acquired per request, trying an environment client secret (AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET together), then the Azure CLI session, then the Azure Developer CLI, then managed identity. For local use, az login is the simplest path. Install from Homebrew or Scoop; mcp-for-azure-devops-boards --install writes the client configuration for you.
One command plus a key — brew install mcp-for-azure-devops-boards, then supply credentials
