Azure DevOps MCP 服务器

Azure DevOps MCP服务器是一个实现了模型上下文协议(MCP)的服务,允许AI助手通过标准化协议与Azure DevOps API进行交互,提供项目、工作项、仓库等的访问和管理功能。

作者 By Tiberriver256
本地部署 AzureDevOps AI集成
GitHub

Azure DevOps MCP服务器

Azure DevOps的模型上下文协议(MCP)服务器实现,允许AI助手通过标准化协议与Azure DevOps API进行交互。

概述

此服务器实现 模型上下文协议(MCP) 对于Azure DevOps,使像Claude这样的AI助手能够安全地与Azure DevOps资源进行交互。该服务器充当AI模型和Azure DevOps API之间的桥梁,提供了一种标准化的方式来:

  • 访问和管理项目、工作项、存储库等
  • 创建和更新工作项、分支和拉取请求
  • 通过自然语言执行常见的DevOps工作流
  • 通过标准化的资源URI访问存储库内容
  • 安全地验证Azure DevOps资源并与之交互

服务器结构

服务器围绕模型上下文协议(MCP)构建,用于与AI助手通信。它提供了与Azure DevOps资源交互的工具,包括:

  • 项目
  • 工作项
  • 仓库
  • 拉取请求
  • 分支
  • 管道

核心组件

  • AzureDevOpsServer:初始化MCP服务器和注册工具的主服务器类
  • 功能模块:按功能区域(工作项、项目、存储库等)组织
  • 请求处理程序:每个功能模块都提供请求识别和处理功能
  • 工具操作员:每个Azure DevOps操作的模块化功能
  • 配置:基于环境的组织URL、PAT等配置。

服务器使用基于功能的架构,其中每个功能区域(如工作项、项目、存储库)都封装在自己的模块中。这使得代码库更易于维护,更容易用新功能进行扩展。

入门指南

先决条件

  • Node.js(v16+)

  • npm或纱线

  • 具有适当访问权限的Azure DevOps帐户

  • 身份验证凭据(请参阅 身份验证指南 详细信息):

  • 个人访问令牌(PAT),或

  • Azure身份凭据,或

  • Azure CLI登录

从npm(npx)运行

如果你只是想跑 发表 服务器包,你 不要 需要克隆或构建此存储库:

BASH``` 1npx -y @tiberriver256/mcp-server-azure-devops


### 在本地运行(从源代码)


从该存储库的签出中:


BASH```
1
2
3
4npm ci
cp .env.example .env   # then edit values
npm run build
npm start              # runs: node dist/index.js

对于迭代开发(自动重新加载):

