PinkRoosterMcp
Sistema de gerenciamento de projetos auto-hospedado, construído para agentes de codificação de IA. 24 ferramentas MCP com cascatas de estado automáticas, rastreamento de dependências, loop de implementação autônomo e um painel React. Configuração Docker com um comando.
Documentação
PinkRoosterMcp
Gerenciamento de projetos que pensa em código, não em tickets.
O primeiro sistema de gerenciamento de projetos construído do zero para agentes de codificação de IA — não um wrapper em torno de Jira ou Linear.
Início Rápido · Por que PinkRooster? · Dashboard · Ferramentas MCP · Habilidades de GP · Começando
Início Rápido
git clone https://github.com/pinkroosterai/PinkRoosterMcp.git
cd PinkRoosterMcp
make install
É isso. make install baixa a imagem pré-construída do Docker Hub, registra o servidor MCP no Claude Code, instala as habilidades de GP e inicia todos os contêineres. Sem contas, sem configuração, sem etapa de build.
Dashboard em localhost:3000 · API em localhost:5100 · MCP em localhost:5200
Por que PinkRooster?
Todo outro servidor MCP relacionado a GP é um wrapper em torno de um produto SaaS existente. O PinkRoosterMcp é projetado especificamente para agentes de IA — o modelo de dados, o formato de resposta e as habilidades de fluxo de trabalho são desenhados para consumo por IA em primeiro lugar, com um dashboard para visibilidade humana.
O 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
O Fluxo de Trabalho 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: ☕
Como se Compara
| PinkRoosterMcp | Jira + Wrapper MCP | Linear + Wrapper MCP | |
|---|---|---|---|
| Construído para agentes de IA | Do zero | Wrapper de API acoplado | Wrapper de API acoplado |
| Auto-hospedado | Imagem Docker única | Somente SaaS | Somente SaaS |
| Tempo de configuração | 1 comando | Conta + OAuth + config | Conta + chave de API + config |
| Cascatas de estado | Automáticas (5 níveis de profundidade) | Atualizações manuais | Atualizações manuais |
| Decomposição do trabalho | Agente estrutura a partir da descrição | Você escreve cada ticket | Você escreve cada ticket |
| RBAC multiusuário | Integrado (4 papéis, por projeto) | Permissões em nível de organização | Papéis de workspace |
| Memórias de projeto | Contexto entre sessões integrado | Nenhum | Nenhum |
| Modo autônomo | /pm-next --auto | Nenhum | Nenhum |
| Respostas otimizadas para tokens | Projetado para agentes | Payloads verbosos voltados a humanos | Payloads verbosos voltados a humanos |
| Custo | Gratuito (MIT) | US$ 8–16/usuário/mês | US$ 8–16/usuário/mês |
Recursos de Relance
Cascatas de Estado Automáticas
Conclua uma tarefa e tudo a montante é atualizado automaticamente — sem triagem 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
Dependências bloqueiam e desbloqueiam automaticamente. O agente sempre sabe o que aconteceu a jusante por meio de respostas OperationResult estruturadas com notificações de mudança de estado.
Loop de Implementação Autônomo
Um único comando conduz todo o ciclo de vida de desenvolvimento:
/pm-next --auto
O agente seleciona o item de trabalho de maior prioridade, estrutura um plano se necessário, implementa cada tarefa (lendo código, escrevendo alterações, executando testes), faz commit após cada pacote de trabalho e repete até que todo o trabalho esteja concluído.
24 Ferramentas MCP
Cada ferramenta é projetada para consumo por IA — respostas compactas, próximos passos acionáveis e notificações de cascata de estado. Estruture um pacote de trabalho inteiro com fases, tarefas e dependências em uma única chamada.
16 Habilidades de Fluxo de Trabalho de GP
Comandos de barra de alto nível que codificam fluxos de trabalho sofisticados de GP: /pm-scaffold analisa seu código para produzir arquivos-alvo realistas e notas de implementação. /pm-implement lida com ordenação de dependências, execução de testes com correção automática e portões de verificação de fase. /pm-audit executa agentes de análise em paralelo nas áreas de qualidade, segurança, desempenho e arquitetura. /pm-cleanup encontra código morto e estrutura tarefas de correção.
Memórias de Projeto
Armazenamento persistente de conhecimento para decisões, padrões e contexto que sobrevive entre sessões de agente. Semântica de mesclagem por nome — gravar em uma memória existente acrescenta conteúdo e une tags.
IDs Legíveis por Humanos
proj-1-issue-3, proj-1-wp-2-task-5 — legíveis tanto por agentes quanto por humanos em conversas. Sem GUIDs, sem IDs numéricos opacos.
Contas Multiusuário e RBAC por Projeto
Sistema de contas de usuário integrado com hash de senha Argon2id, gerenciamento de sessão e controle de acesso baseado em papéis por projeto. Quatro papéis (SuperUser, Admin, Editor, Viewer) oferecem controle granular sobre quem pode fazer o quê em cada projeto. O primeiro usuário recebe SuperUser automaticamente. A autenticação por chave de API para acesso MCP/programático roda em paralelo — sem sobrecarga de RBAC para agentes.
Observabilidade Completa
Duas camadas de auditoria: logs de auditoria de alteração de campo por entidade (valores antigos/novos em cada campo) e registro de atividade de solicitações HTTP (método, caminho, status, duração, chamador). O dashboard exibe ambas.
Dashboard
Um dashboard React em tempo real permite que você veja tudo o que seu agente de IA está rastreando — de relance ou em detalhes completos.
Visão Geral do Projeto
A página inicial do dashboard mostra contagens ativas, percentuais de conclusão e próximas ações prioritárias em todos os tipos de entidade.
Rastreamento de Problemas
Filtre e ordene problemas por gravidade, prioridade, tipo e estado. Cartões de resumo mostram divisões ativo/inativo/terminal com mini gráficos de rosca.
Páginas de Detalhes Ricas
Toda entidade tem uma página de detalhes estruturada com edição inline, gerenciamento de estado, entidades relacionadas, linha do tempo e um log de auditoria recolhível.
Pacotes de Trabalho
Pacotes de trabalho são a unidade de execução — cada um contém fases e tarefas com rastreamento de dependências e propagação automática de estado.
Solicitações de Recursos
Acompanhe ideias da proposta à conclusão com um ciclo de vida de 8 estados. Vincule solicitações de recursos a pacotes de trabalho para conectar o "o quê" ao "como".
Log de Atividades
Toda solicitação de API é registrada com método, caminho, status, duração e identidade do chamador — dando a você observabilidade total do comportamento do agente.
Como Funciona
┌─────────────────┐ MCP (Streamable HTTP) ┌─────────────────┐
│ Claude Code / │ ◄──────────────────────────► │ MCP Server │
│ Cursor / etc. │ │ :5200 │
└─────────────────┘ └────────┬────────┘
│ HTTP
┌─────────────────┐ HTTP / REST ┌────────▼────────┐
│ Dashboard │ ◄──────────────────────────► │ REST API │
│ :3000 │ │ :5100 │
└─────────────────┘ └────────┬────────┘
│ EF Core
┌────────▼────────┐
│ PostgreSQL │
│ :5432 │
└─────────────────┘
Principais decisões de design:
- O servidor MCP chama a API via HTTP — sem acesso compartilhado ao banco de dados, separação limpa
- IDs legíveis por humanos em todo lugar (
proj-1-issue-3,proj-1-wp-2-task-5) — fáceis tanto para agentes quanto para humanos - Cascatas de estado automáticas — concluir todas as tarefas de uma fase conclui a fase, o que pode concluir o pacote de trabalho, o que pode concluir problemas e solicitações de recursos vinculados
- Trilha de auditoria completa — toda alteração de campo é registrada com valores antigos/novos
Entidades
| Entidade | Propósito | Estados |
|---|---|---|
| Projeto | Contêiner de nível superior, identificado pelo caminho do sistema de arquivos | Ativo |
| Problema | Bugs, defeitos, regressões, dívida técnica, desempenho, segurança | NãoIniciado → Projetando → Implementando → Testando → EmRevisão → Concluído |
| Solicitação de Recurso | Ideias e melhorias com contexto de negócio | Proposta → EmRevisão → Aprovada → Agendada → EmProgresso → Concluída |
| Pacote de Trabalho | Plano de execução com fases, tarefas e dependências | Mesmo que Problema + propagação ascendente automática |
| Fase | Agrupamento de tarefas relacionadas dentro de um pacote de trabalho | Conclui automaticamente quando todas as tarefas atingem estado terminal |
| Tarefa | Unidade atômica de trabalho com arquivos-alvo | Mesmos estados que Problema, suporta bloqueio por dependência |
| Memória de Projeto | Conhecimento armazenado, decisões, padrões e contexto | Sem estado (sem ciclo de vida) |
| Usuário | Contas multiusuário com hash de senha Argon2id | Ativo / Inativo (exclusão suave) |
| Papel de Usuário no Projeto | Atribuição de papel por projeto (Admin, Editor, Viewer) | — |
Ferramentas MCP
O PinkRoosterMcp expõe 24 ferramentas MCP organizadas por entidade:
| Ferramenta | Descrição |
|---|---|
get_project_status | Dashboard de status compacto — contagens, itens ativos/bloqueados |
get_next_actions | Itens acionáveis ordenados por prioridade com contexto enriquecido (nomes de entidades vinculadas, complexidade) |
create_or_update_issue | Criar ou atualizar problemas com suporte completo a campos |
get_issue_details / get_issue_overview | Ler dados de problemas |
create_or_update_feature_request | Criar ou atualizar solicitações de recursos |
get_feature_request_details / get_feature_requests | Ler dados de solicitações de recursos |
manage_user_stories | Adicionar, atualizar ou remover histórias de usuário estruturadas em solicitações de recursos |
create_or_update_work_package | Criar ou atualizar pacotes de trabalho |
get_work_package_details / get_work_packages | Ler árvores de pacotes de trabalho |
scaffold_work_package | Criação em uma chamada de PT + fases + tarefas + dependências |
create_or_update_phase / create_or_update_task | Gerenciar fases e tarefas (fase suporta criação em lote de tarefas) |
batch_update_task_states | Atualizar múltiplos estados de tarefas em uma chamada com cascatas consolidadas |
verify_acceptance_criteria | Registrar resultados de verificação para critérios de aceite de fase |
manage_dependency | Adicionar/remover dependências de PT ou tarefa com bloqueio automático (detecta automaticamente pelo formato do ID) |
list_memories / get_memory_details | Ler memórias de projeto (filtrar por padrão de nome ou tag) |
create_or_update_memory | Criar ou mesclar memória por nome (acrescentar conteúdo, unir tags) |
delete_memory | Excluir permanentemente uma memória de projeto |
delete_entity | Excluir permanentemente uma entidade por tipo com tratamento de cascata |
Todas as operações de escrita retornam JSON OperationResult estruturado com cascatas de mudança de estado, para que o agente sempre saiba o que aconteceu a jusante.
Habilidades de Fluxo de Trabalho de GP
Dezesseis comandos de barra do Claude Code fornecem fluxos de trabalho de gerenciamento de projetos de alto nível sobre as ferramentas MCP:
| Comando | O que faz |
|---|---|
/pm-status | Mostrar dashboard do projeto com contagens, itens bloqueados e próximas ações |
/pm-next [--auto] | Selecionar o item de maior prioridade e começar a implementar. --auto repete até concluir |
/pm-done <id> | Marcar entidade como concluída, relatar todas as cascatas |
/pm-implement <id> | Loop de implementação completo — ler contexto, escrever código, executar testes, atualizar estado |
/pm-scaffold <desc|id> | Estruturar um pacote de trabalho a partir de uma descrição ou problema/FR vinculado |
/pm-plan <desc> | Criar um problema ou FR a partir de linguagem natural, opcionalmente estruturar |
/pm-triage | Analisar e priorizar itens abertos |
/pm-refine-fr <fr-id> | Refinar uma solicitação de recurso — reescrever descrição, adicionar histórias de usuário, preencher lacunas |
/pm-explore [--limit N] | Analisar o código como um GP e sugerir recursos voltados ao usuário |
/pm-verify <id> | Verificar critérios de aceite para uma fase ou pacote de trabalho |
/pm-cleanup [--dry-run] | Analisar o código em busca de código morto e dívida, estruturar um pacote de trabalho de limpeza |
/pm-codesmells | Escanear por code smells usando métricas baseadas em limites — métodos longos, god classes, aninhamento profundo e mais |
/pm-housekeeping [--dry-run] | Excluir entidades de projeto obsoletas, canceladas, rejeitadas ou substituídas |
/pm-brainstorm [topic] | Brainstorming interativo de recursos via diálogo socrático e pesquisa na web |
/pm-audit [--focus domain] | Auditoria proativa de código — cria problemas rastreados a partir de descobertas confirmadas |
/pm-troubleshoot | Diagnosticar a causa raiz de bugs rastreando código, logs e histórico do git |
As habilidades propagam automaticamente o estado para entidades relacionadas. Iniciar uma tarefa ativa seu pacote de trabalho e problema/FR vinculado. Concluir todas as tarefas propaga a conclusão para cima através de fases, pacotes de trabalho e entidades vinculadas.
Começando
Pré-requisitos
- Docker e Docker Compose
- Claude Code (recomendado —
make installregistra automaticamente o servidor MCP) - .NET 9 SDK e Node.js 20+ (apenas para desenvolvimento local)
Início Rápido
git clone https://github.com/pinkroosterai/PinkRoosterMcp.git
cd PinkRoosterMcp
make install
É isso. make install irá:
- Criar
.envcom padrões funcionais (sem necessidade de edições) - Registrar o servidor MCP no Claude Code (escopo global, ignorado se a CLI não for encontrada)
- Instalar habilidades de fluxo de trabalho de GP em
~/.claude/skills/ - Baixar e iniciar a imagem pré-construída do Docker Hub (sem necessidade de build local)
Para compilar a partir do código-fonte, use make setup (mesmos passos, mas compila a imagem localmente).
Os serviços estarão disponíveis em:
| Serviço | URL |
|---|---|
| Dashboard | http://localhost:3000 |
| REST API | http://localhost:5100 |
| MCP Server | http://localhost:5200 |
| Swagger | http://localhost:5100/swagger/index.html |
Deploy com Imagem do Docker Hub
Você pode executar o PinkRoosterMcp sem clonar o repositório usando a imagem pré-construída do Docker Hub.
- Crie um
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:
- Inicie os serviços:
docker compose up -d
- Registre o servidor MCP no Claude Code:
claude mcp add --transport http --scope user pinkrooster http://localhost:5200
Para fixar uma versão específica, substitua latest por uma tag de versão (por exemplo, pinkrooster/pinkroostermcp:1.0.1).
Conecte Seu Agente de IA
Se você executou make install com o Claude Code instalado, o servidor MCP já está registrado. Para outros clientes MCP, aponte-os para http://localhost:5200 (Streamable HTTP) ou http://localhost:5200/sse (SSE legado).
Configuração para Desenvolvedores
Para contribuidores que fazem alterações no PinkRoosterMcp:
make setup-dev # Install deps, register MCP, start multi-image containers with hot reload
Ou use processos locais com hot reload:
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)
Autenticação
Dashboard: A autenticação multiusuário é integrada. Na primeira visita, você verá um formulário de registro — o primeiro usuário se torna automaticamente SuperUser. Os usuários subsequentes são criados pela página de gerenciamento de Usuários e recebem funções por projeto (Admin, Editor, Viewer).
API / MCP: Autenticação opcional por chave de API. Tudo roda com acesso aberto por padrão. Para habilitar, edite .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)
Solução de Problemas
| Problema | Solução |
|---|---|
| Porta já em uso | Pare os serviços conflitantes ou altere as portas em docker-compose.yml |
| Contêiner não saudável | Execute make logs para ver a saída de erro |
| MCP não registrado | Execute claude mcp add --transport http --scope user pinkrooster http://localhost:5200 |
| Erro de conexão com o banco de dados | Garanta que o contêiner PostgreSQL esteja saudável: docker compose ps |
Testes
# .NET integration tests (requires Docker for Testcontainers)
dotnet test
# Dashboard frontend tests
cd src/dashboard && npm test
Mais de 700 testes: 343 testes de integração de API + 112 testes unitários + 255 testes de frontend do dashboard. Taxa de aprovação de 98,3% nos testes E2E do MCP em 59 cenários de teste.
Stack Tecnológica
| Camada | Tecnologia |
|---|---|
| MCP Server | .NET 9, ModelContextProtocol SDK |
| REST API | .NET 9, ASP.NET Core, Argon2id (Konscious.Security.Cryptography) |
| Banco de Dados | PostgreSQL 17, EF Core 9 |
| Dashboard | React 19, TypeScript, Vite, Tailwind CSS v4, shadcn/ui, TanStack Query/Table, Recharts |
| Testes | xUnit v3, Testcontainers, Respawn, Vitest, React Testing Library, MSW |
| Infraestrutura | Docker Compose, nginx |
Contribuição
Contribuições são bem-vindas! Consulte a seção Configuração para Desenvolvedores para começar. O projeto usa make setup-dev para o fluxo de trabalho completo de contribuição com hot reload em todos os serviços.
Licença
MIT