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的多种身份验证方法。有关详细的设置说明、配置示例和故障排除提示,请参阅 身份验证指南.
支持的身份验证方法
- 个人访问令牌(PAT) -简单的基于令牌的身份验证
- Azure标识(默认Azure凭据) -使用Azure Identity SDK的灵活身份验证
- 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_URL | Azure DevOps组织或服务器集合的完整URL(例如。, https://server:8080/tfs/DefaultCollection) | 是 | - |
AZURE_DEVOPS_PAT | 个人访问令牌(用于PAT认证) | 仅适用于PAT认证 | - |
AZURE_DEVOPS_DEFAULT_PROJECT | 默认项目(如果未指定) | 否 | - |
AZURE_DEVOPS_API_VERSION | 要使用的API版本 | 否 | 最新 |
AZURE_TENANT_ID | Azure AD租户ID(用于服务主体) | 仅适用于服务主体 | - |
AZURE_CLIENT_ID | Azure AD应用程序ID(用于服务主体) | 仅适用于服务主体 | - |
AZURE_CLIENT_SECRET | Azure 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:列出项目中的所有Wikiget_wiki_page:以纯文本形式获取特定wiki页面的内容
拉取请求工具
create_pull_request-创建新的pull请求get_pull_request-按ID获取拉取请求list_pull_requests-在存储库中列出拉取请求add_pull_request_comment-在pull请求中添加注释get_pull_request_comments-从pull请求中获取评论update_pull_request-更新现有的拉取请求(标题、描述、状态、草稿状态、审阅者、工作项)get_pull_request_changes-列出拉取请求和策略评估状态中的更改get_pull_request_checks-总结状态检查、政策评估及其相关流程
有关所有工具的全面文档,请参阅 工具文档.
贡献
欢迎投稿!请参阅 贡献.md 关于贡献指南。
明星历史
许可证
麻省理工学院