Azure DevOps工作项管理服务器

用于Azure DevOps工作项管理的MCP服务器,通过标准化协议让AI助手与Azure DevOps工作项进行交互。

  • by markis
  • Go
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 markis/azure-devops-mcp

使用说明

Azure DevOps MCP服务器

用于Azure DevOps工作项管理的MCP(模型上下文协议)服务器。允许AI助手通过标准化协议与Azure DevOps工作项进行交互。

⚡ 比官方Azure DevOps MCP服务器更快 --该服务器将HTML字段(描述、接受标准)转换为Markdown服务器端,减少令牌使用并改善AI响应时间。

特性

  • ✅ 按ID获取工作项
  • ✅ 使用WIQL查询列出工作项
  • ✅ 列出分配给经过身份验证的用户的工作项
  • ✅ 创建新工作项
  • ✅ 更新现有工作项
  • ✅ 向工作项添加注释
  • ✅ 全面的现场支持(严重性、时间跟踪、故事点、验收标准、区域/迭代路径等)
  • ✅ 双向Markdown↔ 所有富文本字段的HTML转换
    • 阅读:HTML→ Markdown(令牌高效)
    • 写:Markdown→ HTML(对开发人员友好)
    • 自动HTML净化以确保安全

安装

下载预构建的二进制文件

从以下网址下载适用于您平台的最新版本 发布页面.

macOS

# Intel Mac
curl -LO https://github.com/markis/azure-devops-mcp/releases/latest/download/azure-devops-mcp-darwin-amd64
chmod +x azure-devops-mcp-darwin-amd64
mv azure-devops-mcp-darwin-amd64 /usr/local/bin/azure-devops-mcp

# Apple Silicon (M1/M2/M3)
curl -LO https://github.com/markis/azure-devops-mcp/releases/latest/download/azure-devops-mcp-darwin-arm64
chmod +x azure-devops-mcp-darwin-arm64
mv azure-devops-mcp-darwin-arm64 /usr/local/bin/azure-devops-mcp

Linux

# AMD64
curl -LO https://github.com/markis/azure-devops-mcp/releases/latest/download/azure-devops-mcp-linux-amd64
chmod +x azure-devops-mcp-linux-amd64
sudo mv azure-devops-mcp-linux-amd64 /usr/local/bin/azure-devops-mcp

# ARM64
curl -LO https://github.com/markis/azure-devops-mcp/releases/latest/download/azure-devops-mcp-linux-arm64
chmod +x azure-devops-mcp-linux-arm64
sudo mv azure-devops-mcp-linux-arm64 /usr/local/bin/azure-devops-mcp

视窗

下载相应的 .exe 文件:

  • azure-devops-mcp-windows-amd64.exe (64位英特尔/AMD)
  • azure-devops-mcp-windows-arm64.exe (臂64)

将二进制文件添加到PATH中。

从源代码构建

git clone https://github.com/markis/azure-devops-mcp.git
cd azure-devops-mcp
go build -o azure-devops-mcp ./cmd/azure-devops-mcp

配置

设置以下环境变量:

export AZURE_DEVOPS_ORG_URL="https://dev.azure.com/your-org"
export AZURE_DEVOPS_PAT="your-personal-access-token"
export AZURE_DEVOPS_PROJECT="your-project-name"

创建个人访问令牌(PAT)

  1. 转到Azure DevOps→ 用户设置→ 个人访问令牌
  2. 使用创建新令牌 工作项(读写) 范围
  3. 复制令牌(您将不会再看到它!)

用法

启动MCP服务器:

azure-devops-mcp

服务器在stdio上运行,并遵循 模型上下文协议 规范。

配置MCP客户端

Claude Code (CLI)

Claude Code是Anthropic为具有代理工作流和深度代码库意识的开发人员提供的CLI工具。

配置文件位置:

  • 所有平台: ~/.claude/settings.json (用户级别)或 .claude/settings.json (项目级)

使用预构建的二进制文件:

{
  "mcpServers": {
    "azure-devops": {
      "command": "/usr/local/bin/azure-devops-mcp",
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-personal-access-token",
        "AZURE_DEVOPS_PROJECT": "your-project-name"
      }
    }
  }
}

使用go run:

{
  "mcpServers": {
    "azure-devops": {
      "command": "go",
      "args": ["run", "github.com/markis/azure-devops-mcp/cmd/azure-devops-mcp@latest"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-personal-access-token",
        "AZURE_DEVOPS_PROJECT": "your-project-name"
      }
    }
  }
}

CLI快捷方式:

claude mcp add azure-devops /usr/local/bin/azure-devops-mcp
Claude Desktop

Claude Desktop是Anthropic的桌面应用程序,具有图形界面。

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

使用预构建的二进制文件:

