Skip to main content
Glama

adtk — Azure DevOps Toolkit

CI Go Report Card Docs License

A dual-mode Go CLI & MCP server for Azure DevOps. Single binary, PAT-first auth, 14 MCP tools with 91 actions, 4 MCP prompts.

The most comprehensive Azure DevOps MCP server. A single Go binary — CLI for humans, MCP for AI agents.

Comparison: adtk vs Microsoft azure-devops-mcp

Feature

adtk

microsoft/azure-devops-mcp

Language

Go (single static binary)

TypeScript (Node.js)

MCP Tools / Actions

14 tools / 91 actions

~75 individual tools

MCP Prompts

4 built-in prompts

None

CLI mode

Full CLI with 15 command groups

No

Auth

PAT (self-service, no admin)

Azure AD (requires admin consent)

Startup

~50ms

~2s

Response flattening

System.Titletitle

Raw API responses

Boards & Iterations

Full support

No

Test Plans

Full support

No

Advanced Security

Alert listing & details

No

Metrics

Cycle time, lead time, time-in-status

No

Git branch detection

Auto-detect work items from branch

No

Branch policies & tags

List policies, list/create tags

No

Variable groups & environments

List/get variable groups, environments

No

Saved queries

Get and run saved queries

No

Attachments

Upload, download, list

No

Write protection

ADTK_ENABLE_WRITES gate

None

Rate limiting

Built-in token bucket

None

Binary size

~15 MB

npm install (~200+ MB)

Related MCP server: ctk

Features

  • Dual-mode — Full CLI with table output + MCP server for AI agents

  • 14 consolidated MCP tools with 91 actions covering every Azure DevOps domain

  • 4 MCP prompts — sprint_summary, pr_review_digest, pipeline_health, release_readiness

  • Git branch detection — Auto-detect work item IDs from branch names (e.g., feature/12345-description)

  • Work item metrics — Cycle time, lead time, time-in-status computed from revision history

  • PAT-first auth — Self-service Personal Access Tokens, no Azure AD admin approval

  • Single binary — No Node.js, Python, or Docker required

  • Response flattening — Strips _links and converts System.* fields to readable names

  • Write protection — All mutations gated behind ADTK_ENABLE_WRITES=true

  • Rate limiting — Built-in token bucket respecting Azure DevOps TSTU limits

  • Token-optimized — AI agents get clean, concise payloads (40-60% fewer tokens)

Installation

go install

go install github.com/zach-snell/adtk/cmd/adtk@latest

Build from source

git clone https://github.com/zach-snell/adtk.git
cd adtk
./install.sh

Pre-built binaries

Download from the Releases page.

Quick Start

Authenticate

adtk auth
# Or use environment variables:
export AZURE_DEVOPS_ORG=myorg
export AZURE_DEVOPS_PAT=your-pat-here

CLI Usage

# Projects
adtk projects list
adtk projects get MyProject
adtk projects teams MyProject

# Work items
adtk work-items get 42
adtk work-items list -p MyProject

# Repositories
adtk repos list -p MyProject
adtk repos branches myrepo -p MyProject
adtk repos tree myrepo /src -p MyProject
adtk repos policies myrepo -p MyProject
adtk repos tags myrepo -p MyProject

# Pull requests
adtk pull-requests list myrepo -p MyProject
adtk pull-requests get myrepo 1

# Pipelines
adtk pipelines list -p MyProject
adtk pipelines runs 42 -p MyProject
adtk pipelines var-groups -p MyProject
adtk pipelines var-group 1 -p MyProject
adtk pipelines environments -p MyProject

# Iterations & boards
adtk iterations current -p MyProject
adtk boards list -p MyProject
adtk boards columns Stories -p MyProject

# Wiki
adtk wiki list -p MyProject
adtk wiki get ProjectWiki /Home -p MyProject

# Work item metrics
adtk work-items metrics 42 -p MyProject

# Work item auto-detect from git branch
adtk work-items get          # auto-detects work item ID from branch name

# Search
adtk search code "func main" -p MyProject
adtk search work-items "login bug" -p MyProject
adtk search wiql "SELECT [System.Id] FROM WorkItems WHERE [System.State] = 'Active'"
adtk search query "My Saved Queries/Active Bugs" -p MyProject

# Test plans
adtk test-plans list -p MyProject

# Security alerts
adtk security alerts myrepo -p MyProject

# Attachments
adtk attachments list 42 -p MyProject

# All commands support --json for raw output
adtk projects list --json

MCP Server

stdio mode (for AI agents)

adtk mcp

HTTP Streamable mode

adtk mcp --port 8080

MCP Client Configuration

