PinkRoosterMcp
Sistema de gestión de proyectos autoalojado diseñado para agentes de codificación de IA. 24 herramientas MCP con cascadas de estado automáticas, seguimiento de dependencias, bucle de implementación autónomo y un panel de React. Configuración con Docker en un solo comando.
Documentación
PinkRoosterMcp
Gestión de proyectos que piensa en código, no en tickets.
El primer sistema de gestión de proyectos construido desde cero para agentes de codificación de IA — no un envoltorio alrededor de Jira o Linear.
Inicio rápido · ¿Por qué PinkRooster? · Panel · Herramientas MCP · Habilidades de PM · Primeros pasos
Inicio rápido
git clone https://github.com/pinkroosterai/PinkRoosterMcp.git
cd PinkRoosterMcp
make install
Eso es todo. make install descarga la imagen preconstruida desde Docker Hub, registra el servidor MCP en Claude Code, instala las habilidades de PM e inicia todos los contenedores. Sin cuentas, sin configuración, sin paso de compilación.
Panel en localhost:3000 · API en localhost:5100 · MCP en localhost:5200
¿Por qué PinkRooster?
Cualquier otro servidor MCP relacionado con PM es un envoltorio alrededor de un producto SaaS existente. PinkRoosterMcp está diseñado específicamente para agentes de IA — el modelo de datos, el formato de respuesta y las habilidades de flujo de trabajo están diseñados para el consumo de IA en primer lugar, con un panel para visibilidad humana.
El problema
Traditional workflow:
1. Open browser → find Jira ticket → read requirements
2. Switch to IDE → write code → run tests
3. Switch to browser → update ticket status → add comment
4. Repeat 50x per day
El flujo de trabajo de PinkRooster
You: /pm-next --auto
Agent: picks highest priority work → scaffolds plan → implements code →
runs tests → commits → updates all project state → picks next item →
repeats until done
You: ☕
Cómo se compara
| PinkRoosterMcp | Jira + envoltorio MCP | Linear + envoltorio MCP | |
|---|---|---|---|
| Construido para agentes de IA | Desde cero | Envoltorio API añadido | Envoltorio API añadido |
| Autoalojado | Imagen Docker única | Solo SaaS | Solo SaaS |
| Tiempo de configuración | 1 comando | Cuenta + OAuth + configuración | Cuenta + clave API + configuración |
| Cascadas de estado | Automáticas (5 niveles de profundidad) | Actualizaciones manuales | Actualizaciones manuales |
| Desglose de trabajo | El agente estructura desde la descripción | Escribes cada ticket | Escribes cada ticket |
| RBAC multiusuario | Integrado (4 roles, por proyecto) | Permisos a nivel de organización | Roles de espacio de trabajo |
| Memorias de proyecto | Contexto entre sesiones integrado | Ninguna | Ninguna |
| Modo autónomo | /pm-next --auto | Ninguno | Ninguno |
| Respuestas optimizadas para tokens | Diseñadas para agentes | Cargas verbosas orientadas a humanos | Cargas verbosas orientadas a humanos |
| Costo | Gratis (MIT) | $8-16/usuario/mes | $8-16/usuario/mes |
Características de un vistazo
Cascadas de estado automáticas
Completa una tarea y todo lo que está aguas arriba se actualiza automáticamente — sin preparación manual de tickets:
Task completed
└→ Phase auto-completes (all tasks done)
└→ Work Package auto-completes (all phases done)
├→ Linked Issue auto-resolved
└→ Linked Feature Request auto-completed
Las dependencias se bloquean y desbloquean automáticamente. El agente siempre sabe qué ocurrió aguas abajo mediante respuestas estructuradas de OperationResult con notificaciones de cambio de estado.
Bucle de implementación autónomo
Un solo comando impulsa todo el ciclo de vida de desarrollo:
/pm-next --auto
El agente selecciona el elemento de trabajo de mayor prioridad, estructura un plan si es necesario, implementa cada tarea (leyendo código, escribiendo cambios, ejecutando pruebas), hace commit después de cada paquete de trabajo y repite hasta que todo el trabajo esté terminado.
24 herramientas MCP
Cada herramienta está diseñada para el consumo de IA — respuestas compactas, próximos pasos accionables y notificaciones de cascada de estado. Estructura un paquete de trabajo completo con fases, tareas y dependencias en una sola llamada.
16 habilidades de flujo de trabajo de PM
Comandos de barra de alto nivel que codifican flujos de trabajo sofisticados de PM: /pm-scaffold analiza tu base de código para producir archivos objetivo realistas y notas de implementación. /pm-implement maneja el orden de dependencias, la ejecución de pruebas con corrección automática y las compuertas de verificación de fases. /pm-audit ejecuta agentes de análisis en paralelo en los dominios de calidad, seguridad, rendimiento y arquitectura. /pm-cleanup encuentra código muerto y estructura tareas de corrección.
Memorias de proyecto
Almacén de conocimiento persistente para decisiones, patrones y contexto que sobrevive entre sesiones de agentes. Semántica de fusión por nombre — escribir en una memoria existente agrega contenido y une etiquetas.
IDs legibles por humanos
proj-1-issue-3, proj-1-wp-2-task-5 — legibles tanto por agentes como por humanos en conversación. Sin GUIDs, sin IDs numéricos opacos.
Cuentas multiusuario y RBAC por proyecto
Sistema de cuentas de usuario integrado con hash de contraseñas Argon2id, gestión de sesiones y control de acceso basado en roles por proyecto. Cuatro roles (SuperUsuario, Administrador, Editor, Visor) brindan control granular sobre quién puede hacer qué en cada proyecto. El primer usuario obtiene automáticamente SuperUsuario. La autenticación por clave API para acceso MCP/programático se ejecuta en paralelo — sin sobrecarga de RBAC para agentes.
Observabilidad completa
Dos capas de auditoría: registros de auditoría de cambios de campo por entidad (valores antiguos/nuevos en cada campo) y registro de actividad de solicitudes HTTP (método, ruta, estado, duración, llamador). El panel muestra ambas.
Panel
Un panel React en tiempo real te permite ver todo lo que tu agente de IA está rastreando — de un vistazo o en detalle completo.
Resumen del proyecto
La página principal del panel muestra conteos activos, porcentajes de finalización y próximas acciones prioritarias en todos los tipos de entidad.
Seguimiento de incidencias
Filtra y ordena incidencias por gravedad, prioridad, tipo y estado. Las tarjetas de resumen muestran desgloses activos/inactivos/terminales con mini gráficos de dona.
Páginas de detalle enriquecidas
Cada entidad tiene una página de detalle estructurada con edición en línea, gestión de estado, entidades relacionadas, línea de tiempo y un registro de auditoría plegable.
Paquetes de trabajo
Los paquetes de trabajo son la unidad de ejecución — cada uno contiene fases y tareas con seguimiento de dependencias y propagación automática de estado.
Solicitudes de funciones
Rastrea ideas desde la propuesta hasta la finalización con un ciclo de vida de 8 estados. Vincula solicitudes de funciones a paquetes de trabajo para conectar el "qué" con el "cómo".
Registro de actividad
Cada solicitud API se registra con método, ruta, estado, duración e identidad del llamador — brindándote observabilidad completa del comportamiento del agente.
Cómo funciona
┌─────────────────┐ MCP (Streamable HTTP) ┌─────────────────┐
│ Claude Code / │ ◄──────────────────────────► │ MCP Server │
│ Cursor / etc. │ │ :5200 │
└─────────────────┘ └────────┬────────┘
│ HTTP
┌─────────────────┐ HTTP / REST ┌────────▼────────┐
│ Dashboard │ ◄──────────────────────────► │ REST API │
│ :3000 │ │ :5100 │
└─────────────────┘ └────────┬────────┘
│ EF Core
┌────────▼────────┐
│ PostgreSQL │
│ :5432 │
└─────────────────┘
Decisiones de diseño clave:
- El servidor MCP llama a la API a través de HTTP — sin acceso compartido a la base de datos, separación limpia
- IDs legibles por humanos en todas partes (
proj-1-issue-3,proj-1-wp-2-task-5) — fáciles tanto para agentes como para humanos - Las cascadas de estado son automáticas — completar todas las tareas de una fase completa la fase, lo que puede completar el paquete de trabajo, lo que puede completar incidencias y solicitudes de funciones vinculadas
- Registro de auditoría completo — cada cambio de campo se registra con valores antiguos/nuevos
Entidades
| Entidad | Propósito | Estados |
|---|---|---|
| Proyecto | Contenedor de nivel superior, identificado por ruta del sistema de archivos | Activo |
| Incidencia | Errores, defectos, regresiones, deuda técnica, rendimiento, seguridad | NoIniciado → Diseñando → Implementando → Probando → EnRevisión → Completado |
| Solicitud de función | Ideas y mejoras con contexto de negocio | Propuesta → EnRevisión → Aprobada → Programada → EnProgreso → Completada |
| Paquete de trabajo | Plan de ejecución con fases, tareas y dependencias | Igual que Incidencia + propagación ascendente automática |
| Fase | Agrupación de tareas relacionadas dentro de un paquete de trabajo | Se completa automáticamente cuando todas las tareas alcanzan estado terminal |
| Tarea | Unidad atómica de trabajo con archivos objetivo | Mismos estados que Incidencia, admite bloqueo por dependencias |
| Memoria de proyecto | Conocimiento almacenado, decisiones, patrones y contexto | Sin estado (sin ciclo de vida) |
| Usuario | Cuentas multiusuario con hash de contraseñas Argon2id | Activo / Inactivo (eliminación suave) |
| Rol de usuario en proyecto | Asignación de rol por proyecto (Administrador, Editor, Visor) | — |
Herramientas MCP
PinkRoosterMcp expone 24 herramientas MCP organizadas por entidad:
| Herramienta | Descripción |
|---|---|
get_project_status | Panel de estado compacto — conteos, elementos activos/bloqueados |
get_next_actions | Elementos accionables ordenados por prioridad con contexto enriquecido (nombres de entidades vinculadas, complejidad) |
create_or_update_issue | Crear o actualizar incidencias con soporte completo de campos |
get_issue_details / get_issue_overview | Leer datos de incidencias |
create_or_update_feature_request | Crear o actualizar solicitudes de funciones |
get_feature_request_details / get_feature_requests | Leer datos de solicitudes de funciones |
manage_user_stories | Agregar, actualizar o eliminar historias de usuario estructuradas en solicitudes de funciones |
create_or_update_work_package | Crear o actualizar paquetes de trabajo |
get_work_package_details / get_work_packages | Leer árboles de paquetes de trabajo |
scaffold_work_package | Creación en una sola llamada de WP + fases + tareas + dependencias |
create_or_update_phase / create_or_update_task | Gestionar fases y tareas (la fase admite creación de tareas por lotes) |
batch_update_task_states | Actualizar múltiples estados de tareas en una sola llamada con cascadas consolidadas |
verify_acceptance_criteria | Registrar resultados de verificación para criterios de aceptación de fases |
manage_dependency | Agregar/eliminar dependencias de WP o tareas con bloqueo automático (detección automática desde el formato de ID) |
list_memories / get_memory_details | Leer memorias de proyecto (filtrar por patrón de nombre o etiqueta) |
create_or_update_memory | Crear o fusionar memoria por nombre (agregar contenido, unir etiquetas) |
delete_memory | Eliminar permanentemente una memoria de proyecto |
delete_entity | Eliminar permanentemente una entidad por tipo con manejo de cascada |
Todas las operaciones de escritura devuelven JSON estructurado de OperationResult con cascadas de cambio de estado, para que el agente siempre sepa qué ocurrió aguas abajo.
Habilidades de flujo de trabajo de PM
Dieciséis comandos de barra de Claude Code proporcionan flujos de trabajo de gestión de proyectos de alto nivel sobre las herramientas MCP:
| Comando | Qué hace |
|---|---|
/pm-status | Mostrar panel del proyecto con conteos, elementos bloqueados y próximas acciones |
/pm-next [--auto] | Seleccionar el elemento de mayor prioridad y comenzar a implementar. --auto repite hasta terminar |
/pm-done <id> | Marcar entidad como completada, informar todas las cascadas |
/pm-implement <id> | Bucle de implementación completo — leer contexto, escribir código, ejecutar pruebas, actualizar estado |
/pm-scaffold <desc|id> | Estructurar un paquete de trabajo desde una descripción o incidencia/FR vinculada |
/pm-plan <desc> | Crear una incidencia o FR desde lenguaje natural, opcionalmente estructurar |
/pm-triage | Analizar y priorizar elementos abiertos |
/pm-refine-fr <fr-id> | Refinar una solicitud de función — reescribir descripción, agregar historias de usuario, completar vacíos |
/pm-explore [--limit N] | Analizar la base de código como PM y sugerir funciones orientadas al usuario |
/pm-verify <id> | Verificar criterios de aceptación para una fase o paquete de trabajo |
/pm-cleanup [--dry-run] | Analizar la base de código en busca de código muerto y deuda, estructurar un paquete de trabajo de limpieza |
/pm-codesmells | Escanear en busca de malos olores de código usando métricas basadas en umbrales — métodos largos, clases dios, anidamiento profundo y más |
/pm-housekeeping [--dry-run] | Eliminar entidades de proyecto obsoletas, canceladas, rechazadas o reemplazadas |
/pm-brainstorm [topic] | Lluvia de ideas interactiva de funciones mediante diálogo socrático e investigación web |
/pm-audit [--focus domain] | Auditoría proactiva de la base de código — crea incidencias rastreadas a partir de hallazgos confirmados |
/pm-troubleshoot | Diagnosticar la causa raíz de errores rastreando código, registros e historial de git |
Las habilidades propagan automáticamente el estado a las entidades relacionadas. Iniciar una tarea activa su paquete de trabajo y la incidencia/FR vinculada. Completar todas las tareas propaga la finalización hacia arriba a través de fases, paquetes de trabajo y entidades vinculadas.
Primeros pasos
Requisitos previos
- Docker y Docker Compose
- Claude Code (recomendado —
make installregistra automáticamente el servidor MCP) - .NET 9 SDK y Node.js 20+ (solo para desarrollo local)
Inicio rápido
git clone https://github.com/pinkroosterai/PinkRoosterMcp.git
cd PinkRoosterMcp
make install
Eso es todo. make install:
- Creará
.envcon valores predeterminados funcionales (sin necesidad de ediciones) - Registrará el servidor MCP en Claude Code (alcance global, se omite si no se encuentra la CLI)
- Instalará las habilidades de flujo de trabajo de PM en
~/.claude/skills/ - Descargará e iniciará la imagen preconstruida de Docker Hub (sin necesidad de compilación local)
Para compilar desde el código fuente en su lugar, usa make setup (mismos pasos pero compila la imagen localmente).
Los servicios estarán disponibles en:
| Servicio | URL |
|---|---|
| Panel de control | http://localhost:3000 |
| API REST | http://localhost:5100 |
| Servidor MCP | http://localhost:5200 |
| Swagger | http://localhost:5100/swagger/index.html |
Implementar con imagen de Docker Hub
Puedes ejecutar PinkRoosterMcp sin clonar el repositorio usando la imagen precompilada de Docker Hub.
- Crea un
docker-compose.yml:
services:
postgres:
image: postgres:17
environment:
POSTGRES_DB: pinkrooster
POSTGRES_USER: pinkrooster
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pinkrooster}
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U pinkrooster"]
interval: 5s
timeout: 5s
retries: 5
pinkrooster:
image: pinkrooster/pinkroostermcp:latest
ports:
- "3000:80" # Dashboard
- "5100:8080" # REST API
- "5200:8081" # MCP Server
environment:
DATABASE_URL: "Host=postgres;Database=pinkrooster;Username=pinkrooster;Password=${POSTGRES_PASSWORD:-pinkrooster}"
API_KEY: ${API_KEY:-}
MCP_API_KEY: ${MCP_API_KEY:-}
depends_on:
postgres:
condition: service_healthy
volumes:
pgdata:
- Inicia los servicios:
docker compose up -d
- Registra el servidor MCP en Claude Code:
claude mcp add --transport http --scope user pinkrooster http://localhost:5200
Para fijar una versión específica, reemplaza latest con una etiqueta de versión (por ejemplo, pinkrooster/pinkroostermcp:1.0.1).
Conecta tu agente de IA
Si ejecutaste make install con Claude Code instalado, el servidor MCP ya está registrado. Para otros clientes MCP, apúntalos a http://localhost:5200 (HTTP Streamable) o http://localhost:5200/sse (SSE heredado).
Configuración para desarrolladores
Para contribuyentes que realizan cambios en PinkRoosterMcp:
make setup-dev # Install deps, register MCP, start multi-image containers with hot reload
O usa procesos locales con recarga automática:
make dev # Start PostgreSQL in Docker + API/MCP/Dashboard locally with dotnet watch
make dev-api # API only (hot reload)
make dev-dashboard # Dashboard only (Vite dev server)
Autenticación
Panel de control: La autenticación multiusuario está integrada. En la primera visita, verás un formulario de registro: el primer usuario se convierte automáticamente en SuperUsuario. Los usuarios posteriores se crean mediante la página de gestión de Usuarios y se les asignan roles por proyecto (Administrador, Editor, Visor).
API / MCP: Autenticación opcional mediante clave de API. Todo funciona con acceso abierto por defecto. Para habilitarla, edita .env:
API_KEY=your-api-key # API authentication (required by MCP→API calls)
MCP_API_KEY=your-mcp-key # MCP server authentication (optional, separate from API_KEY)
Solución de problemas
| Problema | Solución |
|---|---|
| Puerto ya en uso | Detén los servicios en conflicto o cambia los puertos en docker-compose.yml |
| Contenedor no saludable | Ejecuta make logs para ver la salida de errores |
| MCP no registrado | Ejecuta claude mcp add --transport http --scope user pinkrooster http://localhost:5200 |
| Error de conexión a la base de datos | Asegúrate de que el contenedor de PostgreSQL esté saludable: docker compose ps |
Pruebas
# .NET integration tests (requires Docker for Testcontainers)
dotnet test
# Dashboard frontend tests
cd src/dashboard && npm test
Más de 700 pruebas: 343 pruebas de integración de API + 112 pruebas unitarias + 255 pruebas del frontend del panel de control. Tasa de aprobación E2E del MCP del 98.3% en 59 escenarios de prueba.
Pila tecnológica
| Capa | Tecnología |
|---|---|
| Servidor MCP | .NET 9, SDK de ModelContextProtocol |
| API REST | .NET 9, ASP.NET Core, Argon2id (Konscious.Security.Cryptography) |
| Base de datos | PostgreSQL 17, EF Core 9 |
| Panel de control | React 19, TypeScript, Vite, Tailwind CSS v4, shadcn/ui, TanStack Query/Table, Recharts |
| Pruebas | xUnit v3, Testcontainers, Respawn, Vitest, React Testing Library, MSW |
| Infraestructura | Docker Compose, nginx |
Contribuciones
¡Las contribuciones son bienvenidas! Consulta la sección Configuración para desarrolladores para comenzar. El proyecto usa make setup-dev para el flujo de trabajo completo del contribuyente con recarga automática en todos los servicios.
Licencia
MIT