{
  "mcpServers": {
    "azure-devops": {
      "command": "/usr/local/bin/azure-devops-mcp",
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-personal-access-token",
        "AZURE_DEVOPS_PROJECT": "your-project-name"
      }
    }
  }
}

使用go run:

{
  "mcpServers": {
    "azure-devops": {
      "command": "go",
      "args": ["run", "github.com/markis/azure-devops-mcp/cmd/azure-devops-mcp@latest"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-personal-access-token",
        "AZURE_DEVOPS_PROJECT": "your-project-name"
      }
    }
  }
}
Cline (VS Code Extension)

配置文件位置:

  • macOS/Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  • 窗户: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

您还可以从Cline的UI访问此文件:单击MCP服务器图标→ 配置选项卡→ “配置MCP服务器”

使用预构建的二进制文件:

{
  "mcpServers": {
    "azure-devops": {
      "command": "/usr/local/bin/azure-devops-mcp",
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-personal-access-token",
        "AZURE_DEVOPS_PROJECT": "your-project-name"
      }
    }
  }
}

使用go run:

{
  "mcpServers": {
    "azure-devops": {
      "command": "go",
      "args": ["run", "github.com/markis/azure-devops-mcp/cmd/azure-devops-mcp@latest"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-personal-access-token",
        "AZURE_DEVOPS_PROJECT": "your-project-name"
      }
    }
  }
}
OpenCode

添加到您的OpenCode MCP配置中:

配置文件位置:

  • macOS/Linux/WSL: ~/.config/opencode/opencode.jsonc

使用预构建的二进制文件:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "azure-devops": {
      "type": "local",
      "command": ["/usr/local/bin/azure-devops-mcp"],
      "enabled": true,
      "environment": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-personal-access-token",
        "AZURE_DEVOPS_PROJECT": "your-project-name"
      }
    }
  }
}

使用go run:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "azure-devops": {
      "type": "local",
      "command": ["go", "run", "github.com/markis/azure-devops-mcp/cmd/azure-devops-mcp@latest"],
      "enabled": true,
      "environment": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-personal-access-token",
        "AZURE_DEVOPS_PROJECT": "your-project-name"
      }
    }
  }
}

备注:添加配置后,重新启动MCP客户端以使更改生效。

可用工具

  • get_work_item -按ID获取单个工作项
  • list_work_items -运行WIQL查询并返回匹配的工作项
  • list_my_work_items -返回分配给您的活动工作项
  • create_work_item -创建新工作项
  • update_work_item -更新现有工作项
  • add_comment -向工作项添加注释

在工作项中使用Markdown

所有富文本字段(描述、验收标准、注释等)都支持 Markdown输入。服务器在发送到Azure DevOps之前会自动将Markdown转换为HTML。

支持的Markdown

  • GitHub风格Markdown(GFM)
  • 标题、粗体、斜体、列表
  • 代码块(内联和围栏)
  • 表格
  • 链接和图片
  • 原始HTML(经过安全净化)

示例

# Create work item with Markdown
ado_create_work_item(
    type="Bug",
    title="Authentication Issue",
    description="""
## Problem

Users cannot log in when using **special characters** in password.

### Steps to Reproduce

1. Enter username
2. Enter password with `<` or `>` characters
3. Click Login

### Expected

Login succeeds

### Actual

Error: "Invalid credentials"
    """,
    acceptance_criteria="""
- [ ] Support special characters in passwords
- [ ] Validate input properly
- [ ] Show clear error messages
    """
)

安全

所有HTML输出都使用bluemonay的UGC策略进行净化,以防止XSS攻击。危险标签(<script>, <iframe>)和属性(onclick, javascript: URL)会自动删除。

发展

先决条件

  • 转到1.26+
  • 戈朗茨棉绒

命令

# Run tests
go test ./...

# Run tests with coverage
go test ./... -cover

# Run linter
golangci-lint run

# Build
go build -o azure-devops-mcp ./cmd/azure-devops-mcp

项目结构

.
├── cmd/azure-devops-mcp/   # Entry point
├── internal/
│   ├── client/             # Azure DevOps API client
│   ├── controller/         # MCP server setup and tool registration
│   └── tools/              # Business logic for MCP tools
├── .github/workflows/      # CI/CD pipelines
└── AGENTS.md               # Guidelines for AI coding agents

测试覆盖率

当前覆盖范围: 77.2%

  • internal/client:85.8%(Azure DevOps API客户端)
  • internal/tools:83.1%(业务逻辑)
  • internal/controller:69.7%(MCP接线)

贡献

欢迎投稿!请确保:

  1. 所有测试均通过: go test ./...
  2. 林特尔经过: golangci-lint run
  3. 代码覆盖率得以保持或提高
  4. 遵循常规提交消息

许可证

MIT许可证-有关详细信息,请参阅许可证文件

致谢