BASH``` 1npm run dev # runs src/index.ts via ts-node-dev


### 使用Claude Desktop/Cursor AI


要与Claude Desktop或Cursor AI集成,请将以下配置之一添加到配置文件中。


#### Azure身份验证


请确保您已使用登录到Azure CLI `az login` 然后添加以下内容:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13{
  "mcpServers": {
    "azureDevOps": {
      "command": "npx",
      "args": ["-y", "@tiberriver256/mcp-server-azure-devops"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
        "AZURE_DEVOPS_AUTH_METHOD": "azure-identity",
        "AZURE_DEVOPS_DEFAULT_PROJECT": "your-project-name"
      }
    }
  }
}

个人访问令牌(PAT)身份验证

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14{ “mcpServers”: { “azureDevOps”: { “command”: “npx”, “args”: [“-y”, “@tiberriver256/mcp-server-azure-devops”], “env”: { “AZURE_DEVOPS_ORG_URL”: “https://dev.azure.com/your-organization”, “AZURE_DEVOPS_AUTH_METHOD”: “pat”, “AZURE_DEVOPS_PAT”: “<YOUR_PAT>”, “AZURE_DEVOPS_DEFAULT_PROJECT”: “your-project-name” } } } }


Azure DevOps服务器(本地)需要PAT身份验证。例子:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14{
  "mcpServers": {
    "azureDevOps": {
      "command": "npx",
      "args": ["-y", "@tiberriver256/mcp-server-azure-devops"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://server:8080/tfs/DefaultCollection",
        "AZURE_DEVOPS_AUTH_METHOD": "pat",
        "AZURE_DEVOPS_PAT": "<YOUR_PAT>",
        "AZURE_DEVOPS_DEFAULT_PROJECT": "your-project-name"
      }
    }
  }
}

有关详细的配置说明和更多身份验证选项,请参阅 身份验证指南.

身份验证方法

此服务器支持连接到Azure DevOps API的多种身份验证方法。有关详细的设置说明、配置示例和故障排除提示,请参阅 身份验证指南.

支持的身份验证方法

  1. 个人访问令牌(PAT) -简单的基于令牌的身份验证
  2. Azure标识(默认Azure凭据) -使用Azure Identity SDK的灵活身份验证
  3. Azure命令行界面 -使用Azure CLI登录进行身份验证

每种身份验证方法的示例配置文件可在 示例目录.

Azure DevOps服务器(本地)仅支持PAT身份验证。Azure DevOps服务支持Azure身份和Azure CLI。

环境变量

有关环境变量及其描述的完整列表,请参阅 身份验证指南.

关键环境变量包括:

变量描述必填默认
AZURE_DEVOPS_AUTH_METHOD身份验证方法(pat, azure-identity,或 azure-cli)-不区分大小写azure-identity
AZURE_DEVOPS_ORG_URLAzure DevOps组织或服务器集合的完整URL(例如。, https://server:8080/tfs/DefaultCollection)-
AZURE_DEVOPS_PAT个人访问令牌(用于PAT认证)仅适用于PAT认证-
AZURE_DEVOPS_DEFAULT_PROJECT默认项目(如果未指定)-
AZURE_DEVOPS_API_VERSION要使用的API版本最新
AZURE_TENANT_IDAzure AD租户ID(用于服务主体)仅适用于服务主体-
AZURE_CLIENT_IDAzure AD应用程序ID(用于服务主体)仅适用于服务主体-
AZURE_CLIENT_SECRETAzure AD客户端机密(用于服务主体)仅适用于服务主体-
LOG_LEVEL日志记录级别(调试、信息、警告、错误)信息

身份验证故障排除

有关每种身份验证方法的详细故障排除信息,请参阅 身份验证指南.

常见问题包括:

  • 无效或过期的凭据
  • 权限不足
  • 网络连接问题
  • 配置错误

身份验证实施详细信息

有关如何在Azure DevOps MCP服务器中实现身份验证的技术详细信息,请参阅 身份验证指南 源代码在 src/auth 目录。

可用工具

Azure DevOps MCP服务器提供了各种与Azure DevOps资源交互的工具。有关每个工具的详细文档,请参阅相应的文档。

用户工具

  • get_me:获取经过身份验证的用户的详细信息(id、displayName、电子邮件)(仅限Azure DevOps服务)

组织工具

  • list_organizations:列出所有可访问的组织(仅限Azure DevOps服务)

项目工具

  • list_projects:列出组织中的所有项目
  • get_project:获取特定项目的详细信息
  • get_project_details:获取项目的全面详细信息,包括流程、工作项类型和团队

存储库工具

  • list_repositories:列出项目中的所有存储库
  • get_repository:获取特定存储库的详细信息
  • get_repository_details:获取有关存储库的详细信息,包括统计数据和参考文献
  • get_file_content:从存储库获取文件或目录的内容
  • get_repository_tree:从任意路径和深度列出存储库的文件树
  • create_branch:从现有分支创建新分支
  • create_commit:使用统一的差异或搜索/替换指令将多个文件更改提交到一个分支

工作项工具

  • get_work_item:按ID检索工作项
  • create_work_item:创建新工作项
  • update_work_item:更新现有工作项
  • list_work_items:列出项目中的工作项
  • manage_work_item_link:添加、删除或更新工作项之间的链接

搜索工具

  • search_code:在项目中跨存储库搜索代码
  • search_wiki:在项目中跨wiki页面搜索内容
  • search_work_items:在Azure DevOps中跨项目搜索工作项

管道工具

  • list_pipelines:列出项目中的管道
  • get_pipeline:获取特定管道的详细信息
  • list_pipeline_runs:列出具有可选筛选器的管道的最近运行记录
  • get_pipeline_run:获取详细的运行信息和工件摘要
  • download_pipeline_artifact:以文本形式下载单个工件文件
  • pipeline_timeline:检索运行的阶段和作业时间线
  • get_pipeline_log:检索原始或JSON格式的日志内容
  • trigger_pipeline:使用可自定义参数触发管道运行

Wiki工具

  • get_wikis:列出项目中的所有Wiki
  • get_wiki_page:以纯文本形式获取特定wiki页面的内容

拉取请求工具

有关所有工具的全面文档,请参阅 工具文档.

贡献

欢迎投稿!请参阅 贡献.md 关于贡献指南。

明星历史

许可证

麻省理工学院