Model Context Protocol Server Streamable HTTP/SSE/STDIO for azure devops
2.6K
This Model Context Protocol (MCP) server enables Large Language Models (LLMs) to interact with Azure DevOps services through a standardized API. It allows AI assistants to perform common Azure DevOps operations without needing direct API integration.
The MCP server supports the following Azure DevOps operations:
create_pull_request: Create a new pull requestlist_all_repositories: Get a list of all repositories in a projectget_repository: Get details about a specific repositoryget_pull_request_statuses: Get the statuses of pull requestsget_pull_requests_in_repository: List all pull requests in a repositoryrun_pipeline_on_branch: Trigger a pipeline run on a specific branchget_all_pipelines: List all pipelines in a projectdocker run -d --name azure-devops-mcp \
-p 8080:8080 \
-e org.name=your-organization \
-e project.name=your-project \
-e pat=your-personal-access-token \
guang1/azure-devops-mcp:latest
Create a configuration file (e.g., azure-devops.config):
org.name=your-organization
project.name=your-project
pat=your-personal-access-token
Then run:
docker run -d --name azure-devops-mcp \
-p 8080:8080 \
--env-file azure-devops.config \
guang1/azure-devops-mcp:latest
services:
azure-devops:
container_name: azure-devops-mcp
image: guang1/azure-devops-mcp
environment:
- org.name=your-organization
- project.name=your-project
- pat=your-personal-access-token
ports:
- "8080:8080"
restart: always
services:
azure-devops:
container_name: azure-devops-mcp
image: guang1/azure-devops-mcp
env_file:
- ./azure-devops.config
ports:
- "8080:8080"
restart: always
http://localhost:8080/mcp/sse
http://localhost:8080/mcp
Must pass quarkus.mcp.server.stdio.enabled=true, quarkus.log.console.enable=false and quarkus.log.console.stderr=false environment variables with -i interactive option.
docker run --rm \
-e org.name=your-organization \
-e project.name=your-project \
-e pat=your-personal-access-token \
-e quarkus.mcp.server.stdio.enabled=true \
-e quarkus.log.console.enable=false \
-e quarkus.log.console.stderr=false \
-i guang1/azure-devops-mcp:latest
docker run --rm --env-file=azure-devops.config \
-e quarkus.mcp.server.stdio.enabled=true \
-e quarkus.log.console.enable=false \
-e quarkus.log.console.stderr=false \
-i guang1/azure-devops-mcp:latest
To use the Docker version with Claude Desktop, add this to your claude_desktop_config.json or server_config.json file:
{
"mcpServers": {
"azure-devops": {
"command": "docker",
"args": [
"run",
"--rm",
"-e",
"org.name=your-organization",
"-e",
"project.name=your-project",
"-e",
"pat=your-personal-access-token",
"-e",
"quarkus.mcp.server.stdio.enabled=true",
"-e",
"quarkus.log.console.enable=false",
"-e",
"quarkus.log.console.stderr=false",
"-i",
"guang1/azure-devops-mcp:latest"
]
}
}
}
{
"mcpServers": {
"azure-devops": {
"command": "docker",
"args": [
"run",
"--rm",
"--env-file=azure-devops.config",
"-e",
"quarkus.mcp.server.stdio.enabled=true",
"-e",
"quarkus.log.console.enable=false",
"-e",
"quarkus.log.console.stderr=false",
"-i",
"guang1/azure-devops-mcp:latest"
]
}
}
}
| Variable | Description | Required |
|---|---|---|
org.name | Azure DevOps organization name | Yes |
project.name | Azure DevOps project name | Yes |
pat | Personal Access Token with appropriate permissions | Yes |
Your Personal Access Token needs these permissions:
⚠️ Warning: This MCP server requires a Personal Access Token with write access to repositories and pipelines. Consider the following security practices:
This MCP server provides a standardized API that Large Language Models can use to interact with your Azure DevOps environment:
The LLM can create a pull request by calling the create_pull_request operation with the appropriate parameters.
The LLM can trigger pipeline runs using the run_pipeline_on_branch operation.
If you encounter issues:
Content type
Image
Digest
sha256:f3047fc12…
Size
158.2 MB
Last updated
12 months ago
docker pull guang1/azure-devops-mcp