MCP Hub
Back to servers

Azure DevOps MCP Server

A comprehensive MCP server for Azure DevOps providing 100 tools to manage work items, Git repositories, pull requests, pipelines, boards, and more using natural language.

Tools
100
Updated
Jan 9, 2026
Validated
Jan 11, 2026

Azure DevOps MCP Server

A Model Context Protocol (MCP) server that provides tools for interacting with Azure DevOps. This server enables AI assistants to manage work items, repositories, branches, commits, and more.

Features

  • Work Items: Query, create, update, delete work items, comments, linking, and attachments
  • Git Repositories: List repos, branches, commits, and file contents
  • Pull Requests: Full PR lifecycle, reviewers, comments, merging
  • Pipelines & Builds: List, run, cancel pipelines and builds, view logs
  • Releases: Release definitions, deployments, approvals
  • Boards: Kanban boards, columns, swimlanes, card movement
  • Wiki: Create, update, delete wiki pages
  • Test Plans: Test plans, suites, cases, runs, and results
  • Artifacts: Package feeds and packages
  • Project & Teams: Projects, teams, iterations, area paths
  • Users & Notifications: User search, notification subscriptions
  • Dashboards & Policies: Dashboard management, branch policies

Prerequisites

  • Node.js 18 or higher
  • An Azure DevOps organization
  • A Personal Access Token (PAT) with appropriate permissions

Installation

npm install
npm run build

Configuration

Environment Variables

VariableRequiredDescription
ADO_PATYesPersonal Access Token
ADO_ORG_URLYesOrganization URL (e.g., https://dev.azure.com/myorg)
ADO_PROJECTNoDefault project name

Generating a Personal Access Token

  1. Go to Azure DevOps → User Settings → Personal Access Tokens
  2. Click "New Token"
  3. Configure the following scopes:
    • Work Items: Read & Write
    • Code: Read & Write
    • Build: Read & Execute
    • Release: Read, Write & Execute
    • Test Management: Read & Write
    • Wiki: Read & Write
    • Packaging: Read
    • Project and Team: Read
    • Service Connections: Read
    • Variable Groups: Read
    • Dashboard: Read
  4. Copy the generated token

Claude Desktop Configuration

Add to your claude_desktop_config.json (typically located at %APPDATA%\Claude\claude_desktop_config.json on Windows or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "azure-devops": {
      "command": "node",
      "args": ["C:/path/to/azure-devops-mcp/dist/index.js"],
      "env": {
        "ADO_PAT": "your-pat-token",
        "ADO_ORG_URL": "https://dev.azure.com/your-org",
        "ADO_PROJECT": "your-default-project"
      }
    }
  }
}

VS Code with GitHub Copilot Configuration

To use this MCP server with GitHub Copilot in VS Code:

  1. Enable MCP support in VS Code (requires GitHub Copilot Chat extension):

    • Open VS Code Settings (Ctrl+, or Cmd+,)
    • Search for "mcp"
    • Enable GitHub > Copilot > Chat > MCP: Enabled
  2. Configure the MCP server by adding to your VS Code settings.json:

{
  "github.copilot.chat.mcp.servers": {
    "azure-devops": {
      "command": "node",
      "args": ["C:/path/to/azure-devops-mcp/dist/index.js"],
      "env": {
        "ADO_PAT": "your-pat-token",
        "ADO_ORG_URL": "https://dev.azure.com/your-org",
        "ADO_PROJECT": "your-default-project"
      }
    }
  }
}

Alternatively, create a .vscode/mcp.json file in your workspace:

{
  "servers": {
    "azure-devops": {
      "command": "node",
      "args": ["C:/path/to/azure-devops-mcp/dist/index.js"],
      "env": {
        "ADO_PAT": "your-pat-token",
        "ADO_ORG_URL": "https://dev.azure.com/your-org",
        "ADO_PROJECT": "your-default-project"
      }
    }
  }
}
  1. Restart VS Code after configuration changes.

  2. Use the tools in GitHub Copilot Chat by asking questions like:

    • "List all active bugs in Azure DevOps"
    • "Create a new task titled 'Fix login bug'"
    • "Show me the branches in the main repository"

Note: MCP support in GitHub Copilot requires the latest version of the GitHub Copilot Chat extension. If you don't see MCP settings, update your extension.

Implementation Status

All 100 tools defined in the full specification are now implemented.

CategoryToolsStatus
Work Items (Core)7✅ Complete
Work Item Linking3✅ Complete
Work Item Attachments4✅ Complete
Git Repositories10✅ Complete
Pull Requests11✅ Complete
Boards5✅ Complete
Projects & Teams7✅ Complete
Pipelines7✅ Complete
Builds (Classic)6✅ Complete
Releases9✅ Complete
Wiki7✅ Complete
Test Plans7✅ Complete
Artifacts5✅ Complete
Service Connections2✅ Complete
Variable Groups2✅ Complete
Users3✅ Complete
Notifications1✅ Complete
Dashboards2✅ Complete
Branch Policies2✅ Complete

Total: 100 tools implemented

Available Tools

Work Items (Core)

