Token导航 LogoToken导航TokenDH.com
Azuredevopsmcp logo
运维云端stdio官方级别未说明来源级核验

Azuredevopsmcp

MCP Server

一个基于AI的Azure DevOps MCP服务器,提供与Azure DevOps仓库、拉取请求和工作项交互的工具。

工具数

16

提示词数

0

GitHub Stars

0

资源数

0
Azure DevOps代码管理PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AbdelrhmanSror

提供方

AbdelrhmanSror

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

Azure DevOps MCP服务器

模型上下文协议(MCP)服务器,提供人工智能驱动的工具,用于与Azure DevOps存储库、拉取请求和工作项进行交互。内置FastMCP,可与Claude和其他兼容MCP的AI助手无缝集成。

特性

  • 项目发现 -列出所有可访问的Azure DevOps项目
  • 库管理 -解析存储库ID,列出分支
  • 拉取请求操作 -列出、创建、检查和评论PR
  • 工作项管理 -创建PBI、Bug和自定义工作项
  • 差异分析 -获取原始和修改内容的完整统一差异
  • 代码审查 -内置审核策略和自动审核功能
  • PR工作项链接 -将拉取请求链接到工作项
  • 自动发现 -自动工具和资源注册
  • 可扩展架构 -添加新功能的简单模式

项目结构

AzureDevopsMcp/
├── src/
│   ├── config.py              # Global MCP instance & configuration
│   ├── client.py              # HTTP client for Azure DevOps API
│   ├── server.py              # Server entry point
│   ├── utils/
│   │   └── helpers.py         # Helper functions (repo resolution, blob fetching)
│   ├── tools/
│   │   ├── __init__.py        # Auto-import tool modules
│   │   ├── repository.py      # Repository & project tools
│   │   ├── pull_requests.py   # Pull request tools
│   │   └── work_items.py      # Work item tools (PBI, Bug, etc.)
│   └── policies/
│       ├── __init__.py        # Auto-import policy modules
│       └── review_policy.py   # Code review policy resource
├── main.py                    # Application entry point
├── requirements.txt           # Python dependencies
├── .env                       # Environment configuration
└── README.md

设置

1.克隆和安装

git clone 
cd AzureDevopsMcp
pip install -r requirements.txt

2.配置环境

创建一个 .env 项目根目录中的文件:

ADO_ORG_URL=https://dev.azure.com/YourOrganization
ADO_PROJECT=YourDefaultProject
ADO_PAT=your_personal_access_token_here

获取个人访问令牌(PAT):

  1. 转到Azure DevOps→ 用户设置→ 个人访问令牌
  2. 创建具有权限的新令牌:

- Code (Read & Write) -用于存储库和PR操作 - Pull Request Threads (Read & Write) -征求公关意见 - Work Items (Read & Write) -用于创建/更新工作项

  1. 将令牌复制到您的 .env 文件

3.运行服务器

python main.py

服务器将在stdio模式下运行,准备接受MCP协议请求。

可用工具

项目和存储库工具

list_projects() -> List[Dict]

列出您有权访问的所有Azure DevOps项目。

退货: 包含名称、id、描述和状态的项目列表。

用途: 在创建工作项之前调用此命令以发现可用项目。

______________________________________________________________________

resolve_repo_id(repo_key: str, project: str = None) -> str

将存储库名称转换为其GUID标识符。

参数:

  • repo_key -存储库名称(例如“my api”)或GUID

退货: 存储库GUID

______________________________________________________________________

list_branches(repo_id: str, filter_name: str = None, top: int = 100) -> List[Dict]

列出存储库中的分支。

参数:

  • repo_id -存储库GUID来自 resolve_repo_id
  • filter_name -可选的按名称前缀过滤(例如“feature/”)
  • top -要返回的最大分支数

退货: 具有名称、全名、isDefault、创建者、objectId的分支列表

______________________________________________________________________

拉取请求工具

list_pull_requests(repo_id: str, status: str = "active", top: int = 10) -> List[Dict]

列出存储库的拉取请求。

参数:

  • repo_id -存储库GUID
  • status -筛选器: "active", "completed", "abandoned"
  • top -PR的最大数量

______________________________________________________________________

get_pull_request(repo_id: str, pr_id: int) -> str

检索特定拉取请求的详细信息。

______________________________________________________________________

create_pull_request(repo_id: str, source_branch: str, target_branch: str, title: str, description: str = None, work_item_ids: List[int] = None) -> Dict

创建新的pull请求。

参数:

  • repo_id -存储库GUID
  • source_branch -完整的参考名称(例如,“参考/头部/特征/我的特征”)
  • target_branch -全名(例如,“refs/heads/main”)
  • title -PR标题
  • description -可选PR描述
  • work_item_ids -要链接的工作项ID的可选列表

