azure-devops-mcp

by RyanCardin15
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • The server provides tools for interacting with Git repositories in Azure DevOps, including listing repositories, branches, commits, creating pull requests, and more.

  • Node.js is listed as a prerequisite for running the server, but it's not what the server integrates with.

  • The MCP server is built with TypeScript, but it doesn't integrate with TypeScript as a service.

Integración de Azure DevOps MCP

Una potente integración para Azure DevOps que proporciona acceso sin inconvenientes a elementos de trabajo, repositorios, proyectos, tableros y sprints a través del servidor del Protocolo de contexto de modelo (MCP).

Descripción general

Este servidor proporciona una API práctica para interactuar con los servicios de Azure DevOps, lo que permite que los asistentes de IA y otras herramientas administren elementos de trabajo, repositorios de código, tableros, sprints y más. Desarrollado con el Protocolo de Contexto de Modelo, proporciona una interfaz estandarizada para la comunicación con Azure DevOps.

Manifestación

Características

La integración está organizada en ocho categorías principales de herramientas:

Herramientas de elementos de trabajo

  • Enumere elementos de trabajo mediante consultas WIQL
  • Obtener detalles del elemento de trabajo por ID
  • Buscar elementos de trabajo
  • Obtenga elementos de trabajo actualizados recientemente
  • Obtenga sus elementos de trabajo asignados
  • Crear nuevos elementos de trabajo
  • Actualizar elementos de trabajo existentes
  • Agregar comentarios a los elementos de trabajo
  • Actualizar el estado del elemento de trabajo
  • Asignar elementos de trabajo
  • Crear vínculos entre elementos de trabajo
  • Crear/actualizar elementos de trabajo de forma masiva

Herramientas para tableros y sprints

  • Obtener tableros de equipo
  • Obtener columnas del tablero
  • Obtener elementos del tablero
  • Mover cartas en los tableros
  • Consigue sprints
  • Obtener el sprint actual
  • Obtener elementos de trabajo del sprint
  • Obtener capacidad de sprint
  • Conseguir miembros del equipo

Herramientas del proyecto

  • Lista de proyectos
  • Obtener detalles del proyecto
  • Crear nuevos proyectos
  • Obtener áreas
  • Obtener iteraciones
  • Crear áreas
  • Crear iteraciones
  • Obtener plantillas de procesos
  • Obtener tipos de elementos de trabajo
  • Obtener campos de tipo de elemento de trabajo

Herramientas de Git

  • Lista de repositorios
  • Obtener detalles del repositorio
  • Crear repositorios
  • Lista de sucursales
  • Código de búsqueda
  • Explorar repositorios
  • Obtener el contenido del archivo
  • Obtener el historial de confirmaciones
  • Lista de solicitudes de extracción
  • Crear solicitudes de extracción
  • Obtener detalles de la solicitud de extracción
  • Obtener comentarios de solicitudes de extracción
  • Aprobar solicitudes de extracción
  • Fusionar solicitudes de extracción

Herramientas de capacidades de prueba

  • Ejecutar pruebas automatizadas
  • Obtener el estado de la automatización de pruebas
  • Configurar agentes de prueba
  • Crear generadores de datos de prueba
  • Administrar entornos de prueba
  • Obtenga un análisis de descamación de la prueba
  • Obtenga un análisis de brechas de prueba
  • Análisis de impacto de la prueba de ejecución
  • Obtener el panel de control de salud de la prueba
  • Ejecutar optimización de pruebas
  • Crear sesiones exploratorias
  • Registrar los resultados de las pruebas exploratorias
  • Convertir hallazgos en elementos de trabajo
  • Obtener estadísticas de pruebas exploratorias

Herramientas DevSecOps

  • Ejecutar análisis de seguridad
  • Obtener resultados del análisis de seguridad
  • Seguimiento de vulnerabilidades de seguridad
  • Generar informes de cumplimiento de seguridad
  • Integrar los resultados del SARIF
  • Ejecutar comprobaciones de cumplimiento
  • Obtener el estado de cumplimiento
  • Crear informes de cumplimiento
  • Administrar políticas de seguridad
  • Concienciación sobre la seguridad en la pista
  • Rotar secretos
  • Uso del secreto de auditoría
  • Configurar la integración de la bóveda

Herramientas de gestión de artefactos

  • Lista de fuentes de artefactos
  • Obtener versiones de paquetes
  • Publicar paquetes
  • Promocionar paquetes
  • Eliminar versiones de paquetes
  • Lista de imágenes de contenedores
  • Obtener etiquetas de imágenes de contenedores
  • Escanear imágenes de contenedores
  • Administrar políticas de contenedores
  • Administrar paquetes universales
  • Crear informes de descarga de paquetes
  • Comprobar las dependencias del paquete

