Azure DevOps Boards管理协议

用于与Azure DevOps Boards和Work Items交互的模型上下文协议(MCP)服务器,提供工作项管理、看板集成和WIQL查询支持。

  • by danielealbano
  • Rust
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 danielealbano/azure-devops-boards-mcp-rust

使用说明

Azure DevOps板的MCP

一个用Rust编写的模型上下文协议(MCP)服务器,用于与Azure DevOps板和工作项交互。

特性

  • 工作项管理:创建、更新、获取和查询工作项。

  • 董事会集成:列出团队、董事会,并获取董事会项目。

  • WIQL支持:运行自定义WIQL查询。

  • 简化输出:针对LLM消费优化JSON输出(减少令牌使用)。

安装

查看该部分 MCP配置 了解如何配置您首选的AI(MCP)客户端。

macOS(自制)

brew tap danielealbano/mcp-tools
brew install mcp-for-azure-devops-boards

二进制文件的路径为 /opt/homebrew/bin/mcp-for-azure-devops-boards.

窗户(独家新闻)

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 无
港口 HTTP服务器的端口(默认值:3000) --port 无

注:如果 --server 如果未指定,软件将在stdio模式下运行。

认证

此服务器利用标准的Azure身份验证机制来查询Azure DevOps。上 每 请求它获取Azure DevOps REST API的承载令牌(范围 499b84ac-1321-427f-aa17-267ca6975798/.default)通过尝试以下凭据源 依次 并使用返回令牌的第一个:

  1. 环境(客户机密) --仅在以下情况下使用 AZURE_TENANT_ID, AZURE_CLIENT_ID,以及 AZURE_CLIENT_SECRET 是 全部 集。如果只设置了一些,则会跳过并发出警告。
  2. Azure命令行界面 --跑步 az account get-access-token 对于Azure DevOps范围,使用您的 az login 会议。
  3. Azure开发者命令行界面 --使用您的 azd auth login 会议。
  4. 管理身份 --适用于Azure托管部署。在Azure之外,此探测器无法访问,因此它受到 2秒超时 然后跳过,确保链条永远不会挂断。

如果 全部 如果源失败,返回的错误会列出每个源的失败原因(例如,Azure CLI同意错误以及“在PATH上找不到azd”),而不仅仅是最后一个尝试的错误。

对于本地开发,使用Azure CLI(如下)登录是最简单的选择——您必须运行 az login 访问目标Azure DevOps组织。

安装Azure CLI

如果您没有安装Azure CLI:

macOS(Homebrew):

brew install azure-cli

窗口(独家新闻):

scoop install azure-cli

窗户(巧克力):

choco install azure-cli

有关其他安装方法,请参阅 官方Azure CLI安装指南.

登录

要进行身份验证,请运行:

az login

用法

标准模式(默认)

这是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.json
Linux: ~/.config/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
全局(每个用户)
cursor ~/.cursor/mcp.json 全球(家庭)
vscode .vscode/mcp.json 工作区(当前目录)
codex ~/.codex/config.toml 全球(家庭)
gemini-cli ~/.gemini/settings.json 全球(家庭)

该命令自动检测二进制路径,解析正确的配置文件位置,并以预期的格式写入条目。保留现有配置。

手动配置

Claude 代码

配置文件: ~/.claude.json

{
  "mcpServers": {
    "mcp-for-azure-devops-boards": {
      "command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
    }
  }
}

窗户(独家新闻):将命令路径替换为 %USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.

克劳德桌面版

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-for-azure-devops-boards": {
      "command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
    }
  }
}

窗户(独家新闻):将命令路径替换为 %USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.

光标

配置文件: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-for-azure-devops-boards": {
      "command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
    }
  }
}

窗户(独家新闻):将命令路径替换为 %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"
    }
  }
}

窗户(独家新闻):将命令路径替换为 %USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.

双子座气候

配置文件: ~/.gemini/settings.json

{
  "mcpServers": {
    "mcp-for-azure-devops-boards": {
      "command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
    }
  }
}

窗户(独家新闻):将命令路径替换为 %USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.

Codex 命令行界面

配置文件: ~/.codex/config.toml

[mcp_servers.mcp-for-azure-devops-boards]
command = "/opt/homebrew/bin/mcp-for-azure-devops-boards"

窗户(独家新闻):将命令路径替换为 %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(工作项查询语言)查询。
    • 必需的: 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 (父、子、相关、重复、依赖)。

董事会和团队

备注:所有董事会和团队工具都需要 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

贡献

我们欢迎捐款!

  1. 叉子 存储库。
  2. 创建一个新的 分支 针对您的功能或错误修复(git checkout -b feature/amazing-feature).
  3. 提交 您的更改。
  4. 推 到你的分行。
  5. 打开A 拉取请求.

从源头构建

先决条件

步骤

  1. 克隆存储库:

    git clone https://github.com/danielealbano/mcp-for-azure-devops-boards.git
    cd mcp-for-azure-devops-boards
    
  2. 构建项目:

    cargo build --release
    

工具

  • 运行测试: cargo test
  • 检查代码样式: cargo fmt --check
  • Linting: cargo clippy

免责声明

此项目与Microsoft无关、不受Microsoft认可或赞助。Azure、Azure DevOps和相关商标是其各自所有者的财产。该软件使用标准的Microsoft服务API与Azure和Microsoft Graph以及其他服务进行交互。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证.md 文件以获取详细信息。