loading…
Search for a command to run...
loading…
An MCP server for Azure DevOps that allows users to manage work items, sprints, iterations, and attachments. It supports custom WIQL queries and includes pre-de
An MCP server for Azure DevOps that allows users to manage work items, sprints, iterations, and attachments. It supports custom WIQL queries and includes pre-defined prompts for common tasks like sprint planning, bug reporting, and daily standup generation.
Servidor MCP (Model Context Protocol) para Azure DevOps. Permite interactuar con Work Items, repositorios Git, Pull Requests, sprints, áreas, comentarios y adjuntos desde cualquier cliente MCP compatible.
npm install -g @slorenzot/mcp-azure
O usar directamente con npx:
npx @slorenzot/mcp-azure
El servidor se configura automáticamente usando las siguientes variables de entorno:
| Variable | Alternativa | Descripción | Requerido |
|---|---|---|---|
AZURE_DEVOPS_ORG |
ADO_ORG |
URL de la organización (ej: https://dev.azure.com/mi-org) |
Sí |
AZURE_DEVOPS_PAT |
ADO_PAT |
Personal Access Token | Sí |
AZURE_DEVOPS_PROJECT |
ADO_PROJECT |
Nombre del proyecto | No |
Agrega la siguiente configuración en tu archivo claude_desktop_config.json:
{
"mcpServers": {
"azure-devops": {
"command": "npx",
"args": ["-y", "@slorenzot/mcp-azure"],
"env": {
"AZURE_DEVOPS_ORG": "https://dev.azure.com/tu-organizacion",
"AZURE_DEVOPS_PAT": "tu-pat-aqui",
"AZURE_DEVOPS_PROJECT": "tu-proyecto"
}
}
}
}
OpenCode utiliza el mismo MCP, pero la configuración se puede hacer de dos formas:
Configura las variables de entorno en tu sistema o en tu configuración de OpenCode:
export AZURE_DEVOPS_ORG="https://dev.azure.com/tu-organizacion"
export AZURE_DEVOPS_PAT="tu-pat-aqui"
export AZURE_DEVOPS_PROJECT="tu-proyecto"
O agrega el servidor MCP en tu configuración de OpenCode:
{
"mcpServers": {
"azure-devops": {
"command": "npx",
"args": ["-y", "@slorenzot/mcp-azure"],
"env": {
"AZURE_DEVOPS_ORG": "https://dev.azure.com/tu-organizacion",
"AZURE_DEVOPS_PAT": "tu-pat-aqui",
"AZURE_DEVOPS_PROJECT": "tu-proyecto"
}
}
}
}
ado_configureOpenCode permite configurar la conexión directamente durante la sesión usando el comando ado_configure:
{
"organization": "https://dev.azure.com/tu-organizacion",
"project": "tu-proyecto",
"pat": "tu-pat-aqui"
}
Esta opción es útil para cambiar entre diferentes organizaciones o proyectos sin modificar el archivo de configuración.
Nota: Cuando usas ado_configure, la conexión persiste durante la sesión actual de OpenCode.
| Herramienta | Descripción |
|---|---|
ado_configure |
Configura la conexión con organización, proyecto y PAT |
| Herramienta | Descripción |
|---|---|
ado_get_work_item |
Obtiene un Work Item por su ID |
ado_create_work_item |
Crea un nuevo Work Item (User Story, Bug, Task, etc.) |
ado_update_work_item |
Actualiza un Work Item existente |
ado_get_work_item_type_fields |
Obtiene los campos disponibles/requeridos de un tipo |
| Herramienta | Descripción |
|---|---|
ado_query_sprint |
Consulta Work Items de un sprint específico |
ado_query_area |
Consulta Work Items de un área específica |
ado_query_wiql |
Ejecuta una consulta WIQL personalizada |
| Herramienta | Descripción |
|---|---|
ado_list_iterations |
Lista las iteraciones/sprints del proyecto |
ado_list_areas |
Lista las áreas del proyecto |
| Herramienta | Descripción |
|---|---|
ado_list_repositories |
Lista todos los repositorios Git del proyecto |
ado_get_repository |
Obtiene detalles de un repositorio específico por nombre o ID |
ado_list_branches |
Lista las ramas (branches) de un repositorio |
| Herramienta | Descripción |
|---|---|
ado_list_pull_requests |
Lista Pull Requests con filtros opcionales (status, branches, creador, revisor) |
ado_get_pull_request |
Obtiene detalles completos de un Pull Request |
ado_create_pull_request |
Crea un nuevo Pull Request |
ado_update_pull_request |
Actualiza propiedades de un Pull Request (título, descripción, draft) |
ado_complete_pull_request |
Completa (merge) un Pull Request con estrategia configurable |
ado_abandon_pull_request |
Abandona un Pull Request |
| Herramienta | Descripción |
|---|---|
ado_approve_pull_request |
Aprueba un Pull Request (voto: 10) |
ado_reject_pull_request |
Rechaza un Pull Request (voto: -10) |
ado_get_pull_request_reviewers |
Obtiene todos los revisores y sus votos de un Pull Request |
ado_add_pull_request_reviewer |
Agrega un revisor a un Pull Request |
| Herramienta | Descripción |
|---|---|
ado_get_pull_request_threads |
Obtiene todos los hilos de comentarios de un Pull Request |
ado_create_pull_request_thread |
Crea un nuevo hilo de comentarios (general o de código) |
ado_reply_to_pull_request_thread |
Responde a un hilo de comentarios existente |
| Herramienta | Descripción |
|---|---|
ado_get_pull_request_commits |
Obtiene todos los commits de un Pull Request |
ado_get_pull_request_work_items |
Obtiene los Work Items vinculados a un Pull Request |
ado_update_pull_request_thread_status |
Actualiza el estado de un hilo de comentarios (Fixed, WontFix, etc.) |
| Herramienta | Descripción |
|---|---|
ado_add_comment |
Agrega un comentario a un Work Item (soporta Markdown) |
ado_get_comments |
Obtiene los comentarios de un Work Item |
| Herramienta | Descripción |
|---|---|
ado_upload_attachment |
Sube un archivo y devuelve la URL del adjunto |
ado_add_attachment |
Agrega un adjunto a un Work Item |
ado_get_attachments |
Lista los adjuntos de un Work Item |
{
"title": "Implementar login con OAuth",
"type": "User Story",
"description": "Como usuario quiero poder iniciar sesión con mi cuenta de Google",
"areaPath": "MiProyecto\\Backend",
"iterationPath": "MiProyecto\\Sprint 5",
"fields": {
"Custom.OKR": "Seguridad",
"Custom.Prioridad": "Alta"
}
}
{
"wiql": "SELECT [System.Id], [System.Title] FROM WorkItems WHERE [System.State] = 'Active' AND [System.AssignedTo] = @Me ORDER BY [System.CreatedDate] DESC",
"getDetails": true
}
{
"id": 12345,
"comment": "## Análisis completado\n\n- Revisado el código\n- Identificados 3 issues\n\n**Próximo paso:** Corregir validaciones"
}
{
"workItemId": 12345,
"filePath": "/ruta/al/archivo.pdf",
"comment": "Documento de especificaciones",
"name": "Especificaciones Funcionales v2.0"
}
{
"workItemId": 12345,
"attachmentUrl": "https://dev.azure.com/org/proj/_apis/wit/attachments/abc123",
"comment": "Diseño de arquitectura",
"name": "Arquitectura del Sistema"
}
{
"includeHidden": false,
"top": 50
}
{
"status": "Active",
"top": 20
}
{
"repositoryId": "mi-repo",
"sourceRefName": "refs/heads/feature-login",
"targetRefName": "refs/heads/main",
"title": "Implementar login con OAuth",
"description": "Esta PR agrega soporte para login con Google OAuth",
"reviewerIds": ["12345678-1234-1234-1234-1234567890ab"],
"isDraft": false
}
{
"pullRequestId": 12345,
"repositoryId": "mi-repo"
}
{
"pullRequestId": 12345,
"repositoryId": "mi-repo",
"mergeStrategy": "Squash",
"deleteSourceBranch": true,
"mergeCommitMessage": "Merge de feature-login"
}
{
"pullRequestId": 12345,
"repositoryId": "mi-repo",
"content": "Por favor extraer esto en una función separada",
"filePath": "/src/components/Login.tsx",
"startLine": 45,
"endLine": 52
}
El servidor incluye prompts predefinidos para facilitar tareas comunes:
| Prompt | Descripción |
|---|---|
connect |
Guía para conectarse a Azure DevOps |
analyze_sprint |
Analiza el estado de un sprint |
create_user_story |
Crea una User Story estructurada |
daily_standup |
Genera un reporte de standup diario |
plan_sprint |
Ayuda a planificar un sprint |
bulk_update |
Actualiza múltiples Work Items |
project_report |
Genera un reporte del proyecto |
report_bug |
Crea un Bug report estructurado |
| Recurso | URI | Descripción |
|---|---|---|
| Estado de conexión | ado://connection/status |
Información del estado de conexión actual |
git clone https://github.com/slorenzot/mcp-azure.git
cd mcp-azure
npm install
npm run build
npm run build # Compila TypeScript
npm run start # Inicia el servidor
npm run dev # Modo desarrollo con watch
MIT
Soulberto Lorenzo - @slorenzot
2.4.1 - 34 herramientas disponibles para Azure DevOps (Work Items, Repositorios Git, Pull Requests, etc.)
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"slorenzot-mcp-azure": {
"command": "npx",
"args": []
}
}
}