使用说明
项目简介
Azure DevOps MCP服务器是一个应用后端,它实现了 Model Context Protocol (MCP),旨在为AI助手提供与Azure DevOps服务交互的工具。通过此服务器,AI助手可以安全、可扩展地访问Azure DevOps中的项目、代码仓库、工作项、拉取请求和流水线等资源,从而实现更智能的DevOps流程自动化和信息获取。
主要功能点
- 实体工具: 围绕Azure DevOps的核心实体(如项目、代码仓库、工作项、拉取请求、流水线)组织操作,提供直观且一致的接口。例如,项目工具提供列出和获取项目详情的操作;代码仓库工具提供列出仓库、获取仓库详情以及列出分支等操作。
- 分页支持: 所有列表操作均支持基于游标的分页,允许AI助手高效地浏览大量Azure DevOps资源,并可自定义每页结果数量。
- 详细错误处理: 提供全面的错误处理机制,能够分类错误(如认证、授权、验证等),提供上下文信息和用户友好的错误消息,方便问题排查。
- 配置灵活: 支持通过环境变量或配置文件进行配置,方便用户根据自身Azure DevOps环境进行部署。
- 操作丰富: 针对每个实体提供多种操作,例如:
- 项目: 列出项目、获取项目详情
- 代码仓库: 列出代码仓库、获取仓库详情、列出分支
- 工作项: 获取工作项详情、创建工作项
- 拉取请求: 列出拉取请求、获取拉取请求详情
- 流水线: 列出流水线、获取流水线详情
安装步骤
- 克隆仓库
git clone https://github.com/aaronsb/ado-mcp.git cd ado-mcp - 安装依赖
npm install - 构建项目
npm run build
服务器配置
MCP客户端需要配置以下JSON信息以连接到Azure DevOps MCP服务器:
{ "serverName": "azure-devops-mcp", "command": "node", "args": [ "build/index.js" ], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,例如 "azure-devops-mcp"。
- 'command': 启动服务器的命令,这里使用 'node'。
- 'args': 启动命令的参数,指向构建后的服务器入口文件 'build/index.js'。
- 'transport': 传输协议,这里使用 'stdio' (标准输入输出)。
环境变量配置 (服务器端):
在运行服务器之前,您需要设置以下环境变量,或者在 'config/azuredevops.json' 文件中进行配置。以下是环境变量配置方式,更为推荐,因为更安全且易于管理敏感信息 (PAT)。
- 'ADO_ORGANIZATION': 您的Azure DevOps组织名称 (必填)。
- 'ADO_PAT': 用于身份验证的Azure DevOps个人访问令牌 (PAT) (必填)。
- 'ADO_PROJECT': 默认Azure DevOps项目名称 (可选)。
- 'ADO_API_URL': Azure DevOps API的基础URL (可选,默认为 'https://dev.azure.com')。
- 'ADO_API_VERSION': Azure DevOps API版本 (可选,默认为 '7.0')。
- 'ADO_API_MAX_RETRIES': API调用最大重试次数 (可选,默认为 '3')。
- 'ADO_API_DELAY_MS': 重试之间的延迟毫秒数 (可选,默认为 '1000')。
- 'ADO_API_BACKOFF_FACTOR': 重试退避因子 (可选,默认为 '2')。
配置示例 (环境变量):
在终端中设置环境变量,例如 (Linux/macOS):
export ADO_ORGANIZATION="your-devops-org" export ADO_PAT="your-personal-access-token" node build/index.js
或者 (Windows PowerShell):
$env:ADO_ORGANIZATION="your-devops-org" $env:ADO_PAT="your-personal-access-token" node build/index.js
基本使用方法
-
启动服务器 按照上述服务器配置和环境变量设置,运行 'node build/index.js' 命令启动服务器。
-
配置MCP客户端 在您的MCP客户端中,配置上述提供的服务器配置JSON。
-
调用工具 通过MCP客户端,您可以发送JSON-RPC请求来调用服务器提供的工具和操作。以下是一些使用示例,您可以根据需要调整参数:
列出项目:
{ "operation": "list", "listParams": { "maxResults": 10 } }获取项目详情:
{ "operation": "get", "getParams": { "projectId": "your-project-name", "includeCapabilities": true } }创建工作项:
{ "operation": "create", "createParams": { "projectId": "your-project-name", "type": "Task", "title": "Implement new feature", "description": "详细描述新功能...", "assignedTo": "[email protected]" } }更多工具和操作的使用方法,请参考仓库 'README.md' 文件中的 "Usage Examples" 部分。
注意: 请确保您的Azure DevOps个人访问令牌 (PAT) 具有访问您组织和项目的必要权限。
信息
分类
开发者工具