mcp-azure-selfhosted

El MCP de Azure DevOps que realmente admite entornos autohospedados y en la nube

Documentación

Servidor MCP Azure DevOps Autoalojado

Servidor MCP para instancias de Azure DevOps autoalojadas (y en la nube) con autenticación mediante Token de Acceso Personal. Proporciona 39 herramientas que cubren el Seguimiento de Elementos de Trabajo de Azure DevOps, Git, Planes de Prueba, planes de entrega, archivos adjuntos y flujos de trabajo de productividad.

Características

  • CRUD de Elementos de Trabajo — Crear, leer, actualizar, eliminar errores, historias de usuario, tareas, características, épicas y cualquier tipo personalizado
  • Gestión de Estados — Cambiar estados de elementos de trabajo (Nuevo → Activo → Resuelto → Cerrado)
  • Asignación — Asignar/reasignar elementos de trabajo a miembros del equipo
  • Consultas WIQL — Ejecutar consultas del Lenguaje de Consulta de Elementos de Trabajo para búsqueda/filtrado avanzado
  • Comentarios — Añadir y recuperar comentarios en elementos de trabajo
  • Relaciones — Vincular elementos de trabajo (padre-hijo, relacionados, duplicados, etc.)
  • Información de Proyecto y Equipo — Listar proyectos, equipos, miembros del equipo
  • Descubrimiento de Metadatos — Tipos de elementos de trabajo, campos, rutas de área, rutas de iteración/sprint
  • Historial y Auditoría — Historial completo de cambios y capturas de revisión
  • Notas de Versión — Generar automáticamente notas de versión formateadas a partir de sprints/iteraciones
  • Git y Repositorios — Leer contenidos de archivos y buscar código en repositorios
  • Planes de Prueba — Listar planes/conjuntos, crear casos de prueba, registrar resultados y registrar errores desde fallos
  • Planes de Entrega — Inspeccionar hojas de ruta y cronogramas entre equipos
  • Archivos Adjuntos — Adjuntar y recuperar maquetas, capturas de pantalla y documentos
  • Productividad — Crear elementos de trabajo en lote, descomponer un PRD en una jerarquía Característica→Historias→Tareas, detectar errores duplicados y listar "mi trabajo"

Inicio Rápido

Usuarios Finales (npx, sin necesidad de clonar)

Use el paquete npm publicado directamente en su configuración MCP:

{
  "servers": {
    "azure-devops": {
      "command": "npx",
      "args": ["-y", "mcp-azure-selfhosted"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-pat-here",
        "AZURE_DEVOPS_PROJECT": "MyProject"
      }
    }
  }
}

Puede fijar una versión para instalaciones deterministas cambiando los argumentos a:

["-y", "mcp-azure-selfhosted@1.0.0"]

Desarrollo Local (clonar y compilar)

# 1. Install dependencies
cd mcp-azure-selfhosted
npm install

# 2. Build
npm run build

# 3. Configure environment
cp .env.example .env
# Edit .env with your Azure DevOps URL and PAT

# 4. Run
node build/index.js

Configuración

Variables de Entorno

VariableRequeridaDescripción
AZURE_DEVOPS_ORG_URLURL de su organización de Azure DevOps
AZURE_DEVOPS_PATToken de Acceso Personal
AZURE_DEVOPS_PROJECTNoNombre de proyecto predeterminado (se puede anular por llamada de herramienta)
AZURE_DEVOPS_API_VERSIONNoVersión de API (predeterminada: 7.1)
NODE_TLS_REJECT_UNAUTHORIZEDNoEstablecer en 0 para instancias autoalojadas con certificados SSL autofirmados o caducados

Formatos de URL

Nube (Azure DevOps Services):

https://dev.azure.com/{organization}

Autoalojado (Azure DevOps Server / TFS):

https://{server}:{port}/tfs/{collection}

