Azure DevOps MCP Server

Azure DevOps MCP Server

An MCP server providing 69 tools for interacting with Azure DevOps, supporting both local deployment and remote Azure Functions deployment.

Category
Visit Server

README

Azure DevOps MCP Server

An MCP (Model Context Protocol) server that provides 69 tools for interacting with Azure DevOps. Supports both local Claude Desktop integration and remote deployment to Azure Functions.

Features

  • Projects & Teams: List projects, teams, and team members
  • Work Items: Full CRUD, batch updates, linking, comments, backlogs
  • Git Repositories: Repos, branches, commits, file content
  • Pull Requests: Create, update, reviewers, threads, comments
  • Pipelines & Builds: List, trigger, monitor, logs, stages
  • Iterations & Areas: Sprint management, capacity planning
  • Wikis: List, read, and create/update wiki pages
  • Test Plans: Plans, suites, test cases, results
  • Search: Code, work items, and wiki search
  • Advanced Security: Security alerts and details

Deployment Options

Option 1: Local (Claude Desktop with Browser Auth)

Run locally with interactive browser authentication - best for personal use.

Option 2: Azure Functions (Serverless)

Deploy to Azure Functions for a hosted solution - best for teams and sharing.

Option 3: Remote Bridge (Claude Desktop → Azure Functions)

Connect Claude Desktop to a hosted Azure Functions instance.


Quick Start: Local Setup

1. Clone and Install

git clone https://github.com/YOUR_USERNAME/dami-ado-mcp-server.git
cd dami-ado-mcp-server
npm install
npm run build

2. Configure Environment

cp .env.example .env

Edit .env:

AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-org
# Leave AZURE_DEVOPS_PAT empty to use browser authentication

3. Add to Claude Desktop

Add to your claude_desktop_config.json:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "azure-devops": {
      "command": "node",
      "args": ["C:\\path\\to\\dami-ado-mcp-server\\dist\\index.js"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org"
      }
    }
  }
}

4. Restart Claude Desktop

A browser window will open for authentication on first use.


Azure Functions Deployment

1. Prerequisites

  • Azure CLI installed and logged in (az login)
  • Azure Functions Core Tools (npm install -g azure-functions-core-tools@4)

2. Create Azure Resources

# Create resource group
az group create --name my-ado-mcp-rg --location eastus

# Create storage account
az storage account create --name myadomcpstorage --location eastus \
  --resource-group my-ado-mcp-rg --sku Standard_LRS

# Create function app
az functionapp create --resource-group my-ado-mcp-rg \
  --consumption-plan-location eastus --runtime node --runtime-version 20 \
  --functions-version 4 --name my-ado-mcp-server \
  --storage-account myadomcpstorage

3. Configure Settings

# Set Azure DevOps org URL
az functionapp config appsettings set --name my-ado-mcp-server \
  --resource-group my-ado-mcp-rg \
  --settings AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-org

# Set PAT token (required for serverless)
az functionapp config appsettings set --name my-ado-mcp-server \
  --resource-group my-ado-mcp-rg \
  --settings AZURE_DEVOPS_PAT=your-pat-token

4. Deploy

npm run build
func azure functionapp publish my-ado-mcp-server

5. Get Function Key

az functionapp keys list --name my-ado-mcp-server --resource-group my-ado-mcp-rg

6. Test Endpoints

# Health check (no auth)
curl https://my-ado-mcp-server.azurewebsites.net/api/health

# List tools (no auth)
curl https://my-ado-mcp-server.azurewebsites.net/api/tools

# Call MCP endpoint (with function key)
curl -X POST "https://my-ado-mcp-server.azurewebsites.net/api/mcp?code=YOUR_FUNCTION_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"list_projects","arguments":{}},"id":1}'

Remote Bridge: Claude Desktop → Azure Functions

Use the remote bridge to connect Claude Desktop to your hosted Azure Functions instance.

Configure Claude Desktop

