Skip to content

Introduction

adtk (Azure DevOps Toolkit) is a dual-mode Go application that provides both a full-featured CLI and a Model Context Protocol (MCP) server for Azure DevOps. It uses PAT-first authentication, requires no Azure AD admin approval, and ships as a single binary with zero runtime dependencies.

Azure DevOps has a rich REST API, but working with it directly is tedious. Microsoft’s official MCP server (azure-devops-mcp) exists, but it requires Node.js, lacks a CLI, and doesn’t cover boards, iterations, or attachments.

adtk solves this with a single Go binary that works equally well for human operators at the terminal and AI agents via MCP.

Comparison: adtk vs Microsoft azure-devops-mcp

Section titled “Comparison: adtk vs Microsoft azure-devops-mcp”
FeatureadtkMicrosoft azure-devops-mcp
LanguageGo (single static binary)TypeScript (Node.js runtime)
MCP Tools / Actions14 tools / 91 actions~75 individual tools
MCP Prompts4 built-in promptsNone
CLI modeFull CLI with 15 command groupsNo
AuthPAT (self-service, no admin)Azure AD (requires admin consent)
Startup time~50ms~2s
Response flatteningSystem.TitletitleRaw API responses
Boards & IterationsFull supportNo
Test PlansFull supportNo
Advanced SecurityAlert listing & detailsNo
MetricsCycle time, lead time, time-in-statusNo
Git branch detectionAuto-detect work items from branchNo
Branch policies & tagsList policies, list/create tagsNo
Variable groups & environmentsList/get variable groups, environmentsNo
Saved queriesGet and run saved queriesNo
AttachmentsUpload, download, listNo
Write protectionADTK_ENABLE_WRITES gateNone
Rate limitingBuilt-in token bucketNone
Binary size~15 MBnpm install (~200+ MB node_modules)

adtk has a clean dual-mode architecture. Both the CLI and MCP server share the same devops.Client layer, ensuring identical behavior regardless of how you interact with it.

┌─────────────┐ ┌──────────────┐
│ Terminal │ │ AI Agent │
│ (human) │ │ (Claude, etc)│
└──────┬──────┘ └──────┬───────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ CLI Mode │ │ MCP Mode │
│ (cobra) │ │ (go-sdk) │
└──────┬───────┘ └──────┬───────┘
│ │
└───────────┬───────────┘
┌────────────────┐
│ devops.Client │
│ (REST API) │
└────────┬───────┘
┌───────────┼───────────┐
▼ ▼ ▼
dev.azure.com vssps.* almsearch.*
vsrm.*

PAT-First Auth

Personal Access Tokens require no admin approval. Auth is Basic base64(":" + pat) — simple, portable, and works everywhere.

Consolidated Tools

Rather than 75+ individual MCP tools, adtk groups related operations into 14 tools with an action parameter. This keeps the tool registry clean for AI agents.

Response Flattening

Work item fields like System.Title and Microsoft.VSTS.Common.Priority are automatically converted to title and priority. The _links noise is stripped. AI agents get token-efficient payloads.

Write Protection

All mutating operations (create, update, delete, trigger) are gated behind ADTK_ENABLE_WRITES=true. Read-only by default — safe to deploy without worrying about accidental writes.