关于 MCP For Azure DevOps Boards
这是一个用 Rust 编写的 Azure DevOps Boards MCP 服务,面向需要通过 AI 客户端处理工作项、团队和看板的用户。它支持 WIQL 查询,并提供面向 LLM 的精简 JSON 输出。
主要功能
- 01创建、更新和查询工作项
- 02列出团队、看板及看板项目
- 03执行 WIQL 查询
- 04精简 JSON 输出
- 05支持标准 Azure 身份验证方式
适用场景
- 01在 Azure DevOps 中维护工作项
- 02检索项目团队与看板信息
- 03使用 WIQL 查询工作项
- 04通过 Azure CLI 凭据访问组织
MCP 相关
该 MCP 服务向客户端提供 Azure DevOps 组织、项目、工作项、团队和看板相关工具。默认通过 stdio 通信,也可配置为 HTTP 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Azure DevOps Boards 的 MCP
一个用于与 Azure DevOps Boards 和 Work Items 交互的模型上下文协议(MCP)服务,使用 Rust 编写。
功能
-
工作项管理:创建、更新、获取和查询工作项。
-
看板集成:列出团队和看板,并获取看板项。
-
WIQL 支持:运行自定义 WIQL 查询。
-
简化输出:针对大模型消费优化 JSON 输出(减少 Token 用量)。
安装
查看 MCP 配置部分,了解如何配置首选的 AI(MCP)客户端。
macOS(Homebrew)
brew tap danielealbano/mcp-tools
brew install mcp-for-azure-devops-boards
二进制文件的路径为 /opt/homebrew/bin/mcp-for-azure-devops-boards。
Windows(Scoop)
scoop bucket add mcp-tools https://github.com/danielealbano/scoop-mcp-tools
scoop install mcp-for-azure-devops-boards
二进制文件的路径为 %USERPROFILE%\scoop\apps\mcp-for-azure-devops-boards\current\mcp-for-azure-devops-boards.exe。
配置
| 设置 | 描述 | CLI 标志 | 环境变量 |
|---|---|---|---|
| 服务模式 | 以 HTTP 服务而非 stdio 模式运行 | --server | N/A |
| 端口 | HTTP 服务的端口(默认:3000) | --port | N/A |
注意:如果未指定 --server,软件将以 stdio 模式运行。
身份验证
此服务使用 Azure 标准身份验证机制查询 Azure DevOps。每次请求时,它都会通过按顺序尝试以下凭据来源,并使用第一个返回令牌的来源,为 Azure DevOps REST API 获取 Bearer 令牌(作用域 499b84ac-1321-427f-aa17-267ca6975798/.default):
- 环境变量(客户端密钥) — 仅当
AZURE_TENANT_ID、AZURE_CLIENT_ID和AZURE_CLIENT_SECRET全部设置时使用。如果只设置了其中一部分,则会发出警告并跳过此来源。 - Azure CLI — 使用你的
az login会话,针对 Azure DevOps 作用域运行az account get-access-token。 - Azure Developer CLI — 使用你的
azd auth login会话。 - 托管标识 — 用于托管在 Azure 上的部署。在 Azure 外部无法访问此探测,因此会设置 2 秒超时,随后跳过,以确保凭据链不会一直挂起。
如果所有来源都失败,返回的错误会列出各来源的失败原因,让你准确了解问题所在(例如 Azure CLI 同意错误以及“PATH 中找不到 azd”),而不是只显示最后一次尝试的错误。
对于本地开发,使用 Azure CLI 登录(如下所示)是最简单的方式——你必须运行过 az login,且拥有对目标 Azure DevOps 组织的访问权限。
安装 Azure CLI
如果尚未安装 Azure CLI:
macOS(Homebrew):
brew install azure-cli
Windows(Scoop):
scoop install azure-cli
Windows(Chocolatey):
choco install azure-cli
如需了解其他安装方式,请参阅 Azure CLI 官方安装指南。
登录
如需进行身份验证,请运行:
az login
使用方法
Stdio 模式(默认)
这是 MCP 客户端(例如 Claude Desktop 或 Cursor)的标准模式。出于安全考虑,推荐使用此模式,因为它可确保凭据不会通过网络共享。
path/to/mcp-for-azure-devops-boards
HTTP 服务模式
你也可以将其作为 HTTP 服务(SSE)运行。请注意,在此模式下,服务会监听 0.0.0.0(所有接口)。
path/to/mcp-for-azure-devops-boards --server --port 3000
MCP 配置
注意:请确保已在终端中运行 az login,以便进程获取凭据。
使用 --install 快速设置
通过首选客户端注册 MCP 服务的最快方式:
mcp-for-azure-devops-boards --install <target>
有效目标及其写入配置的位置:
| 目标 | 配置文件 | 范围 |
|---|---|---|
claude-code | ~/.claude.json | 全局(主目录) |
claude-desktop | macOS: ~/Library/Application Support/Claude/claude_desktop_config.jsonLinux: ~/.config/Claude/claude_desktop_config.jsonWindows: %APPDATA%\Claude\claude_desktop_config.json | 全局(按用户) |
cursor | ~/.cursor/mcp.json | 全局(主目录) |
vscode | .vscode/mcp.json | 工作区(当前目录) |
codex | ~/.codex/config.toml | 全局(主目录) |
gemini-cli | ~/.gemini/settings.json | 全局(主目录) |
该命令会自动检测二进制文件路径,解析正确的配置文件位置,并按预期格式写入配置项。现有配置会予以保留。
手动配置
Claude Code
配置文件:~/.claude.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop):将命令路径替换为
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe。
Claude Desktop
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop):将命令路径替换为
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe。
Cursor
配置文件:~/.cursor/mcp.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop):将命令路径替换为
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe。
VS Code
配置文件:.vscode/mcp.json(工作区级别)
{
"servers": {
"mcp-for-azure-devops-boards": {
"type": "stdio",
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop):将命令路径替换为
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe。
gemini-cli
配置文件:~/.gemini/settings.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop):将命令路径替换为
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe。
Codex CLI
配置文件:~/.codex/config.toml
[mcp_servers.mcp-for-azure-devops-boards]
command = "/opt/homebrew/bin/mcp-for-azure-devops-boards"
Windows (Scoop):将命令路径替换为
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe。
可用工具
此软件目前仍在开发中。工具及其参数可能会发生变化。
该服务向 MCP 客户端提供以下工具。
工具名称的一般结构为 azdo_VERB_WHAT(例如 azdo_list_teams、azdo_get_work_item)。
发现
azdo_list_organizations:列出经过身份验证的用户有权访问的所有 Azure DevOps 组织。- 必需项:无(使用经过身份验证的用户凭据)
azdo_list_projects:列出 Azure DevOps 组织中的所有项目。- 必需项:
organization
- 必需项:
工作项
注意:所有工作项工具都需要
organization和project参数。
azdo_create_work_item:创建新的工作项。- 必填:
organization、project、work_item_type、title - 可选:
description、assigned_to、area_path、iteration_path、state、board_column、board_row、priority、severity、story_points、effort、remaining_work、tags、activity、parent_id、start_date、target_date、acceptance_criteria、repro_steps、fields(自定义字段的 JSON 字符串)。
- 必填:
azdo_update_work_item:更新现有工作项。- 必填:
organization、project、id - 可选:创建时可用的所有字段。
- 必填:
azdo_get_work_item:获取特定工作项的详细信息。- 必填:
organization、project、id - 可选:
include_latest_n_comments(要包含的近期评论数量,-1 表示全部)
- 必填:
azdo_get_work_items:根据 ID 获取多个工作项。- 必填:
organization、project、ids(工作项 ID 数组) - 可选:
include_latest_n_comments(要包含的近期评论数量,-1 表示全部)
- 必填:
azdo_query_work_items:使用结构化筛选条件查询工作项。- 必填:
organization、project - 可选筛选条件:
area_path、iteration_path、created_date_from/to、modified_date_from/to。 - 包含列表:
include_board_column、include_board_row、include_work_item_type、include_state、include_assigned_to、include_tags。 - 排除列表:
exclude_board_column、exclude_board_row、exclude_work_item_type、exclude_state、exclude_assigned_to、exclude_tags。 - 可选:
include_latest_n_comments(要包含的近期评论数量,-1 表示全部)
- 必填:
azdo_query_work_items_by_wiql:执行原始 WIQL(Work Item Query Language)查询。- 必填:
organization、project、query - 可选:
include_latest_n_comments(要包含的近期评论数量,-1 表示全部)
- 必填:
azdo_add_comment:向工作项添加评论。- 必填:
organization、project、work_item_id、text
- 必填:
azdo_link_work_items:在两个工作项之间建立关系。- 必填:
organization、project、source_id、target_id、link_type(Parent、Child、Related、Duplicate、Dependency)。
- 必填:
看板与团队
注意:所有看板和团队工具都需要
organization和project参数。
azdo_list_teams:列出项目中的所有团队。- 必填:
organization、project
- 必填:
azdo_get_team:获取特定团队的详细信息。- 必填:
organization、project、team_id
- 必填:
azdo_list_team_boards:列出特定团队的看板。- 必填:
organization、project、team_id
- 必填:
azdo_get_team_board:获取特定看板的详细信息。- 必填:
organization、project、team_id、board_id
- 必填:
azdo_list_work_item_types:列出项目中所有可用的工作项类型。- 必填:
organization、project
- 必填:
azdo_list_tags:列出项目中使用的所有标签。- 必填:
organization、project
- 必填:
azdo_get_team_current_iteration:获取团队当前进行中的迭代/冲刺。- 必填:
organization、project、team_id
- 必填:
azdo_get_team_iterations:获取团队的所有迭代/冲刺。- 必填:
organization、project、team_id
- 必填:
贡献
欢迎贡献!
- Fork 此仓库。
- 为你的功能或错误修复创建一个新的 branch(
git checkout -b feature/amazing-feature)。 - Commit 你的更改。
- Push 到你的分支。
- 发起一个 Pull Request。
从源代码构建
前提条件
步骤
-
克隆仓库:
git clone https://github.com/danielealbano/mcp-for-azure-devops-boards.git cd mcp-for-azure-devops-boards -
构建项目:
cargo build --release
工具
- 运行测试:
cargo test - 检查代码风格:
cargo fmt --check - 代码检查:
cargo clippy
免责声明
本项目与 Microsoft 无关联,未获其认可或赞助。Azure、Azure DevOps 及相关商标均为各自所有者的财产。本软件使用 Microsoft 的标准服务 API 与 Azure 和 Microsoft Graph 等服务交互。
许可证
本项目采用 MIT License 授权,详情请参阅 LICENSE.md 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。