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
| Variable | Requerida | Descripción |
|---|
AZURE_DEVOPS_ORG_URL | Sí | URL de su organización de Azure DevOps |
AZURE_DEVOPS_PAT | Sí | Token de Acceso Personal |
AZURE_DEVOPS_PROJECT | No | Nombre de proyecto predeterminado (se puede anular por llamada de herramienta) |
AZURE_DEVOPS_API_VERSION | No | Versión de API (predeterminada: 7.1) |
NODE_TLS_REJECT_UNAUTHORIZED | No | Establecer 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
- Vaya a Azure DevOps → Configuración de Usuario → Tokens de Acceso Personal
- Haga clic en Nuevo Token
- Establezca los siguientes ámbitos:
- Elementos de Trabajo: Lectura y Escritura
- Proyecto y Equipo: Lectura
- 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)
| Herramienta | Descripción |
|---|
azure_create_work_item | Crear un nuevo Error, Historia de Usuario, Tarea, Característica, Épica o tipo personalizado |
azure_get_work_item | Obtener un elemento de trabajo por ID con todos los campos |
azure_get_work_items | Obtener en lote hasta 200 elementos de trabajo por IDs |
azure_update_work_item | Actualizar cualquier campo en un elemento de trabajo |
azure_delete_work_item | Eliminar (o destruir permanentemente) un elemento de trabajo |
azure_query_work_items | Ejecutar consultas WIQL para buscar/filtrar elementos de trabajo |
Estado y Asignación (3 herramientas)
| Herramienta | Descripción |
|---|
azure_change_state | Cambiar el estado del elemento de trabajo (Nuevo, Activo, Resuelto, Cerrado, etc.) |
azure_assign_work_item | Asignar/reasignar un elemento de trabajo a un usuario |
azure_update_fields | Actualizar en lote múltiples campos en una sola operación |
Comentarios (2 herramientas)
| Herramienta | Descripción |
|---|
azure_add_comment | Añadir un comentario a un elemento de trabajo |
azure_get_comments | Obtener todos los comentarios en un elemento de trabajo |
Relaciones (2 herramientas)
| Herramienta | Descripción |
|---|
azure_link_work_items | Vincular dos elementos de trabajo (padre-hijo, relacionados, duplicados, etc.) |
azure_get_relation_types | Listar todos los tipos de relación/enlace disponibles |
Proyectos y Equipos (4 herramientas)
| Herramienta | Descripción |
|---|
azure_list_projects | Listar todos los proyectos en la organización |
azure_get_project | Obtener detalles de un proyecto específico |
azure_list_teams | Listar todos los equipos en un proyecto |
azure_get_team_members | Obtener miembros de un equipo específico |
Metadatos (4 herramientas)
| Herramienta | Descripción |
|---|
azure_get_work_item_types | Listar tipos de elementos de trabajo disponibles (Error, Historia, Tarea, etc.) |
azure_get_fields | Listar campos de elementos de trabajo disponibles y sus nombres de referencia |
azure_get_areas | Obtener jerarquía de rutas de área |
azure_get_iterations | Obtener jerarquía de iteraciones/sprints |
Historial (2 herramientas)
| Herramienta | Descripción |
|---|
azure_get_work_item_history | Obtener historial de cambios de campos (quién cambió qué, cuándo) |
azure_get_work_item_revisions | Obtener capturas completas en cada revisión |
Notas de Versión (2 herramientas)
| Herramienta | Descripción |
|---|
azure_get_sprint_work_items | Obtener todos los elementos de trabajo en un sprint/iteración |
azure_generate_release_notes | Generar notas de versión en markdown formateado |
Git y Repositorios (2 herramientas)
| Herramienta | Descripción |
|---|
azure_get_file_content | Obtener el contenido bruto de un archivo de un repositorio Git (rama opcional) |
azure_search_code | Buscar código en un proyecto (requiere la extensión de Búsqueda de Código) |
Productividad del Desarrollador (1 herramienta)
| Herramienta | Descripción |
|---|
azure_get_my_work_items | Obtener elementos de trabajo actualmente asignados a usted (excluye Cerrado/Hecho por defecto) |
Gestión de Producto y Programa (3 herramientas)
| Herramienta | Descripción |
|---|
azure_bulk_create_work_items | Crear múltiples elementos de trabajo en una sola llamada (por ejemplo, importar un backlog/PRD) |
azure_get_delivery_plan | Listar planes de entrega, u obtener el cronograma de entrega de un plan |
azure_generate_prd_to_stories | Crear una jerarquía Característica → Historias de Usuario → Tareas a partir de un desglose estructurado |
Archivos Adjuntos (2 herramientas)
| Herramienta | Descripción |
|---|
azure_add_attachment | Adjuntar un archivo (maqueta/captura/documento) a un elemento de trabajo desde una ruta local o contenido en línea |
azure_get_attachments | Listar los archivos adjuntos de un elemento de trabajo y opcionalmente descargarlos |
Planes de Prueba / QA (6 herramientas)
| Herramienta | Descripción |
|---|
azure_list_test_plans | Listar todos los planes de prueba en un proyecto |
azure_get_test_plan | Obtener detalles de un plan de prueba específico |
azure_list_test_suites | Listar todos los conjuntos de pruebas dentro de un plan de prueba |
azure_create_test_case | Crear un Caso de Prueba con pasos ordenados; opcionalmente añadir a un conjunto |
azure_add_test_result | Registrar un resultado de aprobado/fallido para un caso de prueba (crea y completa una ejecución) |
azure_create_bug_from_test_failure | Registrar automáticamente un Error desde una prueba fallida con detalles de reproducción, vinculado al caso de prueba |
Detección de Duplicados (1 herramienta)
| Herramienta | Descripción |
|---|
azure_duplicate_detection | Encontrar 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