使用说明
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)
- 转到Azure DevOps→ 用户设置→ 个人访问令牌
- 使用创建新令牌 工作项(读写) 范围
- 复制令牌(您将不会再看到它!)
用法
启动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接线)
贡献
欢迎投稿!请确保:
- 所有测试均通过:
go test ./... - 林特尔经过:
golangci-lint run - 代码覆盖率得以保持或提高
- 遵循常规提交消息
许可证
MIT许可证-有关详细信息,请参阅许可证文件
致谢
- 建于 模型上下文协议Go SDK
- 用途 Azure DevOps Go API
- HTML到Markdown的转换 html到markdown