ToolDescription
list_work_itemsQuery work items using WIQL
get_work_itemGet full details of a work item
create_work_itemCreate a new work item
update_work_itemUpdate an existing work item
delete_work_itemDelete or recycle a work item
add_work_item_commentAdd a comment to a work item
search_work_itemsSearch work items by keyword

Work Item Linking

ToolDescription
link_work_itemsCreate a link between work items
remove_work_item_linkRemove a link between work items
get_linked_work_itemsGet all linked work items

Work Item Attachments

ToolDescription
add_work_item_attachmentAdd file attachment from base64
add_work_item_attachment_from_urlAdd attachment from URL
list_work_item_attachmentsList attachments on a work item
remove_work_item_attachmentRemove an attachment

Git Repositories

ToolDescription
list_repositoriesList all repositories in a project
get_repositoryGet repository details
list_branchesList branches in a repository
get_branchGet branch details with latest commit
list_commitsList commits in a repository
get_commitGet commit details with file changes
get_file_contentGet content of a file
list_filesList files in a repository path
create_branchCreate a new branch
delete_branchDelete a branch

Pull Requests

ToolDescription
list_pull_requestsList pull requests with filters
get_pull_requestGet PR details
create_pull_requestCreate a new pull request
update_pull_requestUpdate PR title/description/status
add_pull_request_reviewerAdd a reviewer to a PR
remove_pull_request_reviewerRemove a reviewer from a PR
add_pull_request_commentAdd a comment to a PR
get_pull_request_commentsGet all comments on a PR
complete_pull_requestComplete/merge a PR
get_pull_request_work_itemsGet linked work items
link_pull_request_work_itemLink a work item to a PR

Boards

ToolDescription
get_boardsGet boards for a team
get_board_columnsGet columns for a board
get_board_itemsGet items on a board
move_board_cardMove a card to a column/lane
get_board_swimlanesGet swimlanes for a board

Projects & Teams

ToolDescription
list_projectsList all projects
get_projectGet project details
list_teamsList teams in a project
get_team_membersGet team members
list_iterationsList iterations for a team
get_current_iterationGet the current iteration
list_area_pathsList area paths

Pipelines

ToolDescription
list_pipelinesList YAML pipelines
get_pipelineGet pipeline details
list_pipeline_runsList pipeline runs
get_pipeline_runGet run details
run_pipelineStart a pipeline run
cancel_pipeline_runCancel a running pipeline
get_pipeline_logsGet logs for a run

Builds (Classic)

ToolDescription
list_build_definitionsList build definitions
list_buildsList builds
get_buildGet build details
queue_buildQueue a new build
cancel_buildCancel a build
get_build_logsGet build logs

Releases

ToolDescription
list_release_definitionsList release definitions
get_release_definitionGet definition details
list_releasesList releases
get_releaseGet release details
create_releaseCreate a new release
deploy_releaseDeploy to an environment
get_release_environmentGet environment status
approve_releaseApprove a deployment
get_release_logsGet deployment logs

Wiki

ToolDescription
list_wikisList wikis in a project
get_wikiGet wiki details
get_wiki_pageGet wiki page content
create_wiki_pageCreate a new wiki page
update_wiki_pageUpdate a wiki page
delete_wiki_pageDelete a wiki page
list_wiki_pagesList pages in a wiki

Test Plans

ToolDescription
list_test_plansList test plans
get_test_planGet test plan details
list_test_suitesList test suites
get_test_suiteGet test suite details
list_test_casesList test cases in a suite
list_test_runsList test runs
get_test_resultsGet test results

Artifacts

ToolDescription
list_feedsList artifact feeds
get_feedGet feed details
list_packagesList packages in a feed
get_packageGet package details
get_package_versionsGet package versions

Service Connections

ToolDescription
list_service_connectionsList service connections
get_service_connectionGet connection details

Variable Groups

ToolDescription
list_variable_groupsList variable groups
get_variable_groupGet group details with variables

Users

ToolDescription
get_current_userGet authenticated user info
search_usersSearch for users
get_userGet user details

Notifications

ToolDescription
list_subscriptionsList notification subscriptions

Dashboards

ToolDescription
list_dashboardsList dashboards
get_dashboardGet dashboard with widgets

Branch Policies

ToolDescription
list_branch_policiesList branch policies
get_branch_policyGet policy details

Example Usage

Query Active Bugs

Use list_work_items with query:
"SELECT [System.Id], [System.Title] FROM WorkItems WHERE [System.WorkItemType] = 'Bug' AND [System.State] = 'Active'"

Create a Task

Use create_work_item with:
- type: "Task"
- title: "Implement feature X"
- description: "Details about the task"
- assignedTo: "user@example.com"

List Repository Branches

Use list_branches with:
- repository: "my-repo"

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Watch mode for development
npm run dev

Troubleshooting

Common PAT Issues

  • 401 Unauthorized: PAT may be expired or invalid
  • 403 Forbidden: PAT lacks required scope permissions
  • 404 Not Found: Project or resource doesn't exist, or PAT can't access it

Connection Issues

  1. Verify ADO_ORG_URL is correct (should be https://dev.azure.com/orgname)
  2. Ensure PAT hasn't expired
  3. Check that PAT has access to the target project

License

MIT

Reviews

No reviews yet

Sign in to write a review