Creación de un PAT

  1. Vaya a Azure DevOps → Configuración de Usuario → Tokens de Acceso Personal
  2. Haga clic en Nuevo Token
  3. Establezca los siguientes ámbitos:
    • Elementos de Trabajo: Lectura y Escritura
    • Proyecto y Equipo: Lectura
  4. Copie el token y establézcalo como AZURE_DEVOPS_PAT

Integración MCP

VS Code (Copilot / Cline)

Añada a su .vscode/mcp.json o configuración de VS Code:

{
  "servers": {
    "azure-devops": {
      "command": "npx",
      "args": ["-y", "mcp-azure-selfhosted"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-pat-here",
        "AZURE_DEVOPS_PROJECT": "MyProject",
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  }
}

Claude Desktop

Añada a ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "azure-devops": {
      "command": "npx",
      "args": ["-y", "mcp-azure-selfhosted"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-pat-here",
        "AZURE_DEVOPS_PROJECT": "MyProject",
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  }
}

Nota: Establezca NODE_TLS_REJECT_UNAUTHORIZED a "0" solo para instancias autoalojadas con certificados SSL autofirmados o caducados. Elimínelo al conectarse a Azure DevOps Services (nube).

Referencia de Herramientas

CRUD de Elementos de Trabajo (6 herramientas)

HerramientaDescripción
azure_create_work_itemCrear un nuevo Error, Historia de Usuario, Tarea, Característica, Épica o tipo personalizado
azure_get_work_itemObtener un elemento de trabajo por ID con todos los campos
azure_get_work_itemsObtener en lote hasta 200 elementos de trabajo por IDs
azure_update_work_itemActualizar cualquier campo en un elemento de trabajo
azure_delete_work_itemEliminar (o destruir permanentemente) un elemento de trabajo
azure_query_work_itemsEjecutar consultas WIQL para buscar/filtrar elementos de trabajo

Estado y Asignación (3 herramientas)

HerramientaDescripción
azure_change_stateCambiar el estado del elemento de trabajo (Nuevo, Activo, Resuelto, Cerrado, etc.)
azure_assign_work_itemAsignar/reasignar un elemento de trabajo a un usuario
azure_update_fieldsActualizar en lote múltiples campos en una sola operación

Comentarios (2 herramientas)

HerramientaDescripción
azure_add_commentAñadir un comentario a un elemento de trabajo
azure_get_commentsObtener todos los comentarios en un elemento de trabajo

Relaciones (2 herramientas)

HerramientaDescripción
azure_link_work_itemsVincular dos elementos de trabajo (padre-hijo, relacionados, duplicados, etc.)
azure_get_relation_typesListar todos los tipos de relación/enlace disponibles

Proyectos y Equipos (4 herramientas)

HerramientaDescripción
azure_list_projectsListar todos los proyectos en la organización
azure_get_projectObtener detalles de un proyecto específico
azure_list_teamsListar todos los equipos en un proyecto
azure_get_team_membersObtener miembros de un equipo específico

Metadatos (4 herramientas)

HerramientaDescripción
azure_get_work_item_typesListar tipos de elementos de trabajo disponibles (Error, Historia, Tarea, etc.)
azure_get_fieldsListar campos de elementos de trabajo disponibles y sus nombres de referencia
azure_get_areasObtener jerarquía de rutas de área
azure_get_iterationsObtener jerarquía de iteraciones/sprints

Historial (2 herramientas)

HerramientaDescripción
azure_get_work_item_historyObtener historial de cambios de campos (quién cambió qué, cuándo)
azure_get_work_item_revisionsObtener capturas completas en cada revisión

Notas de Versión (2 herramientas)

HerramientaDescripción
azure_get_sprint_work_itemsObtener todos los elementos de trabajo en un sprint/iteración
azure_generate_release_notesGenerar notas de versión en markdown formateado

Git y Repositorios (2 herramientas)

HerramientaDescripción
azure_get_file_contentObtener el contenido bruto de un archivo de un repositorio Git (rama opcional)
azure_search_codeBuscar código en un proyecto (requiere la extensión de Búsqueda de Código)

Productividad del Desarrollador (1 herramienta)

HerramientaDescripción
azure_get_my_work_itemsObtener elementos de trabajo actualmente asignados a usted (excluye Cerrado/Hecho por defecto)

Gestión de Producto y Programa (3 herramientas)

HerramientaDescripción
azure_bulk_create_work_itemsCrear múltiples elementos de trabajo en una sola llamada (por ejemplo, importar un backlog/PRD)
azure_get_delivery_planListar planes de entrega, u obtener el cronograma de entrega de un plan
azure_generate_prd_to_storiesCrear una jerarquía Característica → Historias de Usuario → Tareas a partir de un desglose estructurado

Archivos Adjuntos (2 herramientas)

HerramientaDescripción
azure_add_attachmentAdjuntar un archivo (maqueta/captura/documento) a un elemento de trabajo desde una ruta local o contenido en línea
azure_get_attachmentsListar los archivos adjuntos de un elemento de trabajo y opcionalmente descargarlos

Planes de Prueba / QA (6 herramientas)

HerramientaDescripción
azure_list_test_plansListar todos los planes de prueba en un proyecto
azure_get_test_planObtener detalles de un plan de prueba específico
azure_list_test_suitesListar todos los conjuntos de pruebas dentro de un plan de prueba
azure_create_test_caseCrear un Caso de Prueba con pasos ordenados; opcionalmente añadir a un conjunto
azure_add_test_resultRegistrar un resultado de aprobado/fallido para un caso de prueba (crea y completa una ejecución)
azure_create_bug_from_test_failureRegistrar automáticamente un Error desde una prueba fallida con detalles de reproducción, vinculado al caso de prueba

Detección de Duplicados (1 herramienta)

HerramientaDescripción
azure_duplicate_detectionEncontrar elementos de trabajo probablemente duplicados por similitud de título antes de crear uno nuevo

Nota: azure_search_code requiere la extensión de Búsqueda de Código en la organización/colección, y las herramientas de Planes de Prueba requieren licencias de Planes de Prueba.

Ejemplos

Crear un Error

Tool: azure_create_work_item
Arguments:
  type: "Bug"
  title: "Login page crashes on mobile"
  description: "The login page throws a JS error on iOS Safari"
  priority: 1
  severity: "2 - High"
  assignedTo: "John Doe"
  tags: "frontend; mobile; urgent"
  reproSteps: "<ol><li>Open app on iOS Safari</li><li>Navigate to login</li><li>Page crashes</li></ol>"

Consultar Errores Activos

Tool: azure_query_work_items
Arguments:
  wiql: "SELECT [System.Id], [System.Title], [System.State] FROM workitems WHERE [System.WorkItemType] = 'Bug' AND [System.State] = 'Active' ORDER BY [Microsoft.VSTS.Common.Priority]"

Generar Notas de Versión

Tool: azure_generate_release_notes
Arguments:
  version: "2.1.0"
  iterationPath: "MyProject\\Sprint 23"
  includeDescription: true

Vincular Padre-Hijo

Tool: azure_link_work_items
Arguments:
  sourceId: 100
  targetId: 101
  linkType: "System.LinkTypes.Hierarchy-Forward"
  comment: "Feature contains this story"

Desarrollo

# Watch mode (auto-rebuild on changes)
npm run watch

# Dev mode (tsx, direct TS execution)
npm run dev

Publicación en npm (Mantenedores)

# 1. Ensure package version is updated in package.json
npm version patch

# 2. Push commit and tag
git push origin main --follow-tags

La publicación está automatizada mediante GitHub Actions en etiquetas que coinciden con v*.

Secreto de repositorio requerido:

  • NPM_TOKEN (token de automatización npm con acceso de publicación)

Licencia

MIT