Azure DevOps MCP服务器
项目简介
本项目是一个基于Model Context Protocol (MCP) 标准实现的服务器,旨在为大型语言模型 (LLM) 客户端提供与Azure DevOps平台集成的能力。通过该服务器,LLM可以安全、可控地访问和操作Azure DevOps中的项目、代码仓库、分支、文件、拉取请求、工作项等资源,实现DevOps流程的智能化。
主要功能点
- 项目管理: 获取Azure DevOps项目列表。
- 代码仓库管理:
- 获取项目下的代码仓库列表。
- 创建新的代码仓库。
- 分支管理:获取分支列表、创建和更新分支。
- 文件内容管理:获取和更新文件内容、推送文件。
- 代码提交管理:获取提交记录。
- 拉取请求管理: 创建新的拉取请求。
- 工作项 (Issue) 管理: 添加工作项评论。
- 代码搜索: 在代码仓库中搜索代码。
- 工作项搜索: 在项目中搜索工作项。
- 用户搜索: 在组织中搜索用户。
- 代码仓库 Fork: Fork 代码仓库。
安装步骤
-
克隆仓库
git clone https://github.com/allanbrunobr/mcp-servers-modified.git cd mcp-servers-modified/azure-devops -
安装依赖 确保已安装 Node.js 和 npm,然后运行:
npm install -
设置环境变量 需要设置以下环境变量才能连接到您的 Azure DevOps 组织:
- 'AZURE_DEVOPS_ORG_URL': 您的 Azure DevOps 组织 URL,例如 'https://dev.azure.com/your-organization-name'。
- 'AZURE_DEVOPS_API_TOKEN': 您的 Azure DevOps Personal Access Token (PAT)。您需要在 Azure DevOps 中生成一个具有相应权限的 PAT。
-
构建项目 (如果仓库中没有 'dist' 目录,则需要构建)
npm run build
服务器配置
MCP客户端需要配置以下信息来启动和连接 Azure DevOps MCP 服务器。
{ "serverName": "azure-devops-server", "command": "node", "args": [ "dist/index.js" ], "env": { "AZURE_DEVOPS_ORG_URL": "<您的 Azure DevOps 组织 URL>", // 请替换为您的 Azure DevOps 组织 URL "AZURE_DEVOPS_API_TOKEN": "<您的 Azure DevOps PAT>" // 请替换为您的 Azure DevOps Personal Access Token } }
配置参数说明:
- 'serverName': 服务器名称,设置为 "azure-devops-server"。
- 'command': 启动服务器的命令,这里使用 'node' 运行 JavaScript 文件。
- 'args': 命令参数,指定服务器入口文件路径 'dist/index.js'。
- 'env': 环境变量,用于配置 Azure DevOps 连接信息。
- 'AZURE_DEVOPS_ORG_URL': 必填。您的 Azure DevOps 组织 URL。
- 'AZURE_DEVOPS_API_TOKEN': 必填。用于身份验证的 Azure DevOps Personal Access Token。请确保该 PAT 具有访问您 Azure DevOps 组织资源的权限。
注意: 请将 '<您的 Azure DevOps 组织 URL>' 和 '<您的 Azure DevOps PAT>' 替换为您的实际 Azure DevOps 组织 URL 和 Personal Access Token。 为了安全起见,建议将环境变量配置在客户端的配置环境中,而不是硬编码在配置文件中。
基本使用方法
- 启动 MCP 服务器 (通过 MCP 客户端配置启动)。
- LLM 客户端可以通过 MCP 协议与服务器通信,发送 JSON-RPC 请求调用工具。
- 使用 'ListToolsRequest' 请求获取服务器支持的工具列表及其描述和参数。
- 使用 'CallToolRequest' 请求调用具体的工具,并传递相应的参数。
- 服务器将执行相应的 Azure DevOps 操作,并将结果以 JSON-RPC 响应返回给客户端。
例如,要获取 Azure DevOps 项目列表,LLM 客户端可以调用 'get_projects' 工具。要获取特定代码仓库的文件内容,可以调用 'get_file_content' 工具,并提供 'project_id', 'repository_id', 'file_path', 'branch' 等参数。 具体工具的使用方法和参数请参考工具的 'description' 和 'inputSchema'。
信息
分类
开发者工具