Back to Directory/Cloud Providers

Azure Boards MCP

Azure DevOps Boards work items over MCP (stdio). Requires Bun, org, project, and PAT.

Cloud ProvidersTypeScriptv1.0.0

azure-board-mcp

MCP server for Azure DevOps. Work with tasks, sprints, bugs, pull requests, repositories, and pipelines directly from Claude, Cursor, or any MCP-compatible AI.


Quick start

# 1. Configure your editors (Claude Code, Cursor, VS Code, Claude Desktop)
npx azure-board-mcp install

# 2. Sign in once
npx azure-board-mcp authenticate

# 3. Restart your editor — done

On first use the AI will ask which Azure DevOps project to work on and remember it.


Install & authenticate

Browser sign-in (default)

npx azure-board-mcp authenticate

Opens your browser for Microsoft sign-in. Picks your org from a list. No Azure AD app setup required — uses a shared app registration built into the package.

PAT — Personal Access Token

For headless / CI environments or orgs that block third-party OAuth:

npx azure-board-mcp authenticate --pat

Create a PAT at https://dev.azure.com/{org}/_usersSettings/tokens with scopes: Work Items (Read & Write), Build (Read), Code (Read).


Editor setup

Option A — automatic (recommended)

npx azure-board-mcp install

Detects and configures Claude Code, Cursor, VS Code, and Claude Desktop automatically.

Option B — manual

Claude Code (~/.claude/settings.json):

{
  "mcpServers": {
    "azure": {
      "command": "npx",
      "args": ["-y", "azure-board-mcp@latest"]
    }
  }
}

Cursor (~/.cursor/mcp.json):

{
  "mcpServers": {
    "azure": {
      "command": "npx",
      "args": ["-y", "azure-board-mcp@latest"]
    }
  }
}

VS Code (User settings.json):

{
  "mcp": {
    "servers": {
      "azure": {
        "type": "stdio",
        "command": "npx",
        "args": ["-y", "azure-board-mcp@latest"]
      }
    }
  }
}

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "azure": {
      "command": "npx",
      "args": ["-y", "azure-board-mcp@latest"]
    }
  }
}

Claude Code skill

Install a skill so Claude automatically knows when to use this MCP:

npx azure-board-mcp skills

This installs ~/.claude/skills/azure-board-mcp/SKILL.md. After restarting Claude Code, it will proactively use Azure DevOps tools whenever you ask about tasks, sprints, PRs, builds, etc.


CLI reference

npx azure-board-mcp <command>

COMMANDS
  install               Auto-configure MCP in detected editors
  skills                Install the Claude Code skill
  authenticate          Browser OAuth sign-in
  authenticate --pat    Personal Access Token sign-in
  check                 Validate stored credentials
  logout                Clear stored credentials
  help                  Show help

AUTHENTICATE FLAGS
  --pat                 Use PAT instead of browser OAuth
  --read-only           Request read-only OAuth scopes
  --client-id <id>      Use your own Azure AD app
  --tenant-id <id>      Specify tenant (single-tenant apps only)

Tools (30)

Work-item, commit, and PR lists are paginated — they return a compact page (default 15, max 50) with a Showing X–Y of N header. Pass skip to page through results instead of requesting a large top. List views fetch only the fields they render, so they're fast and light on context.

Auth & project

ToolWhen to use
auth_statusDiagnose auth issues, check which project is active
switch_projectChange the active project, or list available ones

Work items

ToolWhen to use
list_work_itemsMy tasks, sprint board, filter by state/type/keyword (paginated)
get_work_itemFull detail on a specific ticket — fields, comments, PRs
create_work_itemCreate a task, bug, user story, epic, feature
update_work_itemClose, reassign, move sprint, update estimates
add_commentPost a note or status update on a ticket
link_work_itemsSet parent/child, related, or dependency links
query_wiqlAdvanced queries with custom WIQL (paginated)
get_work_item_historyAudit trail — which fields changed, when, by whom
get_backlogOrdered, priority-ranked product backlog

Boards, sprints & teams

ToolWhen to use
get_sprintCurrent sprint dates and team capacity
list_sprintsAll sprints with start/end dates
get_boardKanban columns, state mappings, WIP limits
list_team_membersWho's on a team (names, emails, admin flag)
list_pathsValid area / iteration path values for create/update

Repositories

ToolWhen to use
list_reposDiscover repo names and URLs
list_filesBrowse directory structure
get_fileRead file contents (up to 500 lines)
list_commitsRecent commits on a branch (paginated)
list_pull_requestsOpen PRs, reviewer votes, merge status (paginated)
create_prOpen a PR with optional reviewers and linked work items

Pipelines, builds & releases

ToolWhen to use
list_pipelinesDiscover pipeline definitions
list_buildsRecent builds — status, result, branch, link
run_pipelineTrigger a pipeline run
get_build_timelineWhich stage/job/task failed, with error/warning counts
get_build_logsDiagnose build failures (build output)
cancel_buildCancel an in-progress build
list_releasesRecent releases with per-environment deploy status
create_releaseCreate and trigger a release from a definition

Environment variables

Override stored credentials — useful for CI/Docker:

AZURE_ORG=my-org
AZURE_PROJECT=my-project
AZURE_PAT=my-pat        # PAT auth
AUTH_TOKEN=my-token     # OAuth bearer token

Using your own Azure AD app

By default everyone shares the built-in app registration. If your org blocks it, or you need full control:

1. Register the app

  1. Azure Portal → App registrations → New registration
  2. Name: anything (e.g. azure-board-mcp)
  3. Supported account types: "Any organizational directory" (multitenant) or "My organization only"
  4. Click Register

2. Configure it

In Authentication:

  1. Add a platform → Mobile and desktop applications → check http://localhost → Configure
  2. Allow public client flows → Yes → Save

In API permissions:

  1. Add a permission → APIs my organization uses → search Azure DevOps
  2. Select user_impersonation (delegated) → Add
  3. Click Grant admin consent (optional — skips the per-user consent prompt)

3. Use it

npx azure-board-mcp authenticate --client-id <your-app-id>

# Single-tenant:
npx azure-board-mcp authenticate --client-id <your-app-id> --tenant-id <your-tenant-id>

For org admins — pre-approve for everyone in your org:

https://login.microsoftonline.com/{tenant-id}/adminconsent
  ?client_id=e2ba32e7-6d24-4919-ba7b-37199c495247
  &redirect_uri=http://localhost

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y azure-board-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-broisnischal-azure-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "azure-board-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

azure-board-mcpnpm

Compatible MCP Clients

Azure Boards MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More