退货: 创建了PR详细信息,包括id、url、标题、状态

______________________________________________________________________

set_pr_description(repo_id: str, pr_id: int, description: str) -> Dict

更新现有拉取请求的描述。

LLM说明: 描述应包括结构化格式,包括:

  • 带有要点的摘要部分
  • 带有复选框的测试计划部分
  • 基于差异分析自动检测测试和文档的复选框

______________________________________________________________________

get_pull_request_full_diff(repo_id: str, pr_id: int) -> Dict

获取PR的完整差异和所有评论。

______________________________________________________________________

add_pull_request_comment(repo_id: str, pr_id: int, comment: str, file_path: str = None, line: int = None) -> str

向拉取请求添加注释(顶级或内联)。

______________________________________________________________________

link_pr_to_work_item(repo_id: str, pr_id: int, work_item_id: int, project: str) -> Dict

将拉取请求链接到工作项。

______________________________________________________________________

工作项工具

list_work_item_types(project: str) -> List[Dict]

列出项目中所有可用的工作项类型。

用途: 调用此命令可发现可用的工作项类型(Bug、PBI、Task等)。

______________________________________________________________________

list_area_paths(project: str, depth: int = 3) -> List[Dict]

列出项目中用于组织工作项的所有区域路径。

______________________________________________________________________

list_iteration_paths(project: str, depth: int = 3) -> List[Dict]

列出项目中的所有迭代路径(冲刺)。

______________________________________________________________________

create_product_backlog_item(project: str, title: str, assigned_to: str, ...) -> Dict

创建新的产品待办列表项(PBI)。

所需参数:

  • project -项目名称(使用 list_projects() 第一)
  • title -PBI标题
  • assigned_to -受让人的电子邮件或显示姓名

可选参数:

  • description -HTML描述
  • acceptance_criteria -HTML接受标准
  • area_path -组织区域路径
  • iteration_path -Sprint任务
  • priority -优先级(1-4)
  • tags -分号分隔标签

______________________________________________________________________

create_bug(project: str, title: str, assigned_to: str, description: str, steps_to_reproduce: str, expected_behavior: str, ...) -> Dict

创建新的Bug工作项(使用带有必填字段的自定义“Bug”类型)。

所需参数:

  • project -项目名称
  • title -Bug标题
  • assigned_to -受让人
  • description -Bug描述
  • steps_to_reproduce -重现错误的步骤
  • expected_behavior -预期的应用行为

可选参数:

  • environment -环境(默认值:“Dev”)
  • area_path, iteration_path, priority, tags

______________________________________________________________________

create_work_item(project: str, work_item_type: str, title: str, assigned_to: str, ...) -> Dict

创建任何类型的工作项。最灵活的自定义工作项类型工具。

参数:

  • work_item_type -来自的确切类型名称 list_work_item_types()
  • custom_fields -自定义字段引用名称到值的骰子

自定义字段示例:

create_work_item(
    project="MyProject",
    work_item_type="Bugs",
    title="Fix login error",
    assigned_to="john@company.com",
    custom_fields={
        "Custom.Environment": "Dev",
        "Custom.Stepstoreproduce": "1. Go to login\n2. Click submit",
        "Custom.Expectedappbehavior": "User should be logged in"
    }
)

______________________________________________________________________

资源

policy://review -代码审查政策

官方代码审查标准和PR审查期望。

用途: LLM应在执行自动代码审查之前加载此资源。

扩展服务器

添加新工具

第一步: 在中创建工具模块 src/tools/

# src/tools/my_tools.py
from ..config import mcp, ADO_ORG_URL
from ..client import client

@mcp.tool()
def my_new_tool(param: str) -> dict:
    """Tool description for LLM."""
    # Implementation
    pass

第二步: 注册于 src/tools/__init__.py

from . import my_tools  # noqa: F401

添加新资源

第一步: 在中创建资源模块 src/policies/

# src/policies/my_policy.py
from ..config import mcp

@mcp.resource(uri="policy://my-policy", name="My Policy", description="...")
def get_my_policy() -> str:
    return "Policy content..."

第二步: 注册于 src/policies/__init__.py

建筑

  • 全局MCP实例 (src/config.py)-所有模块共享单个FastMCP实例
  • 自动发现 -模块通过导入进行自我注册 __init__.py
  • 关注点分离 -工具、资源、实用程序和配置完全分开
  • 类型安全 -完整的类型提示,以获得更好的IDE支持和错误检查

贡献

欢迎投稿!添加新功能时,请遵循现有的代码结构和模式。

目录标签

目录标签

Azure DevOps代码管理PythonClaudeAzureDevOps本地部署自动化工具AI集成开发协作

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

16

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosessionremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP