Azure DevOps MCP Server
Un servidor MCP para Azure DevOps, que permite a los asistentes de IA interactuar con las APIs de Azure DevOps.
Documentación
Servidor MCP de Azure DevOps
Una implementación del servidor del Model Context Protocol (MCP) para Azure DevOps, que permite a los asistentes de IA interactuar con las APIs de Azure DevOps a través de un protocolo estandarizado.
¿Buscas el servidor oficial? Microsoft mantiene un Azure DevOps MCP compatible con productos en microsoft/azure-devops-mcp. Si usas Azure DevOps Services (nube), comienza allí.
Este servidor comunitario sigue siendo una buena opción cuando necesitas soporte para Azure DevOps Server (on-premises) — especialmente versiones antiguas que pueden no funcionar con el MCP de Microsoft — o funciones aún no disponibles en el servidor oficial. Consulta Discusión #237 para más contexto. Consulta ROADMAP.md para ver dónde se diferencia este servidor y qué está planificado.
Descripción general
Este servidor implementa el Model Context Protocol (MCP) para Azure DevOps, permitiendo que asistentes de IA como Claude interactúen de forma segura con los recursos de Azure DevOps. El servidor actúa como un puente entre los modelos de IA y las APIs de Azure DevOps, proporcionando una forma estandarizada de:
- Acceder y gestionar proyectos, elementos de trabajo, repositorios y más
- Crear y actualizar elementos de trabajo, ramas y solicitudes de extracción
- Ejecutar flujos de trabajo comunes de DevOps mediante lenguaje natural
- Acceder al contenido del repositorio a través de URIs de recursos estandarizados
- Autenticarse e interactuar de forma segura con los recursos de Azure DevOps
Estructura del servidor
El servidor está estructurado en torno al Model Context Protocol (MCP) para comunicarse con asistentes de IA. Proporciona herramientas para interactuar con los recursos de Azure DevOps, incluyendo:
- Proyectos
- Elementos de trabajo
- Repositorios
- Solicitudes de extracción
- Ramas
- Pipelines
Componentes principales
- AzureDevOpsServer: Clase principal del servidor que inicializa el servidor MCP y registra las herramientas
- Módulos de funciones: Organizados por área de funcionalidad (elementos de trabajo, proyectos, repositorios, etc.)
- Manejadores de solicitudes: Cada módulo de funciones proporciona funciones de identificación y manejo de solicitudes
- Manejadores de herramientas: Funciones modulares para cada operación de Azure DevOps
- Configuración: Configuración basada en variables de entorno para la URL de la organización, PAT, etc.
El servidor utiliza una arquitectura basada en funciones donde cada área de funcionalidad (como elementos de trabajo, proyectos, repositorios) está encapsulada en su propio módulo. Esto hace que el código base sea más mantenible y más fácil de extender con nuevas funciones.
Primeros pasos
Requisitos previos
- Node.js (v16+)
- npm o yarn
- Cuenta de Azure DevOps con el acceso adecuado
- Credenciales de autenticación (consulta la Guía de autenticación para más detalles):
- Token de acceso personal (PAT), o
- Credenciales de Azure Identity, o
- Inicio de sesión de Azure CLI
Ejecutar desde npm (npx)
Si solo quieres ejecutar el paquete del servidor publicado, no necesitas clonar ni compilar este repositorio:
npx -y @tiberriver256/mcp-server-azure-devops
Ejecutar localmente (desde el código fuente)
Desde una copia de este repositorio:
npm ci
cp .env.example .env # then edit values
npm run build
npm start # runs: node dist/index.js
Para desarrollo iterativo (recarga automática):
npm run dev # runs src/index.ts via ts-node-dev
Uso con Claude Desktop/Cursor AI
Para integrarte con Claude Desktop o Cursor AI, agrega una de las siguientes configuraciones a tu archivo de configuración.
Autenticación con Azure Identity
Asegúrate de haber iniciado sesión en Azure CLI con az login y luego agrega lo siguiente:
{
"mcpServers": {
"azureDevOps": {
"command": "npx",
"args": ["-y", "@tiberriver256/mcp-server-azure-devops"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
"AZURE_DEVOPS_AUTH_METHOD": "azure-identity",
"AZURE_DEVOPS_DEFAULT_PROJECT": "your-project-name"
}
}
}
}
Autenticación con Token de Acceso Personal (PAT)
{
"mcpServers": {
"azureDevOps": {
"command": "npx",
"args": ["-y", "@tiberriver256/mcp-server-azure-devops"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
"AZURE_DEVOPS_AUTH_METHOD": "pat",
"AZURE_DEVOPS_PAT": "<YOUR_PAT>",
"AZURE_DEVOPS_DEFAULT_PROJECT": "your-project-name"
}
}
}
}
Azure DevOps Server (on-prem) requiere autenticación con PAT. Ejemplo:
{
"mcpServers": {
"azureDevOps": {
"command": "npx",
"args": ["-y", "@tiberriver256/mcp-server-azure-devops"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://server:8080/tfs/DefaultCollection",
"AZURE_DEVOPS_AUTH_METHOD": "pat",
"AZURE_DEVOPS_PAT": "<YOUR_PAT>",
"AZURE_DEVOPS_DEFAULT_PROJECT": "your-project-name"
}
}
}
}
Para instrucciones detalladas de configuración y más opciones de autenticación, consulta la Guía de autenticación.
Métodos de autenticación
Este servidor admite múltiples métodos de autenticación para conectarse a las APIs de Azure DevOps. Para instrucciones detalladas de configuración, ejemplos de configuración y consejos para solucionar problemas, consulta la Guía de autenticación.
Métodos de autenticación admitidos
- Token de Acceso Personal (PAT) - Autenticación simple basada en tokens
- Azure Identity (DefaultAzureCredential) - Autenticación flexible usando el SDK de Azure Identity
- Azure CLI - Autenticación usando tu inicio de sesión de Azure CLI
Los archivos de configuración de ejemplo para cada método de autenticación están disponibles en el directorio de ejemplos.
Azure DevOps Server (on-prem) solo admite autenticación con PAT. Azure Identity y Azure CLI son compatibles con Azure DevOps Services.
Variables de entorno
Para obtener una lista completa de las variables de entorno y sus descripciones, consulta la Guía de autenticación.
Las variables de entorno clave incluyen:
| Variable | Descripción | Requerida | Valor predeterminado |
|---|---|---|---|
AZURE_DEVOPS_AUTH_METHOD | Método de autenticación (pat, azure-identity o azure-cli) - no distingue entre mayúsculas y minúsculas | No | azure-identity |
AZURE_DEVOPS_ORG_URL | URL completa de tu organización de Azure DevOps o colección de Server (p. ej., https://server:8080/tfs/DefaultCollection) | Sí | - |
AZURE_DEVOPS_PAT | Token de Acceso Personal (para autenticación con PAT) | Solo con autenticación PAT | - |
AZURE_DEVOPS_DEFAULT_PROJECT | Proyecto predeterminado si no se especifica ninguno | No | - |
AZURE_DEVOPS_API_VERSION | Versión de api REST para las herramientas que llaman directamente a la API REST (valores por versión) | No | 7.1 |
AZURE_TENANT_ID | ID de inquilino de Azure AD (para entidades de servicio) | Solo con entidades de servicio | - |
AZURE_CLIENT_ID | ID de aplicación de Azure AD (para entidades de servicio) | Solo con entidades de servicio | - |
AZURE_CLIENT_SECRET | Secreto de cliente de Azure AD (para entidades de servicio) | Solo con entidades de servicio | - |
LOG_LEVEL | Nivel de registro (debug, info, warn, error) | No | info |
Solución de problemas de autenticación
Para obtener información detallada sobre la solución de problemas de cada método de autenticación, consulta la Guía de autenticación.
Los problemas comunes incluyen:
- Credenciales no válidas o caducadas
- Permisos insuficientes
- Problemas de conectividad de red
- Errores de configuración
Detalles de implementación de autenticación
Para obtener detalles técnicos sobre cómo se implementa la autenticación en el servidor MCP de Azure DevOps, consulta la Guía de autenticación y el código fuente en el directorio src/auth.
Herramientas disponibles
El servidor MCP de Azure DevOps proporciona una variedad de herramientas para interactuar con los recursos de Azure DevOps. Para obtener documentación detallada sobre cada herramienta, consulta la documentación correspondiente.
Herramientas de usuario
get_me: Obtener detalles del usuario autenticado (id, nombre para mostrar, correo electrónico) (solo Azure DevOps Services)
Herramientas de organización
list_organizations: Listar todas las organizaciones accesibles (solo Azure DevOps Services)
Herramientas de proyecto
list_projects: Listar todos los proyectos en una organizaciónget_project: Obtener detalles de un proyecto específicoget_project_details: Obtener detalles completos de un proyecto, incluidos proceso, tipos de elementos de trabajo y equipos
Herramientas de repositorio
list_repositories: Listar todos los repositorios en un proyectoget_repository: Obtener detalles de un repositorio específicoget_repository_details: Obtener información detallada sobre un repositorio, incluidas estadísticas y referenciasget_file_content: Obtener contenido de un archivo o directorio de un repositorioget_repository_tree: Listar el árbol de archivos de un repositorio desde cualquier ruta y profundidadcreate_branch: Crear una nueva rama a partir de una existentecreate_commit: Confirmar múltiples cambios de archivos en una rama usando diffs unificados o instrucciones de buscar/reemplazar
Herramientas de elementos de trabajo
get_work_item: Recuperar un elemento de trabajo por IDcreate_work_item: Crear un nuevo elemento de trabajoupdate_work_item: Actualizar un elemento de trabajo existentelist_work_items: Listar elementos de trabajo en un proyectomanage_work_item_link: Agregar, eliminar o actualizar vínculos entre elementos de trabajocreate_work_item_attachment: Subir y adjuntar un archivo a un elemento de trabajoget_work_item_attachment: Descargar un adjunto de un elemento de trabajodelete_work_item_attachment: Eliminar un adjunto de un elemento de trabajo
Herramientas de búsqueda
search_code: Buscar código en los repositorios de un proyectosearch_wiki: Buscar contenido en las páginas wiki de un proyectosearch_work_items: Buscar elementos de trabajo en los proyectos de Azure DevOps
Herramientas de pipelines
list_pipelines: Listar pipelines en un proyectoget_pipeline: Obtener detalles de un pipeline específicolist_pipeline_runs: Listar ejecuciones recientes de un pipeline con filtros opcionalesget_pipeline_run: Obtener información detallada de la ejecución y resúmenes de artefactosdownload_pipeline_artifact: Descargar un único archivo de artefacto como textopipeline_timeline: Recuperar la línea de tiempo de etapas y trabajos de una ejecuciónget_pipeline_log: Recuperar contenido de registro en formato sin procesar o JSONtrigger_pipeline: Activar una ejecución de pipeline con parámetros personalizables
Herramientas de wiki
get_wikis: Listar todas las wikis en un proyectoget_wiki_page: Obtener contenido de una página wiki específica como texto sin formato
Herramientas de solicitudes de extracción
create_pull_request- Crear una nueva solicitud de extracciónget_pull_request- Obtener una solicitud de extracción por IDlist_pull_requests- Listar solicitudes de extracción en un repositorioadd_pull_request_comment- Agregar un comentario a una solicitud de extracciónget_pull_request_comments- Obtener comentarios de una solicitud de extracciónupdate_pull_request- Actualizar una solicitud de extracción existente (título, descripción, estado, estado de borrador, revisores, elementos de trabajo)get_pull_request_changes- Listar cambios en una solicitud de extracción y estado de evaluación de políticasget_pull_request_checks- Resumir verificaciones de estado, evaluaciones de políticas y sus pipelines relacionados
Para obtener documentación completa sobre todas las herramientas, consulta la Documentación de herramientas.
Contribuciones
¡Las contribuciones son bienvenidas! Consulta CONTRIBUTING.md para conocer las pautas de contribución.
Historial de estrellas
Licencia
MIT