ℹ️ 讨论区:微软发布了官方 ADO MCP 服务器!🎉🎉🎉
Azure DevOps MCP 服务器
一个用于 Azure DevOps 的模型上下文协议(MCP)服务器实现,允许 AI 助手通过标准协议与 Azure DevOps API 进行交互。
概述
该服务器实现了用于 Azure DevOps 的模型上下文协议(MCP),使 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 或 yarn
- 具有适当访问权限的 Azure DevOps 账户
- 身份验证凭据(详情请参阅身份验证指南):
- 个人访问令牌(PAT),或
- Azure 身份验证凭据,或
- Azure CLI 登录
使用 NPX 运行
使用 Claude Desktop/Cursor AI
要集成 Claude Desktop 或 Cursor AI,请将以下配置之一添加到您的配置文件中。
Azure 身份验证
确保您已使用 az login 登录 Azure CLI,然后添加以下内容:
{
"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)身份验证
{
"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 API。有关详细的设置说明、配置示例和故障排除提示,请参阅身份验证指南。
支持的身份验证方法
- 个人访问令牌(PAT) - 简单的基于令牌的身份验证
- Azure 身份验证(DefaultAzureCredential) - 使用 Azure 身份验证 SDK 的灵活身份验证
- Azure CLI - 使用您的 Azure CLI 登录进行身份验证
每种身份验证方法的示例配置文件都可在示例目录中找到。
环境变量
有关环境变量的完整列表及其描述,请参阅身份验证指南。
关键环境变量包括:
| 变量 | 描述 | 是否必需 | 默认值 |
|---|---|---|---|
AZURE_DEVOPS_AUTH_METHOD | 身份验证方法 (pat, azure-identity, 或 azure-cli) - 不区分大小写 | 否 | azure-identity |
AZURE_DEVOPS_ORG_URL | 您的 Azure DevOps 组织的完整 URL | 是 | - |
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 | 日志级别(debug, info, warn, error) | 否 | info |
身份验证故障排除
有关每种身份验证方法的详细故障排除信息,请参阅身份验证指南。
常见问题包括:
- 无效或过期的凭据
- 权限不足
- 网络连接问题
- 配置错误
身份验证实现细节
有关 Azure DevOps MCP 服务器中身份验证的技术细节,请参阅身份验证指南和 src/auth 目录中的源代码。
可用工具
Azure DevOps MCP 服务器提供多种工具,用于与 Azure DevOps 资源进行交互。有关每个工具的详细文档,请参阅相应的文档。
用户工具
get_me:获取已认证用户的详细信息(id、displayName、email)
组织工具
list_organizations:列出所有可访问的组织
项目工具
list_projects:列出组织中的所有项目get_project:获取特定项目的详细信息get_project_details:获取项目的综合详细信息,包括流程、工作项类型和团队
存储库工具
list_repositories:列出项目中的所有存储库get_repository:获取特定存储库的详细信息get_repository_details:获取存储库的详细信息,包括统计信息和 refsget_file_content:从存储库获取文件或目录的内容
工作项工具
get_work_item:通过 ID 检索工作项create_work_item:创建新工作项update_work_item:更新现有工作项list_work_items:列出项目中的工作项manage_work_item_link:在工作项之间添加、删除或更新链接
搜索工具
search_code:在项目中的存储库中搜索代码search_wiki:在项目中的维基页面中搜索内容search_work_items:在 Azure DevOps 中的项目搜索工作项
管道工具
list_pipelines:列出项目中的管道get_pipeline:获取特定管道的详细信息trigger_pipeline:使用可自定义的参数触发管道运行
维基工具
get_wikis:列出项目中的所有维基get_wiki_page:获取特定维基页面的纯文本内容
拉取请求工具
create_pull_request- 创建新的拉取请求list_pull_requests- 列出存储库中的拉取请求add_pull_request_comment- 向拉取请求添加评论get_pull_request_comments- 获取拉取请求的评论update_pull_request- 更新现有拉取请求(标题、描述、状态、草稿状态、审阅者、工作项)
有关所有工具的全面文档,请参阅工具文档。
贡献
欢迎贡献!请参阅CONTRIBUTING.md以获取贡献指南。
Star History
许可证
MIT