Skip to main content
Glama
Wootz

Azure DevOps On-Prem MCP Server

by Wootz

Servidor MCP para implementación local de Azure DevOps

npm version

Servidor de Model Context Protocol (MCP) para Azure DevOps Server 2022 (implementación local). Permite que los asistentes de IA interactúen con tu Azure DevOps Server local a través de 30 herramientas.

Configuración

Añade lo siguiente al archivo de configuración de tu cliente compatible con MCP:

{
  "mcpServers": {
    "azure-devops-onprem": {
      "command": "npx",
      "args": ["-y", "@wootz/ado-onprem-mcp"],
      "env": {
        "ADO_SERVER_URL": "https://tfs.company.com/DefaultCollection",
        "ADO_PAT_TOKEN": "your-pat-token-here",
        "ADO_PROJECT": "MyProject", // 可選,設定後所有工具預設操作此專案
        "NODE_TLS_REJECT_UNAUTHORIZED": "0" // 使用自簽憑證
      }
    }
  }
}

Descripción de variables de entorno:

  • ADO_SERVER_URL: obligatoria, ruta completa de la colección (por ejemplo: https://tfs.company.com/DefaultCollection)

  • ADO_PAT_TOKEN: obligatoria, token de acceso personal

  • ADO_PROJECT: opcional, nombre de proyecto predeterminado. Cuando se establece, todas las herramientas usan automáticamente este proyecto si no se especifica el parámetro project; si se indica explícitamente el mismo nombre de proyecto, la operación se ejecuta con normalidad; si se indica otro proyecto, se bloquea. Si una consulta WIQL no incluye la condición [System.TeamProject], esta condición se inyecta automáticamente para evitar consultar datos de otros proyectos.

  • NODE_TLS_REJECT_UNAUTHORIZED: obligatoria, establecida en "0" para admitir certificados autofirmados (habitual en entornos de implementación local)

⚠️ Aviso de seguridad: NODE_TLS_REJECT_UNAUTHORIZED=0 omite la verificación de certificados SSL y solo debe usarse en entornos de implementación local en redes internas. No lo utilices en redes públicas.

Generar un token de acceso personal (PAT)

  1. Ve a tu Azure DevOps Server: https://your-server/DefaultCollection

  2. Haz clic en el icono de perfil en la esquina superior derecha → Seguridad → Tokens de acceso personal

  3. Crea un nuevo token y establece los siguientes ámbitos:

    • Código: lectura y escritura (para operaciones de Pull Request y Git)

    • Elementos de trabajo: lectura y escritura (para operaciones con elementos de trabajo)

    • Proyectos y equipos: lectura (para información de proyectos y Sprints)

    • Compilaciones: lectura y ejecución (para operaciones de Build/Pipeline)

Related MCP server: Azure DevOps MCP Server

Requisitos del sistema

  • Node.js >= 20.0.0

  • Azure DevOps Server 2022 (versión de implementación local)

  • Token de acceso personal (PAT) válido

Herramientas disponibles

Core (1 herramienta)

  • mcp_ado_core_list_projects - Lista todos los proyectos

Elementos de trabajo (11 herramientas)

  • mcp_ado_work_items_get - Obtiene información detallada de un elemento de trabajo

  • mcp_ado_work_items_create - Crea un nuevo elemento de trabajo

  • mcp_ado_work_items_update - Actualiza un elemento de trabajo

  • mcp_ado_work_items_delete - Elimina un elemento de trabajo

  • mcp_ado_work_items_query_by_wiql - Consulta elementos de trabajo (WIQL)

  • mcp_ado_work_items_add_comment - Añade un comentario

  • mcp_ado_work_items_get_comments - Obtiene los comentarios

  • mcp_ado_work_items_add_link - Añade un vínculo a un elemento de trabajo

  • mcp_ado_work_items_get_updates - Obtiene el historial de revisiones

  • mcp_ado_work_items_batch_get - Obtiene elementos de trabajo por lotes

  • mcp_ado_work_items_batch_create - Crea elementos de trabajo por lotes (admite jerarquía padre-hijo en el mismo lote)

Repositorios (10 herramientas)

Pull Requests

  • mcp_ado_repos_list_pull_requests - Lista los Pull Requests

  • mcp_ado_repos_get_pull_request - Obtiene información detallada de un PR

  • mcp_ado_repos_create_pull_request - Crea un Pull Request

  • mcp_ado_repos_update_pull_request - Actualiza un Pull Request (estado, título)

  • mcp_ado_repos_get_pr_threads - Obtiene los hilos de revisión de un PR

  • mcp_ado_repos_create_pr_thread - Añade un comentario de revisión en un PR

Git

  • mcp_ado_repos_list_repositories - Lista todos los repositorios del proyecto

  • mcp_ado_repos_list_branches - Lista todas las ramas del repositorio

  • mcp_ado_repos_get_item - Obtiene el contenido de un archivo (admite especificar rama)

  • mcp_ado_repos_get_commits - Obtiene el historial de commits (filtrable por rama / ruta / autor)

Compilaciones (5 herramientas)

  • mcp_ado_builds_list_definitions - Lista las definiciones de compilación (lista de Pipelines)

  • mcp_ado_builds_list - Lista las compilaciones (admite filtros por estado / resultado / rama)

  • mcp_ado_builds_get - Obtiene los detalles de una compilación específica

  • mcp_ado_builds_queue - Activa (pone en cola) una nueva compilación

  • mcp_ado_builds_get_logs - Obtiene la lista de registros de compilación o el contenido de un registro específico

Trabajo / Sprint (3 herramientas)

  • mcp_ado_work_list_iterations - Lista los Sprints / Iteraciones (admite filtros past / current / future)

  • mcp_ado_work_get_iteration_work_items - Obtiene todos los elementos de trabajo de un Sprint específico

  • mcp_ado_work_list_backlogs - Lista los niveles de Backlog (Epics / Features / Stories)

Total: 30 herramientas

Para la definición completa de las herramientas y la descripción de parámetros, consulta el directorio src/tools/ en el código fuente.

Ejemplos de uso

Puedes interactuar con el asistente de IA en lenguaje natural para realizar diversas operaciones de Azure DevOps:

Ver proyectos y elementos de trabajo

  • "Lista todos los proyectos"

  • "Muestra el elemento de trabajo #1234"

  • "Consulta los elementos de trabajo asignados a mí en MyProject"

  • "Lista todos los bugs con estado en curso"

  • "Muestra los elementos de trabajo modificados en los últimos 7 días"

Crear y actualizar elementos de trabajo

  • "Crea un bug en MyProject con el título «Error en la página de inicio de sesión»"

  • "Crea una User Story con el título «Añadir función de cierre de sesión» asignada a john@company.com"

  • "Actualiza el elemento de trabajo #5678 y cambia el estado a completado"

  • "Establece la prioridad del elemento de trabajo #1234 a 1"

  • "Añade un comentario al elemento de trabajo #1234: problema confirmado y reproducido"

  • "Crea una Task con el título «Completar pruebas unitarias» cuyo elemento padre sea #5787"

  • "Crea de una vez una Feature y sus 3 Tasks subordinadas"

Gestionar relaciones entre elementos de trabajo

  • "Vincula el elemento de trabajo #100 al #200 con tipo Related"

  • "Cuelga el elemento de trabajo #6320 debajo del #5787"

  • "Muestra todos los comentarios del elemento de trabajo #1234"

  • "Consulta el historial de modificaciones del elemento de trabajo #5678"

  • "Lista todos los elementos relacionados con el elemento de trabajo #999"

Operaciones de repositorio y Git

  • "Lista todos los repositorios de MyProject"

  • "Lista todas las ramas de MainRepo"

  • "Obtén el contenido del archivo src/app.ts en la rama main"

  • "Muestra los últimos 10 commits de MainRepo"

  • "Lista todos los pull requests activos de MainRepo"

  • "Muestra la información detallada del pull request #123"

  • "Crea un PR de feature/new-api a develop con el título «Añadir endpoint de API»"

  • "Actualiza el PR #789 y cambia el estado a completado"

  • "Obtén todos los hilos de revisión del PR #456"

  • "Añade un comentario de revisión en el PR #123: se recomienda usar async/await"

Operaciones de Build / Pipeline

  • "Lista todas las definiciones de pipeline de MyProject"

  • "Muestra las compilaciones fallidas recientes de MyProject"

  • "Obtén la información detallada de la compilación #456"

  • "Activa la compilación con ID de definición 12 usando la rama main"

  • "Muestra la lista de registros de la compilación #789"

Ejemplos de flujos de trabajo completos

Puedes encadenar varias operaciones para completar flujos de trabajo completos:

Informar y corregir un bug:

  1. "Crea un bug en MyProject con el título «La página de inicio de sesión no carga»"

  2. "Asigna este bug a developer@company.com"

  3. "Añade un comentario: ocurre en el navegador Chrome, en Firefox funciona correctamente"

  4. "Crea un pull request de bugfix/login a main para corregir este problema"

  5. "Añade una descripción en el PR: se corrigió el problema de orden de carga de CSS"

Seguimiento del desarrollo de una función:

  1. "Crea una User Story: implementar la página de perfil de usuario"

  2. "Crea una Task: diseñar la interfaz de perfil, vinculada a la User Story anterior"

  3. "Crea otra Task: implementar la API de perfil, también vinculada a la misma User Story"

  4. "Cuando esté completado, actualiza el estado de todos los elementos de trabajo relacionados a completado"

Consultar el estado del Sprint actual:

  1. "Lista todos los elementos de trabajo del sprint actual de MyProject"

  2. "Muestra las tasks aún sin completar"

  3. "Muestra el ID de iteración del siguiente sprint"

Desarrollo

Compilar el proyecto

pnpm install
pnpm run build

Modo de supervisión

pnpm run watch

Ejecutar pruebas

pnpm test

Ejecutar el linter

pnpm run lint

Arquitectura del proyecto

src/
├── index.ts             # CLI 入口點
├── auth.ts              # PAT 認證
├── server.ts            # MCP 伺服器設定
├── tools.ts             # 工具註冊
├── tools/
│   ├── core.ts          # 專案管理 (1 個工具)
│   ├── work-items.ts    # 工作項目 (11 個工具)
│   ├── repositories.ts  # Git 與 Pull Requests (10 個工具)
│   ├── builds.ts        # Build / Pipeline (5 個工具)
│   └── work.ts          # Sprint / Backlog (3 個工具)
├── utils.ts             # 回應輔助函式
├── logger.ts            # Winston 日誌
└── version.ts           # 版本資訊

Características destacadas

  • Específico para implementación local: diseñado para Azure DevOps Server 2022

  • URL de colección: admite el formato https://{server}/{collection}

  • Autenticación con PAT: solo usa token de acceso personal, sin necesidad de Azure CLI

  • Ligero: dependencias mínimas, arquitectura sencilla

  • Funcionalidad completa: cubre elementos de trabajo, Pull Requests, Git, Build Pipeline y planificación de Sprints

  • Jerarquía y lotes: admite relaciones padre-hijo, puede crear un árbol completo de elementos de trabajo de una sola vez

  • Respuestas concisas: recorta automáticamente los objetos de identidad extensos; se pueden especificar los campos necesarios con fields

Licencia

Licencia MIT

Related MCP Connectors

Related MCP Servers