MCP GitHub Issue Priority Server
Servidor de Priorización de Issues de GitHub para MCP
Un servidor del Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de IA gestionar issues de GitHub con una puntuación de prioridad determinista y una selección segura para concurrencia.
Inicio rápido
# 1. Install from npm (recommended)
npm install -g mcp-git-issue-priority
# 2. Authenticate (if not already using GitHub CLI)
gh auth login
# 3. Add to Claude Code (~/.claude.json){
"mcpServers": {
"github-issue-priority": {
"command": "mcp-git-issue-priority"
}
}
}# 4. Restart Claude Code and verify
# The MCP tools should appear when you run /mcpRelated MCP server: Project Manager MCP
Características
Selección de issues basada en prioridad: El algoritmo de puntuación determinista garantiza una priorización coherente de los issues entre sesiones.
Bloqueo seguro para concurrencia: El bloqueo atómico basado en archivos evita que múltiples sesiones de IA seleccionen el mismo issue.
Flujo de trabajo guiado: Flujo de trabajo de 8 fases (selección → investigación → rama → implementación → pruebas → confirmación → pr → revisión) con validación de transición.
Etiquetado automático: Crea y gestiona etiquetas de prioridad (
P0-P3), tipo (bug,feature,chore,docs) y estado.Detección de bloqueos obsoletos: Detecta y limpia automáticamente los bloqueos de procesos finalizados.
Registro de auditoría: Registro en líneas JSON para todas las operaciones con una retención de 30 días.
Instalación
Requisitos previos
Node.js 20+ - Descargar
GitHub CLI (recomendado) - Instalar y ejecutar
gh auth loginO bien: un token de acceso personal de GitHub con alcance
repo
Instalar desde npm (recomendado)
npm install -g mcp-git-issue-priorityInstalar una versión específica
npm install -g mcp-git-issue-priority@1.0.0Instalar desde el código fuente
git clone https://github.com/steiner385/mcp-git-issue-priority.git
cd mcp-git-issue-priority
npm install && npm linkSolución de problemas
Problema | Solución |
| Asegúrate de que el binario global de npm esté en tu PATH: |
| Ejecuta |
Errores de compilación durante la instalación | Asegúrate de tener instalado Node.js 20+: |
Configuración
Autenticación de GitHub
El servidor admite dos métodos de autenticación:
Recomendado: GitHub CLI (automático)
Si tienes instalado y autenticado GitHub CLI, el servidor recupera automáticamente tu token:
# One-time setup
gh auth loginEste es el enfoque recomendado: no se requiere gestión manual de tokens.
Alternativa: Variable de entorno
Configura GITHUB_TOKEN con un token de acceso personal que tenga alcance repo:
export GITHUB_TOKEN="ghp_your_personal_access_token"O configúralo en tus ajustes de MCP (ver más abajo).
Configuración de Claude Code
Añádelo a ~/.claude.json (global) o .claude/settings.json (proyecto):
{
"mcpServers": {
"github-issue-priority": {
"command": "mcp-git-issue-priority"
}
}
}¿Usas un token de acceso personal en lugar de GitHub CLI? Añade el token a la configuración:
{
"mcpServers": {
"github-issue-priority": {
"command": "mcp-git-issue-priority",
"env": {
"GITHUB_TOKEN": "ghp_your_personal_access_token"
}
}
}
}Verificar la instalación
Después de reiniciar Claude Code:
Ejecuta
/mcppara ver los servidores MCP disponiblesEl servidor
github-issue-prioritydebería aparecer con 13 herramientasPrueba
list_backlogen cualquier repositorio para confirmar que funciona
Herramientas disponibles
create_issue
Crea un nuevo issue de GitHub con etiquetas obligatorias de prioridad y tipo.
Arguments:
- title (required): Issue title
- body (optional): Issue description
- priority (required): P0 (critical) | P1 (high) | P2 (medium) | P3 (low)
- type (required): bug | feature | chore | docs
- repository (required): "owner/repo" formatselect_next_issue
Selecciona y bloquea el issue de mayor prioridad del backlog. Utiliza una puntuación determinista para garantizar una selección coherente.
Arguments:
- repository (required): "owner/repo" format
- type (optional): Filter by issue type
- maxPriority (optional): Only consider issues at or above this prioritylist_backlog
Enumera todos los issues abiertos en orden de prioridad sin adquirir bloqueos (solo lectura).
Arguments:
- repository (required): "owner/repo" format
- type (optional): Filter by issue type
- limit (optional): Maximum issues to return (default: 20)advance_workflow
Avanza el flujo de trabajo a la siguiente fase para un issue bloqueado.
Arguments:
- issueNumber (required): Issue number to advance
- targetPhase (required): research | branch | implementation | testing | commit | pr | review
- repository (required): "owner/repo" format
- testsPassed (optional): Required when advancing to 'commit' phase
- prTitle (optional): Required for 'pr' phase
- prBody (optional): Required for 'pr' phase
- skipJustification (optional): Required if skipping phasesget_workflow_status
Obtén el estado actual del flujo de trabajo para los issues bloqueados.
Arguments:
- issueNumber (optional): Specific issue number
- repository (optional): "owner/repo" formatrelease_lock
Libera el bloqueo de un issue (al finalizar, abandonar o fusionar).
Arguments:
- issueNumber (required): Issue number
- reason (required): completed | abandoned | merged
- repository (required): "owner/repo" formatforce_claim
Fuerza la reclamación de un issue bloqueado por otra sesión (requiere confirmación).
Arguments:
- issueNumber (required): Issue number to claim
- confirmation (required): Must be exactly "I understand this may cause conflicts"
- repository (required): "owner/repo" formatsync_backlog_labels
Detecta y, opcionalmente, corrige los issues a los que les faltan etiquetas obligatorias de prioridad/tipo/estado.
Arguments:
- repository (required): "owner/repo" format
- mode (optional): "report" (default) to list issues, "update" to apply labels
- defaultPriority (optional): P0 | P1 | P2 | P3 (defaults to P2)
- defaultType (optional): bug | feature | chore | docs (defaults to feature)En modo informe, devuelve una lista de todos los issues a los que les faltan etiquetas con detalles sobre lo que falta.
En modo actualización, aplica etiquetas predeterminadas a los issues:
Falta prioridad →
priority:P2(o el valor predeterminado especificado)Falta tipo →
type:feature(o el valor predeterminado especificado)Falta estado →
status:backlog
get_pr_status
Comprueba el estado de CI, el estado de aprobación y el estado de fusión de una solicitud de extracción.
Arguments:
- repository (required): "owner/repo" format
- prNumber (required): Pull request number to checkbulk_update_issues
Añade/elimina etiquetas y cierra/reabre múltiples issues a la vez.
Arguments:
- repository (required): "owner/repo" format
- issues (required): Array of issue numbers (1-50)
- addLabels (optional): Labels to add
- removeLabels (optional): Labels to remove
- state (optional): "open" | "closed"implement_batch
Comienza a implementar un lote de N issues en orden de prioridad. Devuelve el primer issue a implementar.
Arguments:
- repository (required): "owner/repo" format
- count (required): Number of issues to implement (1-10)
- includeTypes (optional): Only include these issue types
- excludeTypes (optional): Exclude these issue types
- maxPriority (optional): Only P0, P1, etc.batch_continue
Continúa la implementación por lotes. Espera a la fusión de la PR y luego devuelve el siguiente issue o la finalización.
Arguments:
- batchId (required): Batch ID from implement_batch
- prNumber (optional): PR number for current issueget_workflow_analytics
Obtén análisis del flujo de trabajo basados en el tiempo: tiempo de ciclo, desglose de fases, informes de antigüedad.
Arguments:
- repository (required): "owner/repo" format
- period (optional): "7d" | "30d" | "90d" | "all" (default: 30d)Algoritmo de puntuación de prioridad
Los issues se puntúan utilizando una fórmula determinista:
score = (basePoints + ageBonus) * blockingMultiplier * blockedPenaltyPuntos base: P0=1000, P1=100, P2=10, P3=1
Bono por antigüedad: +1 punto por día desde la creación (máximo 365)
Multiplicador de bloqueo: 1.5x para issues con la etiqueta "blocking"
Penalización por estar bloqueado: 0.1x para issues bloqueados por issues padres abiertos (a través de sub-issues de GitHub)
Desempate: Gana la fecha de creación más antigua (FIFO)
Detección de dependencias
Los issues con issues padres abiertos (usando la función de sub-issues de GitHub) se despriorizan automáticamente con una penalización de 0.1x. Esto asegura que el trabajo bloqueado se desplace al final del backlog hasta que se resuelvan sus dependencias. Una vez que se cierra un issue padre, la prioridad del issue hijo vuelve a la normalidad.
Fases del flujo de trabajo
selection: Issue seleccionado y bloqueado
research: Comprensión del problema
branch: Rama de funcionalidad creada
implementation: Cambios de código en progreso
testing: Ejecución de pruebas y validación
commit: Cambios confirmados
pr: Solicitud de extracción creada
review: Esperando revisión/fusión
Almacenamiento de datos
Todos los datos se almacenan localmente en ~/.mcp-git-issue-priority/:
~/.mcp-git-issue-priority/
├── locks/ # Active lock files (.lockdata)
├── workflow/ # Workflow state files (.json)
└── logs/ # Audit logs (JSON Lines format)Desarrollo
Compilación
npm run buildPruebas
npm testLint
npm run lintVerificación de tipos
npm run typecheckLanzamiento (Mantenedores)
Configuración única
Crea una cuenta de npm en https://www.npmjs.com/
Crea un token de "Automation" con permiso de "Publish"
Añádelo a GitHub: Settings → Secrets → Actions → New secret llamado
NPM_TOKEN
Crear un lanzamiento
# Patch release (bug fixes): 1.0.0 → 1.0.1
npm version patch -m "Release v%s"
git push && git push --tags
# Minor release (new features): 1.0.0 → 1.1.0
npm version minor -m "Release v%s"
git push && git push --tags
# Major release (breaking changes): 1.0.0 → 2.0.0
npm version major -m "Release v%s"
git push && git push --tagsAl enviar una etiqueta (tag) se activa el flujo de trabajo de lanzamiento que:
Ejecuta lint, compilación y pruebas
Crea un lanzamiento en GitHub con el archivo tarball adjunto
Publica en el registro de npm
Seguimiento de descargas
GitHub: La página de lanzamientos muestra el recuento de descargas por activo
.tgznpm: https://www.npmjs.com/package/mcp-git-issue-priority muestra las descargas semanales
Licencia
Licencia MIT - ver LICENSE para más detalles.
Contribución
¡Las contribuciones son bienvenidas! Por favor, consulta CONTRIBUTING.md para conocer las directrices.
Comentarios y soporte
¡Nos encantaría saber de ti! Tus comentarios ayudan a mejorar esta herramienta para todos.
¿Preguntas o ideas? Inicia una Discusión
¿Encontraste un error? Abre un issue
¿Solicitud de funcionalidad? Abre un issue con
[Feature]en el título¿Comentarios rápidos? Ejecuta
mcp-git-issue-priority --feedbackpara abrir la página de comentarios
Comprueba los issues existentes antes de crear otros nuevos.
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Assign Linear, Jira or GitHub issues to an AI coding agent team that plans, builds, reviews, tests.
The issue tracker AI coding agents pull work from: atomic claims, dependency-aware dispatch.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Related MCP Servers
- -licenseBqualityNot gradedmaintenanceEnables AI-driven orchestration of GitHub development workflows including automated issue analysis, code generation, code review, and PR creation through multiple specialized agents. Integrates with GitHub Actions to automate the complete development process from issue to pull request.7-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage projects, epics, and tasks with atomic locking, real-time dashboard, and multi-agent coordination.MIT
- AlicenseAqualityAmaintenanceEnables AI coding agents to orchestrate the full software development lifecycle on GitHub, including planning, issue creation, code review, security triage, and release readiness checks.1365 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables multiple AI coding agents to collaborate on the same Git repository without conflicts through isolated worktrees, file locking, automated test verification, and a serialized merge queue.4 npm7MIT