Skip to main content
Glama
Tiberriver256

Azure DevOps MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLogging level (debug, info, warn, error)info
AZURE_DEVOPS_ORGNoAzure DevOps organization nameExtracted from URL
AZURE_DEVOPS_PATNoPersonal Access Token (for PAT auth)
AZURE_AD_CLIENT_IDNoAzure AD application ID (for AAD auth)
AZURE_AD_TENANT_IDNoAzure AD tenant ID (for AAD auth)
AZURE_DEVOPS_ORG_URLNoFull URL to your Azure DevOps organization
AZURE_AD_CLIENT_SECRETNoAzure AD client secret (for AAD auth)
AZURE_DEVOPS_API_VERSIONNoAPI version to useLatest
AZURE_DEVOPS_AUTH_METHODNoAuthentication method (`pat`, `azure-identity`, or `azure-cli`) - case-insensitiveazure-identity
AZURE_DEVOPS_DEFAULT_PROJECTNoDefault project if none specified

Capabilities

Server capabilities have not been inspected yet.

Tools

Functions exposed to the LLM to take actions

NameDescription
get_meB

Get details of the authenticated user (id, displayName, email)

list_organizationsB

List all Azure DevOps organizations accessible to the current authentication

list_projectsC

List all projects in an organization

get_projectC

Get details of a specific project

get_project_detailsB

Get comprehensive details of a project including process, work item types, and teams

get_repositoryC

Get details of a specific repository

get_repository_detailsC

Get detailed information about a repository including statistics and refs

list_repositoriesC

List repositories in a project

get_file_contentC

Get content of a file or directory from a repository

get_all_repositories_treeB

Displays a hierarchical tree view of files and directories across multiple Azure DevOps repositories within a project, based on their default branches

get_repository_treeC

Displays a hierarchical tree view of files and directories within a single repository starting from an optional path

create_branchC

Create a new branch from an existing one

create_commitA

Create a commit on an existing branch using file changes.

  • Provide plain branch names (no "refs/heads/").

  • ⚠️ Each file path may appear only once per commit request—combine all edits to a file into a single change entry.

  • Prefer multiple commits when you have sparse or unrelated edits; smaller focused commits keep review context clear.

🎯 RECOMMENDED: Use the SEARCH/REPLACE format (much easier, no line counting!).

Option 1: SEARCH/REPLACE format (EASIEST) Simply provide the exact text to find and replace:

{
  "changes": [{
    "path": "src/api/services/function-call.ts",
    "search": "return axios.post(apiUrl, payload, requestConfig);",
    "replace": "return axios.post(apiUrl, payload, requestConfig).then(r => { processResponse(r); return r; });"
  }]
}

The server fetches the file, performs the replacement, and generates the diff automatically. No line counting, no hunk headers, no context lines needed!

Option 2: UNIFIED DIFF format (Advanced) If you prefer full control, provide complete unified diffs:

  • Each patch MUST have complete hunk headers: @@ -oldStart,oldLines +newStart,newLines @@

  • CRITICAL: Every @@ marker MUST include line numbers. Do NOT use @@ without line ranges.

  • Include 3-5 context lines before and after changes.

  • For deletions: --- a/filepath and +++ /dev/null

  • For additions: --- /dev/null and +++ b/filepath

Example unified diff:

{
  "changes": [{
    "patch": "diff --git a/file.yaml b/file.yaml\n--- a/file.yaml\n+++ b/file.yaml\n@@ -4,7 +4,7 @@ spec:\n spec:\n   type: ClusterIP\n   ports:\n-    - port: 8080\n+    - port: 9090\n       targetPort: http\n"
  }]
}
list_commitsB

List recent commits on a branch including file-level diff content for each commit

list_work_itemsC

List work items in a project

get_work_itemB

Get details of a specific work item

create_work_itemC

Create a new work item

update_work_itemC

Update an existing work item

manage_work_item_linkC

Add or remove links between work items

search_codeC

Search for code across repositories in a project

search_wikiC

Search for content across wiki pages in a project

search_work_itemsC

Search for work items across projects in Azure DevOps

create_pull_requestC

Create a new pull request, including reviewers, linked work items, and optional tags

list_pull_requestsC

List pull requests in a repository

get_pull_request_commentsC

Get comments from a specific pull request

add_pull_request_commentC

Add a comment to a pull request (reply to existing comments or create new threads)

update_pull_requestC

Update an existing pull request with new properties, manage reviewers and work items, and add or remove tags

get_pull_request_changesB

Get the files changed in a pull request, their unified diffs, source/target branch names, and the status of policy evaluations

get_pull_request_checksA

Summarize the latest status checks and policy evaluations for a pull request.

  • Surfaces pipeline and run identifiers so you can jump straight to the blocking validation.

  • Pair with pipeline tools (e.g., get_pipeline_run, pipeline_timeline) to inspect failures in depth.

list_pipelinesC

List pipelines in a project

get_pipelineC

Get details of a specific pipeline

list_pipeline_runsC

List recent runs for a pipeline

get_pipeline_runC

Get details for a specific pipeline run

download_pipeline_artifactC

Download a file from a pipeline run artifact and return its textual content

pipeline_timelineB

Retrieve the timeline of stages and jobs for a pipeline run, to reduce the amount of data returned, you can filter by state and result

get_pipeline_logC

Retrieve a specific pipeline log using the timeline log identifier

trigger_pipelineC

Trigger a pipeline run

get_wikisC

Get details of wikis in a project

get_wiki_pageC

Get the content of a wiki page

create_wikiC

Create a new wiki in the project

update_wiki_pageC

Update content of a wiki page

list_wiki_pagesC

List pages within an Azure DevOps wiki

create_wiki_pageA

Create a new page in a wiki. If the page already exists at the specified path, it will be updated.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tiberriver256/mcp-server-azure-devops'

If you have feedback or need assistance with the MCP directory API, please join our Discord server