项目简介
MCP Azure DevOps 集成服务器是一个基于Model Context Protocol (MCP) 构建的后端服务,旨在将Azure DevOps的功能无缝集成到LLM(大型语言模型)应用中。它通过标准化的JSON-RPC协议,让LLM客户端能够直接访问Azure DevOps的各项REST API,包括项目管理、工作项操作、团队协作和流程定义等。该服务器支持多种传输协议,并提供一套丰富的工具集,极大地简化了LLM与Azure DevOps的交互。
主要功能点
- 完整的MCP协议支持:遵循MCP规范,通过JSON-RPC 2.0协议进行通信,支持Stdio、HTTP和WebSocket(即将推出)等多种传输模式。
- 深度集成Azure DevOps:提供超过80种工具,覆盖Azure DevOps Core APIs(项目、团队、进程)、Work Items(创建、更新、查询、附件)、Work Management(看板、Backlog)等核心功能。
- 灵活的部署选项:可容器化部署为Docker镜像,支持Kubernetes和Docker Compose,也方便本地开发运行。
- 上下文感知:作为MCP服务器,能够为LLM客户端提供结构化的上下文信息,例如列出可用的项目和团队,并通过工具调用执行复杂操作。
- 可扩展的工具体系:采用Spring Boot实现,易于扩展和添加新的Azure DevOps API操作作为MCP工具。
安装步骤
有多种方式运行此MCP服务器,推荐使用Docker。
-
使用Docker (推荐)
- 构建Docker镜像:
在仓库根目录运行以下命令:
docker build -t mcp-azure-devops . - 创建环境变量文件 '.env':
在该文件中配置连接Azure DevOps所需的凭据。
AZURE_DEVOPS_ORGANIZATION=你的AzureDevOps组织名称 AZURE_DEVOPS_PAT=你的AzureDevOps个人访问令牌 - 运行Docker容器:
选择一种传输模式。
- STDIO模式 (适用于本地MCP客户端):
docker run -i --env-file .env mcp-azure-devops stdio - HTTP模式 (适用于远程访问,在端口8080上):
docker run -p 8080:8080 --env-file .env mcp-azure-devops http
- STDIO模式 (适用于本地MCP客户端):
- 构建Docker镜像:
在仓库根目录运行以下命令:
-
本地开发运行
- 安装Java 21+。
- 配置环境变量:
export AZURE_DEVOPS_ORGANIZATION=你的AzureDevOps组织名称 export AZURE_DEVOPS_PAT=你的AzureDevOps个人访问令牌 - 使用Gradle运行:
./gradlew bootRun
服务器配置
MCP服务器通过JSON-RPC协议与MCP客户端通信。MCP客户端需要配置连接到该服务器的命令及其参数。以下是常用的配置示例,以JSON格式展示,用于说明MCP客户端如何启动和连接此服务器:
-
通过Docker以STDIO模式连接 (由MCP客户端启动服务器):
{ "servers": { "azure-devops-mcp": { "command": "docker", "args": [ "run", "--rm", "-i", "--env", "AZURE_DEVOPS_ORGANIZATION=你的AzureDevOps组织名称", "--env", "AZURE_DEVOPS_PAT=你的AzureDevOps个人访问令牌", "mcp-azure-devops", "stdio" ] } } }- 'azure-devops-mcp': 服务器名称,可自定义。
- 'command': 用于启动服务器的可执行文件,此处为 'docker'。
- 'args': 启动命令的参数列表。
- '-i': 保持STDIN打开,用于STDIO通信。
- '--env': 设置环境变量,'AZURE_DEVOPS_ORGANIZATION' 和 'AZURE_DEVOPS_PAT' 必须提供您的Azure DevOps组织名称和个人访问令牌。
- 'mcp-azure-devops': 之前构建的Docker镜像名称。
- 'stdio': 指定服务器以STDIO模式运行。
-
通过HTTP模式连接 (MCP客户端连接已运行的远程服务器):
{ "servers": { "azure-devops-remote": { "command": "socat", "args": [ "-", "TCP:远程服务器IP:8080" ] } } }- 'azure-devops-remote': 服务器名称。
- 'command': 用于建立TCP连接的工具,此处为 'socat'。
- 'args': 'socat' 命令的参数。
- '-': 标准输入输出。
- 'TCP:远程服务器IP:8080': 指向已在HTTP模式下运行的MCP服务器的IP地址和端口(默认为8080)。
基本使用方法
一旦MCP客户端(例如VS Code插件、Claude Desktop等)配置并连接到此服务器,它就可以通过JSON-RPC调用服务器提供的工具来与Azure DevOps交互。
例如,通过MCP客户端调用 'azuredevops_core_get_projects' 工具来列出项目:
-
JSON-RPC请求示例 (由MCP客户端发送):
{ "jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": { "name": "azuredevops_core_get_projects", "arguments": {} } } -
JSON-RPC请求示例 (由MCP客户端发送,用于创建工作项):
{ "jsonrpc": "2.0", "method": "tools/call", "id": 2, "params": { "name": "azuredevops_wit_work_item_create", "arguments": { "project": "您的项目名称", "type": "User Story", "title": "新功能开发", "description": "实现用户身份验证功能" } } }
服务器将处理这些请求并返回相应的JSON-RPC响应。
信息
分类
开发者工具