Herramientas de desarrollo asistido por IA

  • Obtenga revisiones de código impulsadas por IA
  • Sugerir optimizaciones de código
  • Identificar olores de código
  • Obtenga análisis predictivo de errores
  • Obtenga métricas de productividad del desarrollador
  • Obtenga estimaciones predictivas del esfuerzo
  • Obtenga tendencias de calidad del código
  • Sugerir mejoras en los elementos de trabajo
  • Sugerir oportunidades de automatización
  • Crear alertas inteligentes
  • Predecir fallos de compilación
  • Optimizar la selección de pruebas

Instalación

Instalación mediante herrería

Para instalar azuredevops-mcp para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @RyanCardin15/azuredevops-mcp --client claude

Prerrequisitos

  • Node.js (v16 o posterior)
  • TypeScript (v4 o posterior)
  • Una cuenta de Azure DevOps con un token de acceso personal (PAT) o credenciales locales adecuadas

Configuración

  1. Clonar el repositorio:
    git clone <repository-url> cd AzureDevOps
  2. Instalar dependencias:
    npm install
  3. Configurar variables de entorno (crear un archivo .env o configúrelas directamente):Para Azure DevOps Services (nube):
    AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token AZURE_DEVOPS_PROJECT=your-default-project AZURE_DEVOPS_IS_ON_PREMISES=false
    Para Azure DevOps Server (local):
    AZURE_DEVOPS_ORG_URL=https://your-server/tfs AZURE_DEVOPS_PROJECT=your-default-project AZURE_DEVOPS_IS_ON_PREMISES=true AZURE_DEVOPS_COLLECTION=your-collection AZURE_DEVOPS_API_VERSION=6.0 # Adjust based on your server version # Authentication (choose one): # For PAT authentication: AZURE_DEVOPS_AUTH_TYPE=pat AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token # For NTLM authentication: AZURE_DEVOPS_AUTH_TYPE=ntlm AZURE_DEVOPS_USERNAME=your-username AZURE_DEVOPS_PASSWORD=your-password AZURE_DEVOPS_DOMAIN=your-domain # For Basic authentication: AZURE_DEVOPS_AUTH_TYPE=basic AZURE_DEVOPS_USERNAME=your-username AZURE_DEVOPS_PASSWORD=your-password
  4. Construir el proyecto:
    npm run build
    Si encuentra errores de TypeScript pero desea continuar de todos modos:
    npm run build:ignore-errors
  5. Iniciar el servidor:
    npm run start

Configuración

Token de acceso personal (PAT)

Para Azure DevOps Services (nube), deberá crear un token de acceso personal con los permisos adecuados:

  1. Vaya a su organización de Azure DevOps
  2. Haz clic en el icono de tu perfil en la parte superior derecha.
  3. Seleccione "Tokens de acceso personal"
  4. Haga clic en "Nuevo token"
  5. Asígnele un nombre y seleccione los ámbitos apropiados:
    • Elementos de trabajo: leer y escribir
    • Código: Leer y escribir
    • Proyecto y equipo: Leer y escribir
    • Construir: Leer
    • Comunicado: Leer

Para Azure DevOps Server (local), tiene tres opciones de autenticación:

  1. Token de acceso personal (PAT):
    • Similar a la configuración en la nube, pero crea el PAT en tu instancia local
    • Establezca AZURE_DEVOPS_AUTH_TYPE=pat
  2. Autenticación NTLM:
    • Utilice sus credenciales de dominio de Windows
    • Establecer AZURE_DEVOPS_AUTH_TYPE=ntlm
    • Proporcionar nombre de usuario, contraseña y dominio
  3. Autenticación básica:
    • Utilice sus credenciales locales
    • Establezca AZURE_DEVOPS_AUTH_TYPE=basic
    • Proporcionar nombre de usuario y contraseña

Servicios de Azure DevOps frente a Azure DevOps Server

Esta integración es compatible tanto con Azure DevOps Services alojados en la nube como con Azure DevOps Server local:

Servicios de Azure DevOps (nube)

  • Configuración sencilla con URL de la organización y PAT
  • La configuración predeterminada espera el formato: https://dev.azure.com/your-organization
  • Siempre utiliza la autenticación PAT
  • Archivos de configuración de muestra proporcionados en .env.cloud.example

Azure DevOps Server (local)

  • Requiere configuración adicional para la URL del servidor, la recopilación y la autenticación
  • El formato de la URL varía según la configuración de su servidor: https://your-server/tfs
  • Requiere especificar un nombre de colección
  • Admite múltiples métodos de autenticación (PAT, NTLM, Básico)
  • Puede requerirse la especificación de la versión API para versiones de servidor más antiguas
  • Archivos de configuración de muestra proporcionados en .env.on-premises.example

