home / mcp / azure devops mcp server

Azure DevOps MCP Server

Provides Azure DevOps data sources and actions for work items, repos, pipelines, boards, and more through an MCP client.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "grizzlypeaksoftware-ado_mcp": {
      "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"
      }
    }
  }
}

You can run a dedicated MCP server that connects to Azure DevOps to manage work items, code repositories, pipelines, boards, releases, and more. This server lets you drive Azure DevOps actions through an MCP client, enabling AI-assisted workflows across your projects.

How to use

Start by configuring your MCP client to point at your Azure DevOps MCP server. You will supply authentication and context so the client can perform actions like querying work items, listing repositories, or triggering pipelines. Use the server to perform common tasks such as listing work items, creating or updating items, managing branches, handling pull requests, and inspecting dashboards.

How to install

Prerequisites: Node.js 18 or higher, an Azure DevOps organization, and a Personal Access Token (PAT) with appropriate permissions.

Install dependencies and build the MCP server image.

npm install
npm run build

Configuration and usage notes

Environment variables you need for the MCP server to connect to Azure DevOps are the Personal Access Token, organization URL, and default project. Use these in your MCP client configuration.

Set up a local or remote MCP client to run the server. The provided examples show how to run the server locally with a node process and how to wire environment variables for secure access.

Typical environment variables you will configure in your MCP client or runtime are:

Security and credentials

Protect your PAT and limit its permissions to only what you need. Rotate credentials regularly and use the least-privilege principle for all service accounts.

Troubleshooting

If you encounter authentication or access issues, verify that your PAT is valid and has the required scopes. Confirm that the organization URL and project name are correct and that the PAT has access to the target project.

Notes

When running locally, you can point your MCP client to the local runtime and provide the necessary environment variables to connect to Azure DevOps.

Available tools

list_work_items

Query work items using WIQL to retrieve items matching given criteria.

get_work_item

Fetch full details of a single work item by ID.

create_work_item

Create a new work item with specified type, title, and fields.

update_work_item

Update fields on an existing work item.

delete_work_item

Delete or recycle a work item.

add_work_item_comment

Add a comment to a work item; supports threaded discussions.

search_work_items

Search for work items by keyword or WIQL-like queries.

link_work_items

Create a link relationship between two work items.

remove_work_item_link

Remove an existing link between work items.

get_linked_work_items

Retrieve all work items linked to a given item.

add_work_item_attachment

Attach a file to a work item from base64 content.

add_work_item_attachment_from_url

Attach a file to a work item by providing a URL.

list_work_item_attachments

List all attachments on a specific work item.

remove_work_item_attachment

Remove an attachment from a work item.

list_repositories

List all repositories in the project.

get_repository

Get details for a specific repository.

list_branches

List branches in a repository.

get_branch

Get details of a branch including the latest commit.

list_commits

List commits in a repository.

get_commit

Get commit details including changes.

get_file_content

Retrieve the contents of a file at a path.

list_files

List files in a repository path.

create_branch

Create a new branch in a repository.

delete_branch

Delete a branch.

list_pull_requests

List pull requests with optional filters.

get_pull_request

Get details of a pull request.

create_pull_request

Create a new pull request.

update_pull_request

Update pull request title, description, or status.

add_pull_request_reviewer

Add a reviewer to a pull request.

remove_pull_request_reviewer

Remove a reviewer from a pull request.

add_pull_request_comment

Add a comment to a pull request.

get_pull_request_comments

Retrieve all comments on a pull request.

complete_pull_request

Complete or merge a pull request.

get_pull_request_work_items

Get work items linked to a pull request.

link_pull_request_work_item

Link a work item to a pull request.

get_boards

Retrieve Kanban boards for a team.

get_board_columns

Get columns for a board.

get_board_items

List items on a board.

move_board_card

Move a card to a different column or lane.

get_board_swimlanes

Get swimlanes for a board.

list_projects

List all projects in the organization.

get_project

Get details for a project.

list_teams

List teams within a project.

get_team_members

Get members of a team.

list_iterations

List iterations for a team.

get_current_iteration

Get the current iteration for a team.

list_area_paths

List area paths for a project.

list_pipelines

List YAML pipelines in a project.

get_pipeline

Get details for a YAML pipeline.

list_pipeline_runs

List runs of a pipeline.

get_pipeline_run

Get details for a specific pipeline run.

run_pipeline

Queue or start a pipeline run.

cancel_pipeline_run

Cancel a running pipeline.

get_pipeline_logs

Fetch logs for a pipeline run.

list_build_definitions

List classic build definitions.

list_builds

List builds for a definition or project.

get_build

Get details for a build.

queue_build

Queue a new build.

cancel_build

Cancel a running build.

get_build_logs

Retrieve build logs.

list_release_definitions

List release definitions.

get_release_definition

Get details of a release definition.

list_releases

List releases in a project.

get_release

Get details for a release.

create_release

Create a new release.

deploy_release

Deploy a release to an environment.

get_release_environment

Get environment status for a release.

approve_release

Approve a deployment in a release environment.

get_release_logs

Fetch release deployment logs.

list_wikis

List wikis in a project.

get_wiki

Get wiki details.

get_wiki_page

Get content of a wiki page.

create_wiki_page

Create a new wiki page.

update_wiki_page

Update an existing wiki page.

delete_wiki_page

Delete a wiki page.

list_wiki_pages

List pages within a wiki.

list_test_plans

List test plans in a project.

get_test_plan

Get details of a test plan.

list_test_suites

List test suites.

get_test_suite

Get details for a test suite.

list_test_cases

List test cases within a suite.

list_test_runs

List test runs.

get_test_results

Get test results.

list_feeds

List artifact feeds.

get_feed

Get artifact feed details.

list_packages

List packages in a feed.

get_package

Get package details.

get_package_versions

Get package versions.

list_service_connections

List service connections.

get_service_connection

Get details for a service connection.

list_variable_groups

List variable groups.

get_variable_group

Get details for a variable group including variables.

get_current_user

Get information about the authenticated user.

search_users

Search for users in the directory.

get_user

Get details for a user.

list_subscriptions

List notification subscriptions.

list_dashboards

List dashboards.

get_dashboard

Get dashboard details with widgets.

list_branch_policies

List branch policies.

get_branch_policy

Get details for a branch policy.