Claude Desktop / Cursor / Claude Code:

{
  "mcpServers": {
    "adtk": {
      "command": "adtk",
      "args": ["mcp"],
      "env": {
        "AZURE_DEVOPS_ORG": "myorg",
        "AZURE_DEVOPS_PAT": "your-pat-here",
        "ADTK_ENABLE_WRITES": "true"
      }
    }
  }
}

Environment Variables

Variable

Required

Description

AZURE_DEVOPS_ORG

Yes

Azure DevOps organization name

AZURE_DEVOPS_PAT

Yes

Personal Access Token

ADTK_ENABLE_WRITES

No

Set to true to enable write operations (default: false)

AZURE_DEVOPS_DISABLED_TOOLS

No

Comma-separated list of tools to disable

MCP Tools

adtk exposes 14 MCP tools with 91 actions and 4 MCP prompts:

Tool

Actions

Description

manage_work_items

get, batch_get, create, update, delete, add_comment, update_comment, list_comments, get_links, list_types, get_history, batch_update, add_children, link, unlink, add_artifact_link, my_items, iteration_items

Full work item lifecycle (18 actions)

manage_projects

list, get, list_teams, get_team, create

Projects and teams (5 actions)

manage_users

get_current, search

Identity and user lookup (2 actions)

manage_search

wiql, code, work_items, wiki, get_query, run_query

Multi-domain search + saved queries (6 actions)

manage_repos

list, get, list_branches, get_file, get_tree, create_branch, search_commits, list_policies, list_tags, create_tag

Git repositories, policies, and tags (10 actions)

manage_pull_requests

list, get, create, update, add_comment, list_comments, vote, list_reviewers, update_reviewers, create_thread, update_thread, reply_to_comment

Pull request management (12 actions)

manage_iterations

list, get, get_current, create, get_team_settings

Sprint/iteration tracking (5 actions)

manage_boards

list, get, get_columns

Kanban board management (3 actions)

manage_wiki

list, get_page, list_pages, create_page, update_page, delete_page

Markdown-native wiki (6 actions)

manage_pipelines

list, get, list_runs, get_run, trigger, get_logs, get_log, get_build_changes, list_definitions, list_variable_groups, get_variable_group, list_environments

CI/CD pipelines, variable groups, and environments (12 actions)

manage_test_plans

list_plans, create_plan, list_suites, create_suite, list_cases, get_test_results

Test plan management (6 actions)

manage_advanced_security

list_alerts, get_alert

Security alert management (2 actions)

manage_metrics

get_metrics

Work item lifecycle metrics — cycle time, lead time, time-in-status (1 action)

manage_attachments

list, upload, download

Work item attachments (3 actions)

MCP Prompts

Prompt

Arguments

Description

sprint_summary

project (required), team, iteration

Generate a sprint/iteration status report

pr_review_digest

project (required), repo (required)

Generate a PR review digest for a repository

pipeline_health

project (required), pipeline_id

Analyze CI/CD pipeline health and failure trends

release_readiness

project (required), iteration

Assess release readiness with go/no-go recommendation

Security

Write Protection

adtk is read-only by default. All create, update, delete, and trigger operations require:

export ADTK_ENABLE_WRITES=true

PAT Auth

Uses HTTP Basic Auth with empty username: Authorization: Basic base64(":" + pat). No Azure AD admin consent required.

Rate Limiting

Built-in token bucket rate limiter (30 tokens, refill 1/2s) prevents hitting Azure DevOps TSTU throttling limits.

Architecture

  • Custom HTTP client — Direct REST API calls, no third-party SDK

  • Multi-base-URL routingdev.azure.com, vssps.dev.azure.com, almsearch.dev.azure.com, vsrm.dev.azure.com

  • JSON Patch for work item writes — Content-Type: application/json-patch+json

  • WIQL 2-step — Query IDs, then batch fetch fields (max 200 per request)

  • Response flattenerSystem.Titletitle, Microsoft.VSTS.Common.Prioritypriority

  • ETag concurrency — Wiki updates use If-Match headers for optimistic concurrency

  • Team-scoped APIs — Iterations/boards use {project}/{team} URL routing

Development

# Build
go build -o adtk ./cmd/adtk

# Test
go test -race ./...

# Lint
golangci-lint run ./...

# Vulnerability check
govulncheck ./...

See the development guide for full details.

Documentation

Full documentation: zach-snell.github.io/adtk

License

Apache 2.0 — see LICENSE

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
1dRelease cycle
5Releases (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.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.

  • An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform

  • A MCP server built for developers enabling Git based project management with project and personal…

View all MCP Connectors

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/zach-snell/adtk'

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