工作项管理服务器

一个集成Azure DevOps与VS Code/GitHub Copilot的模型上下文协议(MCP)服务器,支持从AI助手直接获取和更新工作项详情。

  • by Akshay-Quorum2145
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Akshay-Quorum2145/ADO-MCP

使用说明

Azure DevOps MCP服务器

一个模型上下文协议(MCP)服务器,将Azure DevOps与VS Code/GitHub Copilot和其他MCP兼容客户端集成在一起。此服务器允许您直接从AI助手获取工作项详细信息并更新工作项状态。

特性

  • 获取工作项详细信息:获取有关任何工作项的全面信息,包括:

    • 标题、类型、状态和分配的用户
    • 描述和复制步骤(针对错误)
    • 所有带有作者和时间戳的评论
    • 元数据(创建日期、上次修改时间、区域路径、迭代、标签)
  • 更新工作项状态:更改工作项的状态/状态(例如,从“新建”到“活动”,从“已解决”到“已关闭”)

先决条件

  • Python 3.10或更高版本
  • 具有项目访问权限的Azure DevOps帐户
  • 具有工作项读写权限的个人访问令牌(PAT)

安装

选项1:从GitHub安装(对用户来说最容易)

pip install git+https://github.com/Akshay-Quorum2145/ADO-MCP.git

MCP配置(无venv):

{
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "ado_mcp.server"],
      "env": {
        "ADO_ORGANIZATION": "your-org",
        "ADO_PROJECT": "your-project",
        "ADO_PAT": "your-pat"
      }
    }
  }
}

MCP配置(带venv):

{
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "C:\\path\\to\\venv\\Scripts\\python.exe",
      "args": ["-m", "ado_mcp.server"],
      "env": {
        "ADO_ORGANIZATION": "your-org",
        "ADO_PROJECT": "your-project",
        "ADO_PAT": "your-pat"
      }
    }
  }
}

选项2:克隆用于开发

  1. 克隆或下载此存储库

  2. 安装该软件包:

    pip install -e .
    

    或者用于具有可选依赖关系的开发:

    pip install -e ".[dev]"
    

配置

步骤1:创建个人访问令牌(PAT)

  1. 转到您的Azure DevOps组织: https://dev.azure.com/[your-organization]
  2. 点击您的个人资料图标(右上角)→ 个人访问令牌
  3. 点击 +新令牌
  4. 配置令牌:
    • 名字:给它一个描述性的名称(例如“MCP服务器访问”)
    • 组织:选择您的组织
    • 过期:设置适当的到期日期
    • 范围:选择 自定义 并检查:
      • 工作项目: 读、写
  5. 点击 创建
  6. 重要:立即复制令牌(您将无法再次看到它)

步骤2:配置VS代码/GitHub副本

在工作区或全局设置中创建MCP配置文件:

创建 .vscode/mcp.json 或您的MCP配置位置:

没有venv:

{
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "ado_mcp.server"],
      "env": {
        "ADO_ORGANIZATION": "your-organization-name",
        "ADO_PROJECT": "your-project-name",
        "ADO_PAT": "your-personal-access-token"
      }
    }
  }
}

使用venv(使用完整的Python路径):

{
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "C:\\path\\to\\venv\\Scripts\\python.exe",
      "args": ["-m", "ado_mcp.server"],
      "env": {
        "ADO_ORGANIZATION": "your-organization-name",
        "ADO_PROJECT": "your-project-name",
        "ADO_PAT": "your-personal-access-token"
      }
    }
  }
}

重新启动VS代码。

用法

配置后,您可以通过GitHub Copilot Chat或任何兼容MCP的客户端与Azure DevOps进行交互:

获取工作项详细信息

Get details for work item 12345

或

Show me information about ADO work item 12345

更新工作项状态

Change work item 12345 status to Active

或

Update the state of work item 12345 to Resolved

可用工具

get_work_item

检索有关工作项的详细信息。

参数:

  • work_item_id (整数,必填):工作项的ID

退货:

  • 完整的工作项详细信息,包括描述、注释、状态和元数据

update_work_item_status

更新工作项的状态。

参数:

  • work_item_id (整数,必填):工作项的ID
  • new_state (字符串,必填):新状态(例如,“活动”、“已解决”、“关闭”)

退货:

  • 使用更新的工作项详细信息进行确认

备注:可用状态取决于您的工作项类型和过程模板(敏捷、Scrum、CMMI等)。常见状态包括:

  • 新建、活动、已解决、已关闭、已删除(针对Bug)
  • 新建、活动、关闭、删除(用于任务)
  • 新建、活动、已解决、已关闭、已删除(适用于用户故事)

故障排除

身份验证问题

  • 错误:“缺少必需的环境变量”

    • 确保您的 .env 文件存在并包含所有三个必需变量
    • 检查MCP设置是否正确引用了环境变量或 .env 文件位置
  • 错误:“初始化Azure DevOps客户端失败”

    • 验证您的PAT是否有效且未过期
    • 确保您的PAT具有工作项读写权限
    • 检查您的组织和项目名称是否正确

工作项问题

  • 错误:“获取工作项失败”

    • 验证项目中是否存在工作项ID
    • 确保您有权查看该工作项
    • 检查您是否连接到正确的项目
  • 错误:“更新工作项状态失败”

    • 验证新状态对于工作项类型是否有效
    • 确保允许状态转换(某些转换可能受到工作流规则的限制)
    • 检查您是否有权编辑该工作项

发展

要贡献或修改服务器,请执行以下操作:

  1. 安装开发依赖项:

    pip install -e ".[dev]"
    
  2. 运行测试(如果可用):

    pytest
    
  3. 格式代码:

    black src/
    

安全说明

  • 永远不要承诺你的 .env 归档或公开您的PAT
  • 这 .gitignore 文件已配置为排除 .env 文件
  • 考虑使用短期PAT并定期轮换
  • 使用PAT(工作项的读写)所需的最小范围

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。