Skip to main content
Glama

ADO MCP Server — Azure DevOps × Claude Code Bridge

Connects Azure DevOps work items to Claude Code via the MCP protocol.
Type work on task #123 in Claude Code → it fetches the full ticket → writes code → opens a PR.


Project Structure

ado-mcp-server/
├── src/
│   ├── index.js              # MCP server entry point (4 tools exposed)
│   ├── ado-client.js         # Azure DevOps HTTP client (PAT auth)
│   └── tools/
│       ├── get-ticket.js     # ado_get_work_item
│       ├── list-tickets.js   # ado_list_work_items
│       └── update-ticket.js  # ado_update_work_item_state + ado_add_comment
├── CLAUDE.md                 # ← Copy this to your GitHub repo root!
├── .env                      # Your secrets (never commit this)
├── .env.example              # Template
└── package.json

Related MCP server: Azure DevOps MCP Server

Setup (One-Time)

1. Configure your credentials

# .env
ADO_ORG=your-actual-org-name          # found in: https://dev.azure.com/{ORG}
ADO_PROJECT=your-actual-project-name
ADO_PAT=xxxxxxxxxxxxxxxxxxxxxxxxxxxx   # from ADO → User Settings → PATs

Create a PAT in Azure DevOps:

  1. Go to https://dev.azure.com/{your-org}

  2. Click your avatar → Personal Access Tokens

  3. New Token → Name it claude-mcp

  4. Scopes: Work Items → Read & Write

  5. Copy the token into .env

2. Install dependencies

cd E:\MCP\ado-mcp-server
npm install

3. Register with Claude Code CLI

claude mcp add ado-server node E:\MCP\ado-mcp-server\src\index.js

Or manually add to %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "ado-server": {
      "command": "node",
      "args": ["E:\\MCP\\ado-mcp-server\\src\\index.js"]
    }
  }
}

4. Install GitHub CLI (for PR creation)

winget install GitHub.cli
gh auth login

5. Copy CLAUDE.md to your GitHub repo root

copy E:\MCP\ado-mcp-server\CLAUDE.md C:\path\to\your-github-repo\CLAUDE.md

Daily Usage

# Open Claude Code in your repo
cd C:\path\to\your-github-repo
claude

Then just type any of these:

> work on task #123
> implement PBI 456
> what's in the current sprint?
> show me unassigned bugs
> list tasks assigned to me

Claude will automatically:

  1. Fetch the full ticket from Azure DevOps

  2. Mark it as "In Progress"

  3. Create a feature branch

  4. Write the code following the acceptance criteria

  5. Commit and push

  6. Create a PR on GitHub

  7. Post the PR link as a comment on the ADO ticket


Available MCP Tools

Tool

Description

Example Prompt

ado_get_work_item

Full ticket details

"work on task #123"

ado_list_work_items

List/filter tickets

"show sprint backlog"

ado_update_work_item_state

Change ticket state

auto-called when starting/completing

ado_add_comment

Add comment to ticket

auto-called after PR creation


Troubleshooting

"Missing required environment variables"
→ Make sure .env exists and has all 3 values: ADO_ORG, ADO_PROJECT, ADO_PAT

"401 Unauthorized"
→ Your PAT may be expired or missing Work Items (Read & Write) scope. Regenerate it.

"Tool not found in Claude Code"
→ Run claude mcp list to verify the server is registered. Re-run the claude mcp add command.

PR creation fails
→ Run gh auth status — make sure GitHub CLI is authenticated.

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/JaivinSavaliya/claude-mcp-automation'

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