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

  1. Token de Acceso Personal (PAT) - Autenticación simple basada en tokens
  2. Azure Identity (DefaultAzureCredential) - Autenticación flexible usando el SDK de Azure Identity
  3. 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:

VariableDescripciónRequeridaValor predeterminado
AZURE_DEVOPS_AUTH_METHODMétodo de autenticación (pat, azure-identity o azure-cli) - no distingue entre mayúsculas y minúsculasNoazure-identity
AZURE_DEVOPS_ORG_URLURL completa de tu organización de Azure DevOps o colección de Server (p. ej., https://server:8080/tfs/DefaultCollection)Sí-
AZURE_DEVOPS_PATToken de Acceso Personal (para autenticación con PAT)Solo con autenticación PAT-
AZURE_DEVOPS_DEFAULT_PROJECTProyecto predeterminado si no se especifica ningunoNo-
AZURE_DEVOPS_API_VERSIONVersión de api REST para las herramientas que llaman directamente a la API REST (valores por versión)No7.1
AZURE_TENANT_IDID de inquilino de Azure AD (para entidades de servicio)Solo con entidades de servicio-
AZURE_CLIENT_IDID de aplicación de Azure AD (para entidades de servicio)Solo con entidades de servicio-
AZURE_CLIENT_SECRETSecreto de cliente de Azure AD (para entidades de servicio)Solo con entidades de servicio-
LOG_LEVELNivel de registro (debug, info, warn, error)Noinfo

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ón
  • get_project: Obtener detalles de un proyecto específico
  • get_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 proyecto
  • get_repository: Obtener detalles de un repositorio específico
  • get_repository_details: Obtener información detallada sobre un repositorio, incluidas estadísticas y referencias
  • get_file_content: Obtener contenido de un archivo o directorio de un repositorio
  • get_repository_tree: Listar el árbol de archivos de un repositorio desde cualquier ruta y profundidad
  • create_branch: Crear una nueva rama a partir de una existente
  • create_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 ID
  • create_work_item: Crear un nuevo elemento de trabajo
  • update_work_item: Actualizar un elemento de trabajo existente
  • list_work_items: Listar elementos de trabajo en un proyecto
  • manage_work_item_link: Agregar, eliminar o actualizar vínculos entre elementos de trabajo
  • create_work_item_attachment: Subir y adjuntar un archivo a un elemento de trabajo
  • get_work_item_attachment: Descargar un adjunto de un elemento de trabajo
  • delete_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 proyecto
  • search_wiki: Buscar contenido en las páginas wiki de un proyecto
  • search_work_items: Buscar elementos de trabajo en los proyectos de Azure DevOps

Herramientas de pipelines

  • list_pipelines: Listar pipelines en un proyecto
  • get_pipeline: Obtener detalles de un pipeline específico
  • list_pipeline_runs: Listar ejecuciones recientes de un pipeline con filtros opcionales
  • get_pipeline_run: Obtener información detallada de la ejecución y resúmenes de artefactos
  • download_pipeline_artifact: Descargar un único archivo de artefacto como texto
  • pipeline_timeline: Recuperar la línea de tiempo de etapas y trabajos de una ejecución
  • get_pipeline_log: Recuperar contenido de registro en formato sin procesar o JSON
  • trigger_pipeline: Activar una ejecución de pipeline con parámetros personalizables

Herramientas de wiki

  • get_wikis: Listar todas las wikis en un proyecto
  • get_wiki_page: Obtener contenido de una página wiki específica como texto sin formato

Herramientas de solicitudes de extracción

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

Star History Chart

Licencia

MIT