Azure DevOps MCP服务器

一个基于NestJS构建的模型上下文协议(MCP)服务器,使AI代理能够安全查询Azure DevOps数据,如工作项、项目和票证统计。

  • by saktheeswar
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 saktheeswar/Azure_Devops_MCP_Server

使用说明

🚀 Azure DevOps MCP服务器

习俗 模型上下文协议(MCP) 服务器构建于 NestJS,使AI代理(如Claude Desktop)能够安全地查询 Azure DevOps 工作项、项目和工单统计等数据。


📌 概述

该项目通过基于标准的方式公开Azure DevOps数据 MCP服务器,允许任何兼容MCP的AI代理执行实时查询,例如:

  • 🔍 列出组织中的所有项目
  • 📝 获取已创建/活动/已关闭工作项的计数
  • 🧩 获取门票详细信息
  • 📊 查询积压项目或冲刺
  • 🏗️ 通过AI扩展Azure DevOps自动化

支持 两种模式:

1.️⃣ STDIO MCP服务器

使用MCP检查器进行本地测试(不使用直接的Claude Desktop STDIO客户端)。

2.️⃣ HTTP MCP服务器

允许通过HTTP使用MCP进行远程访问。


🏗️ 建筑

NestJS Application
│
├── MCP Module
│   ├── Tool Definitions
│   ├── STDIO Transport
│   └── HTTP Transport
│
├── Azure DevOps Service
│   └── Work Item API
│   └── Project API
│
└── Utilities
    ├── MCP Message Handlers
    └── Logger

✨ 特性

✔️ Azure DevOps的自定义工具

面向MCP客户端的工具:

工具名称 描述
list_projects 返回所有Azure DevOps项目
count_tickets 返回已创建/活动/已解决工单的摘要
get_workitem 获取单个工作项的详细信息
search_workitems 基于筛选器查询工作项

✔️ STDIO运输(MCP检查员)

此项目使用MCP检查器在本地进行了测试,该检查器充当通过STDIO连接到服务器的MCP客户端。

运行服务器,以便检查器可以通过STDIO连接:

node dist/main.js

以以下方式启动检查器:

npx @modelcontextprotocol/inspector

当检查器中出现提示时,选择STDIO连接并将其指向正在运行的进程(检查器将根据配置生成或附加到进程)。


✔️ HTTP MCP支持

启动服务器:

npm run start:prod

您可以POST MCP风格的请求:

POST http://localhost:3000/mcp

🔧 安装

git clone https://github.com/saktheeswar/Azure_Devops_MCP_Server.git
cd azure-devops-mcp
npm install
npm run build

🔑 环境变量

创建 .env:

BASE_URL=url
AUSER_NAME=your-personal-access-token
ADO_PAT=your-default-project

▶️ 运行服务器

在STDIO模式下运行(适用于MCP检查器)

node dist/main.js

在HTTP模式下运行

npm run start:prod

🧪 MCP检验员测试

(您将在博客中用截图解释这一点。)

npx @modelcontextprotocol/inspector

然后使用STDIO连接:

node dist/main.js

💻 代码走读

📁 MCP服务器设置

const server = new Server({
  name: "azure-devops-mcp",
  version: "1.0.0",
  tools: {
    list_projects: { ... },
    count_tickets: { ... }
  }
});

📁 Azure DevOps API集成

async getProjects() {
  const url = `${this.baseUrl}/projects?api-version=7.0`;
  return this.http.get(url, this.headers);
}

📁 STDIO引导

bootstrapStdio(server);

📁 HTTP控制器

@Post('/mcp')
handleMcp(@Body() body) {
  return this.mcpHttpService.process(body);
}

📚 MCP工具调用示例

{
  "method": "tools/list_projects",
  "params": {}
}

答复:

{
  "projects": [
    { "name": "Frontend" },
    { "name": "Backend" },
    { "name": "Infrastructure" }
  ]
}

🧩 用例

对于开发者

  • 无需打开UI即可查询Azure DevOps
  • 立即获取门票摘要
  • 自动化重复的DevOps活动

AI助理

  • 智能冲刺计划
  • 票优先级
  • 自动状态报告

对于团队

  • 更快的决策
  • 人工智能驱动的洞察力

🔥 未来的增强功能

  • 使用AI创建/更新工作项
  • 与发布管道集成
  • Sprint烧毁见解
  • PR和存储库分析

📎 截图(添加您自己的)

  • 克劳德桌面工作
  • MCP检查器已连接
  • 工具响应日志

🧑‍💻 作者

Saktheeswaran M 人工智能工程师和全栈开发人员

🔗 源代码

👉 GitHub存储库: (https://github.com/saktheeswar/Azure_Devops_MCP_Server)