Diferencias clave

CaracterísticaServicios de Azure DevOpsServidor Azure DevOps
Formato de URLhttps://dev.azure.com/orghttps://servidor/tfs
RecopilaciónNo requeridoRequerido
Métodos de autenticaciónSolo PATPAT, NTLM, Básico
Versión de APIÚltimo (automático)Puede que sea necesario especificarlo
ConexiónSiempre internetPuede tener un espacio de aire

Ejemplo de configuración

Copie .env.cloud.example o .env.on-premises.example en .env y actualice los valores según sea necesario.

Variables de entorno

El servidor se puede configurar utilizando las siguientes variables de entorno:

VariableDescripciónRequeridoPor defecto
URL DE LA ORGANIZACIÓN AZURE_DEVOPSURL de su organización o servidor de Azure DevOps-
PROYECTO AZURE_DEVOPSProyecto predeterminado a utilizar-
AZURE_DEVOPS_ESTÁ_EN_LAS_INSTALACIONESSi se utiliza Azure DevOps ServerNoFALSO
COLECCIÓN AZURE_DEVOPSNombre de la colección para instalaciones localesNo*-
VERSIÓN DE API DE AZURE DEVOPSVersión de API para instalaciones localesNo-
TIPO DE AUTORIZACIÓN DE AZURE DEVOPSTipo de autenticación (pat/ntlm/basic)Nopalmadita
TOKEN DE ACCESO PERSONAL DE AZURE DEVOPSToken de acceso personalNo**-
NOMBRE DE USUARIO DE AZURE_DEVOPSNombre de usuario para autenticación NTLM/básicaNo**-
CONTRASEÑA DE AZURE_DEVOPSContraseña para autenticación NTLM/básicaNo**-
DOMINIO AZURE_DEVOPSDominio para autenticación NTLMNo-
HERRAMIENTAS PERMITIDASLista separada por comas de métodos de herramientas para habilitarNoTodas las herramientas

* Obligatorio si AZURE_DEVOPS_IS_ON_PREMISES=true ** Obligatorio según el tipo de autenticación elegido

Filtrado de herramientas con ALLOWED_TOOLS

La variable de entorno ALLOWED_TOOLS permite restringir los métodos de herramienta disponibles. Esto es completamente opcional: si no se especifica, se habilitarán todas las herramientas.

Formato: Lista de nombres de métodos separados por comas sin espacios.

Ejemplo:

ALLOWED_TOOLS=listWorkItems,getWorkItemById,searchWorkItems,createWorkItem

Esto solo habilitaría los métodos de elementos de trabajo especificados y deshabilitaría todos los demás.

Uso

Una vez que el servidor esté en ejecución, puede interactuar con él mediante el protocolo MCP. El servidor expone varias herramientas para diferentes funcionalidades de Azure DevOps.

Herramientas disponibles

Nota: De forma predeterminada, solo se registra un subconjunto de herramientas en el archivo index.ts para simplificar la implementación inicial. Consulte la sección "Registro de herramientas" para obtener información sobre cómo registrar herramientas adicionales.

Ejemplo: Lista de elementos de trabajo

{ "tool": "listWorkItems", "params": { "query": "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.State] = 'Active' ORDER BY [System.CreatedDate] DESC" } }

Ejemplo: Crear un elemento de trabajo

{ "tool": "createWorkItem", "params": { "workItemType": "User Story", "title": "Implement new feature", "description": "As a user, I want to be able to export reports to PDF.", "assignedTo": "john@example.com" } }

Ejemplo: Lista de repositorios

{ "tool": "listRepositories", "params": { "projectId": "MyProject" } }

Ejemplo: crear una solicitud de extracción

{ "tool": "createPullRequest", "params": { "repositoryId": "repo-guid", "sourceRefName": "refs/heads/feature-branch", "targetRefName": "refs/heads/main", "title": "Add new feature", "description": "This PR adds the export to PDF feature" } }

Arquitectura

El proyecto se estructura de la siguiente manera:

  • src/
    • Interfaces/ : Definiciones de tipos para parámetros y respuestas
    • Services/ : Clases de servicio para interactuar con las API de Azure DevOps
    • Tools/ : Implementaciones de herramientas que exponen la funcionalidad a los clientes
    • index.ts : Punto de entrada principal que registra herramientas e inicia el servidor
    • config.ts : Manejo de configuración

Capa de servicio

La capa de servicio maneja la comunicación directa con la API de Azure DevOps:

  • WorkItemService : Operaciones de elementos de trabajo
  • BoardsSprintsService : Operaciones de tableros y sprints
  • ProjectService : Operaciones de gestión de proyectos
  • GitService : Operaciones del repositorio Git
  • TestingCapabilitiesService : Operaciones de capacidades de prueba
  • DevSecOpsService : Operaciones de DevSecOps
  • ArtifactManagementService : Operaciones de gestión de artefactos
  • AIAssistedDevelopmentService : Operaciones de desarrollo asistidas por IA

Capa de herramientas

La capa de herramientas envuelve los servicios y proporciona una interfaz consistente para el protocolo MCP:

  • WorkItemTools : Herramientas para operaciones de elementos de trabajo
  • BoardsSprintsTools : Herramientas para tableros y operaciones de sprints
  • ProjectTools : Herramientas para la gestión de proyectos
  • GitTools : Herramientas para operaciones de Git
  • TestingCapabilitiesTools : Herramientas para probar operaciones de capacidades
  • DevSecOpsTools : Herramientas para operaciones DevSecOps
  • ArtifactManagementTools : Herramientas para operaciones de gestión de artefactos
  • AIAssistedDevelopmentTools : Herramientas para operaciones de desarrollo asistidas por IA

Registro de herramientas

El servidor MCP requiere que las herramientas se registren explícitamente en el archivo index.ts . De forma predeterminada, solo se registra un subconjunto de todas las herramientas posibles para que la implementación inicial sea manejable.

Para registrar más herramientas:

  1. Abra el archivo src/index.ts
  2. Agregar nuevos registros de herramientas siguiendo el patrón de herramientas existentes
  3. Construir y reiniciar el servidor

Una guía completa para el registro de herramientas está disponible en el archivo TOOL_REGISTRATION.md en el repositorio.

Nota: Al registrar herramientas, asegúrese de usar los tipos de parámetros correctos, especialmente para valores de enumeración. Las definiciones de tipo en el directorio Interfaces definen los tipos esperados para cada parámetro. Usar un tipo incorrecto (por ejemplo, usar z.string() en lugar de z.enum() para valores enumerados) provocará errores de TypeScript durante la compilación.

Ejemplo de registro de una nueva herramienta:

server.tool("searchCode", "Search for code in repositories", { searchText: z.string().describe("Text to search for"), repositoryId: z.string().optional().describe("ID of the repository") }, async (params, extra) => { const result = await gitTools.searchCode(params); return { content: result.content, rawData: result.rawData, isError: result.isError }; } );

Solución de problemas

Problemas comunes

Errores de autenticación

  • Asegúrese de que su token de acceso personal sea válido y tenga los permisos necesarios
  • Verifique que la URL de la organización sea correcta

Errores de TypeScript durante la compilación

  • Utilice npm run build:ignore-errors para omitir errores de TypeScript
  • Comprobar si hay definiciones de tipos faltantes o incorrectas

Errores de tiempo de ejecución

  • Verifique que el proyecto de Azure DevOps especificado exista y sea accesible

Contribuyendo

¡Agradecemos sus contribuciones! Aquí le mostramos cómo contribuir:

  1. Bifurcar el repositorio
  2. Crear una rama de características ( git checkout -b feature/amazing-feature )
  3. Confirme sus cambios ( git commit -m 'Add some amazing feature' )
  4. Empujar a la rama ( git push origin feature/amazing-feature )
  5. Abrir una solicitud de extracción

Asegúrese de que su código pase la prueba de pelusa e incluya las pruebas adecuadas.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Este servidor proporciona una API práctica para interactuar con los servicios de Azure DevOps, lo que permite que los asistentes de IA y otras herramientas administren elementos de trabajo, repositorios de código, tableros, sprints y más. Desarrollado con el Protocolo de Contexto de Modelo, proporciona una interfaz estandarizada para la comunicación con Azure DevOps.

  1. Overview
    1. Demo
      1. Features
        1. Work Item Tools
        2. Boards & Sprints Tools
        3. Project Tools
        4. Git Tools
        5. Testing Capabilities Tools
        6. DevSecOps Tools
        7. Artifact Management Tools
        8. AI-Assisted Development Tools
      2. Installation
        1. Installing via Smithery
        2. Prerequisites
        3. Setup
      3. Configuration
        1. Personal Access Token (PAT)
        2. Azure DevOps Services vs. Azure DevOps Server
        3. Environment Variables
      4. Usage
        1. Available Tools
        2. Example: List Work Items
        3. Example: Create a Work Item
        4. Example: List Repositories
        5. Example: Create a Pull Request
      5. Architecture
        1. Service Layer
        2. Tools Layer
      6. Tool Registration
        1. Troubleshooting
          1. Common Issues
        2. Contributing
          ID: z7mxfcinp8