{
  "mcpServers": {
    "azure-devops-remote": {
      "command": "node",
      "args": ["C:\\path\\to\\dami-ado-mcp-server\\dist\\remote-bridge.js"],
      "env": {
        "MCP_REMOTE_URL": "https://my-ado-mcp-server.azurewebsites.net/api/mcp",
        "MCP_FUNCTION_KEY": "your-function-key"
      }
    }
  }
}

Authentication Methods

1. Interactive Browser (Local)

Best for personal use. Leave AZURE_DEVOPS_PAT empty and a browser window will open for login.

2. PAT Token (Serverless/Shared)

Required for Azure Functions. Create a PAT at: https://dev.azure.com/your-org/_usersSettings/tokens

Required scopes:

  • Code: Read & Write
  • Work Items: Read & Write
  • Build: Read & Execute
  • Project and Team: Read
  • Wiki: Read & Write
  • Test Management: Read & Write

Available Tools (69)

Projects & Teams

Tool Description
list_projects List all projects
list_project_teams List teams in a project
list_team_members List team members

Work Items

Tool Description
query_work_items Query using WIQL
get_work_items_by_ids Get by IDs
create_work_item Create new
update_work_item Update existing
update_work_items_batch Batch update multiple work items
add_child_work_items Add children to parent work item
link_work_items Link two work items
add_work_item_comment Add comment
get_work_item_comments Get comments
get_work_item_revisions Get history
list_work_item_types List types
get_my_work_items My items (assigned or created)
get_work_items_for_iteration By iteration
list_backlogs List backlogs
list_backlog_work_items List work items in a backlog

Git & Repositories

Tool Description
list_repositories List repos
get_repository Get repo details
list_branches List branches
get_branch Get branch details
create_branch Create branch
list_commits List commits
search_commits Search commits with criteria
get_file_content Get file content

Pull Requests

Tool Description
list_pull_requests List PRs
get_pull_request Get PR details
create_pull_request Create PR
update_pull_request Update PR
update_pull_request_reviewers Set reviewers
list_pull_request_threads List threads
create_pull_request_thread Create thread
reply_to_pull_request_comment Reply to comment

Pipelines & Builds

Tool Description
list_pipelines List pipelines
run_pipeline Trigger run
get_pipeline_run Get run details
list_pipeline_runs List runs
get_builds List builds
get_build_status Get status
get_build_log Get logs
list_build_definitions List definitions

Iterations & Capacity

Tool Description
list_iterations List iterations
create_iterations Create iterations
list_team_iterations Team iterations
get_team_capacity Get capacity
update_team_capacity Update capacity

Areas

Tool Description
list_areas List areas (classification nodes)

Wikis

Tool Description
list_wikis List wikis
get_wiki Get wiki details
list_wiki_pages List pages
get_wiki_page Get page content
create_or_update_wiki_page Create/update page

Test Plans

Tool Description
list_test_plans List plans
create_test_plan Create plan
list_test_suites List suites
create_test_suite Create suite
list_test_cases List cases
create_test_case Create case

Search

Tool Description
search_code Search code
search_work_items Search work items
search_wiki Search wiki

Identity

Tool Description
get_identity_ids Search for identity IDs
get_current_user Get current user

Boards & Queries

Tool Description
list_boards List boards for a team
list_queries List saved queries

Security

Tool Description
get_advanced_security_alerts List alerts
get_advanced_security_alert_details Alert details

API Endpoints (Azure Functions)

Endpoint Method Auth Description
/api/health GET None Health check
/api/tools GET None List available tools
/api/tools/{toolName} POST Function Key Execute tool
/api/mcp POST Function Key MCP JSON-RPC endpoint

MCP Protocol Examples

# List tools
curl -X POST "https://YOUR_APP.azurewebsites.net/api/mcp?code=KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

# Call a tool
curl -X POST "https://YOUR_APP.azurewebsites.net/api/mcp?code=KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"list_projects","arguments":{}},"id":1}'

Development

# Install dependencies
npm install

# Build
npm run build

# Run local MCP server (stdio)
npm start

# Run HTTP server (standalone)
npm run start:http

# Run Azure Functions locally
npm run start:func

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured