MCP For Azure DevOps Boards
Un servidor MCP que se enfoca en proporcionar herramientas útiles para Azure DevOps Boards
Documentación
MCP para Azure DevOps Boards
Un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con Azure DevOps Boards y Work Items, escrito en Rust.
Características
-
Gestión de Work Items: Crear, actualizar, obtener y consultar work items.
-
Integración con Boards: Listar equipos, boards y obtener elementos de los boards.
-
Soporte WIQL: Ejecutar consultas WIQL personalizadas.
-
Salida Simplificada: Salida JSON optimizada para consumo por LLM (uso reducido de tokens).
Instalación
Consulta la sección Configuración de MCP para saber cómo configurar tu cliente de IA (MCP) preferido.
macOS (Homebrew)
brew tap danielealbano/mcp-tools
brew install mcp-for-azure-devops-boards
La ruta al binario será /opt/homebrew/bin/mcp-for-azure-devops-boards.
Windows (Scoop)
scoop bucket add mcp-tools https://github.com/danielealbano/scoop-mcp-tools
scoop install mcp-for-azure-devops-boards
La ruta al binario será %USERPROFILE%\scoop\apps\mcp-for-azure-devops-boards\current\mcp-for-azure-devops-boards.exe.
Configuración
| Configuración | Descripción | Indicador CLI | Variable de Entorno |
|---|---|---|---|
| Modo Servidor | Ejecutar como servidor HTTP en lugar de stdio | --server | N/A |
| Puerto | Puerto para el servidor HTTP (predeterminado: 3000) | --port | N/A |
Nota: Si --server no se especifica, el software se ejecutará en modo stdio.
Autenticación
Este servidor utiliza los mecanismos estándar de autenticación de Azure para consultar Azure DevOps. En cada solicitud adquiere un token Bearer para la API REST de Azure DevOps (ámbito 499b84ac-1321-427f-aa17-267ca6975798/.default) probando las siguientes fuentes de credenciales en orden y usando la primera que devuelva un token:
- Entorno (secreto de cliente) — se usa solo cuando
AZURE_TENANT_ID,AZURE_CLIENT_IDyAZURE_CLIENT_SECRETestán todas configuradas. Si solo algunas están configuradas, se omite con una advertencia. - Azure CLI — ejecuta
az account get-access-tokenpara el ámbito de Azure DevOps, usando tu sesión deaz login. - Azure Developer CLI — usa tu sesión de
azd auth login. - Identidad administrada — para implementaciones alojadas en Azure. Fuera de Azure esta verificación es inalcanzable, por lo que está limitada por un tiempo de espera de 2 segundos y luego se omite, asegurando que la cadena nunca se cuelgue.
Si todas las fuentes fallan, el error devuelto enumera el fallo de cada fuente para que puedas ver exactamente por qué (por ejemplo, un error de consentimiento de Azure CLI junto con "azd no encontrado en PATH"), en lugar de solo el último intentado.
Para el desarrollo local, iniciar sesión con Azure CLI (abajo) es la opción más simple: debes haber ejecutado az login con acceso a la organización de Azure DevOps de destino.
Instalación de Azure CLI
Si no tienes Azure CLI instalado:
macOS (Homebrew):
brew install azure-cli
Windows (Scoop):
scoop install azure-cli
Windows (Chocolatey):
choco install azure-cli
Para otros métodos de instalación, consulta la guía oficial de instalación de Azure CLI.
Iniciar Sesión
Para autenticarte, ejecuta:
az login
Uso
Modo Stdio (Predeterminado)
Este es el modo estándar para clientes MCP (como Claude Desktop o Cursor). Este modo es preferible por seguridad, ya que garantiza que no se compartan credenciales a través de la red.
path/to/mcp-for-azure-devops-boards
Modo Servidor HTTP
También puedes ejecutarlo como servidor HTTP (SSE). Ten en cuenta que en este modo, el servidor escucha en 0.0.0.0 (todas las interfaces).
path/to/mcp-for-azure-devops-boards --server --port 3000
Configuración de MCP
Nota: Asegúrate de haber ejecutado az login en tu terminal para que el proceso pueda recoger las credenciales.
Configuración rápida con --install
La forma más rápida de registrar el servidor MCP con tu cliente preferido:
mcp-for-azure-devops-boards --install <target>
Destinos válidos y dónde escribe cada uno su configuración:
| Destino | Archivo de configuración | Ámbito |
|---|---|---|
claude-code | ~/.claude.json | Global (inicio) |
claude-desktop | macOS: ~/Library/Application Support/Claude/claude_desktop_config.jsonLinux: ~/.config/Claude/claude_desktop_config.jsonWindows: %APPDATA%\Claude\claude_desktop_config.json | Global (por usuario) |
cursor | ~/.cursor/mcp.json | Global (inicio) |
vscode | .vscode/mcp.json | Espacio de trabajo (directorio actual) |
codex | ~/.codex/config.toml | Global (inicio) |
gemini-cli | ~/.gemini/settings.json | Global (inicio) |
El comando detecta automáticamente la ruta del binario, resuelve la ubicación correcta del archivo de configuración y escribe la entrada en el formato esperado. La configuración existente se conserva.
Configuración manual
Claude Code
Archivo de configuración: ~/.claude.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop): Reemplaza la ruta del comando con
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
Claude Desktop
Ubicaciones del archivo de configuración:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop): Reemplaza la ruta del comando con
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
Cursor
Archivo de configuración: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop): Reemplaza la ruta del comando con
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
VS Code
Archivo de configuración: .vscode/mcp.json (nivel de espacio de trabajo)
{
"servers": {
"mcp-for-azure-devops-boards": {
"type": "stdio",
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop): Reemplaza la ruta del comando con
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
gemini-cli
Archivo de configuración: ~/.gemini/settings.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop): Reemplaza la ruta del comando con
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
Codex CLI
Archivo de configuración: ~/.codex/config.toml
[mcp_servers.mcp-for-azure-devops-boards]
command = "/opt/homebrew/bin/mcp-for-azure-devops-boards"
Windows (Scoop): Reemplaza la ruta del comando con
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
Herramientas Disponibles
Este software está actualmente en desarrollo. Las herramientas y sus parámetros están sujetos a cambios.
El servidor expone las siguientes herramientas para clientes MCP.
La estructura general de los nombres de las herramientas es azdo_VERB_WHAT (por ejemplo, azdo_list_teams, azdo_get_work_item).
Descubrimiento
azdo_list_organizations: Lista todas las organizaciones de Azure DevOps a las que el usuario autenticado tiene acceso.- Requerido: Ninguno (usa las credenciales del usuario autenticado)
azdo_list_projects: Lista todos los proyectos en una organización de Azure DevOps.- Requerido:
organization
- Requerido:
Work Items
Nota: Todas las herramientas de work items requieren los parámetros
organizationyproject.
azdo_create_work_item: Crea un nuevo work item.- Requerido:
organization,project,work_item_type,title - Opcional:
description,assigned_to,area_path,iteration_path,state,board_column,board_row,priority,severity,story_points,effort,remaining_work,tags,activity,parent_id,start_date,target_date,acceptance_criteria,repro_steps,fields(cadena JSON para campos personalizados).
- Requerido:
azdo_update_work_item: Actualiza un work item existente.- Requerido:
organization,project,id - Opcional: Todos los campos disponibles en la creación.
- Requerido:
azdo_get_work_item: Obtiene los detalles de un work item específico.- Requerido:
organization,project,id - Opcional:
include_latest_n_comments(número de comentarios recientes a incluir, -1 para todos)
- Requerido:
azdo_get_work_items: Obtiene múltiples work items por sus IDs.- Requerido:
organization,project,ids(matriz de IDs de work items) - Opcional:
include_latest_n_comments(número de comentarios recientes a incluir, -1 para todos)
- Requerido:
azdo_query_work_items: Consulta work items usando filtros estructurados.- Requerido:
organization,project - Filtros Opcionales:
area_path,iteration_path,created_date_from/to,modified_date_from/to. - Listas de Inclusión:
include_board_column,include_board_row,include_work_item_type,include_state,include_assigned_to,include_tags. - Listas de Exclusión:
exclude_board_column,exclude_board_row,exclude_work_item_type,exclude_state,exclude_assigned_to,exclude_tags. - Opcional:
include_latest_n_comments(número de comentarios recientes a incluir, -1 para todos)
- Requerido:
azdo_query_work_items_by_wiql: Ejecuta una consulta WIQL (Lenguaje de Consulta de Work Items) sin procesar.- Requerido:
organization,project,query - Opcional:
include_latest_n_comments(número de comentarios recientes a incluir, -1 para todos)
- Requerido:
azdo_add_comment: Agrega un comentario a un work item.- Requerido:
organization,project,work_item_id,text
- Requerido:
azdo_link_work_items: Crea una relación entre dos work items.- Requerido:
organization,project,source_id,target_id,link_type(Padre, Hijo, Relacionado, Duplicado, Dependencia).
- Requerido:
Boards y Equipos
Nota: Todas las herramientas de boards y equipos requieren los parámetros
organizationyproject.
azdo_list_teams: Lista todos los equipos en el proyecto.- Requerido:
organization,project
- Requerido:
azdo_get_team: Obtiene los detalles de un equipo específico.- Requerido:
organization,project,team_id
- Requerido:
azdo_list_team_boards: Lista los boards para un equipo específico.- Requerido:
organization,project,team_id
- Requerido:
azdo_get_team_board: Obtiene los detalles de un board específico.- Requerido:
organization,project,team_id,board_id
- Requerido:
azdo_list_work_item_types: Lista todos los tipos de work items disponibles en el proyecto.- Requerido:
organization,project
- Requerido:
azdo_list_tags: Lista todas las etiquetas en uso en el proyecto.- Requerido:
organization,project
- Requerido:
azdo_get_team_current_iteration: Obtiene la iteración/sprint activa actual para un equipo.- Requerido:
organization,project,team_id
- Requerido:
azdo_get_team_iterations: Obtiene todas las iteraciones/sprints para un equipo.- Requerido:
organization,project,team_id
- Requerido:
Contribuciones
¡Damos la bienvenida a las contribuciones!
- Haz un fork del repositorio.
- Crea una nueva rama para tu funcionalidad o corrección de errores (
git checkout -b feature/amazing-feature). - Confirma tus cambios.
- Empuja a tu rama.
- Abre una Solicitud de Extracción.
Compilación desde el Código Fuente
Requisitos Previos
Pasos
-
Clona el repositorio:
git clone https://github.com/danielealbano/mcp-for-azure-devops-boards.git cd mcp-for-azure-devops-boards -
Compila el proyecto:
cargo build --release
Herramientas
- Ejecutar pruebas:
cargo test - Verificar estilo de código:
cargo fmt --check - Linting:
cargo clippy
Aviso Legal
Este proyecto no está afiliado, respaldado ni patrocinado por Microsoft. Azure, Azure DevOps y las marcas comerciales relacionadas son propiedad de sus respectivos dueños. Este software utiliza las API estándar de los servicios de Microsoft para interactuar con Azure y Microsoft Graph, entre otros servicios.
Licencia
Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE.md para más detalles.