Task Manager (Go)

Um servidor inteligente de gerenciamento de tarefas e projetos com análise de complexidade orientada por LLM e criação inteligente de subtarefas, utilizando armazenamento baseado em arquivos markdown.

Documentação

🚀 Servidor MCP Task Manager (Go)

Uma implementação poderosa em Go do servidor Model Context Protocol (MCP) para gerenciamento inteligente de tarefas e projetos. Este servidor integra-se perfeitamente com aplicações LLM para fornecer recursos avançados de gerenciamento de tarefas com análise automática de complexidade e criação inteligente de subtarefas.

✨ Recursos

📋 Gerenciamento Básico de Tarefas

  • Organização por Projetos: Crie e gerencie múltiplos projetos com arquivos de tarefas baseados em markdown
  • Tarefas Hierárquicas: Suporte para tarefas com subtarefas e dependências
  • Acompanhamento de Status: Gerenciamento abrangente de status (todo, in_progress, done, blocked)
  • Navegação Inteligente: Obtenha automaticamente as próximas tarefas não concluídas
  • Armazenamento em Arquivos: Arquivos markdown legíveis para facilitar o controle de versão

🧠 Inteligência Aprimorada (Baseada em LLM)

  • Análise de Complexidade: O LLM avalia a complexidade das tarefas e sugere divisões
  • Criação Inteligente de Subtarefas: Divida automaticamente tarefas complexas (recursivo até 3 níveis)
  • Gerenciamento de Escolhas: Lide com múltiplas abordagens de implementação com entrada estruturada do usuário
  • Registro de Decisões: Lembre e acompanhe as decisões do usuário nos arquivos do projeto

🏷️ Metadados Ricos

  • Categorias: [MVP], [AI], [UX], [INFRA] para classificação organizada de tarefas
  • Prioridades: P0 (Crítico), P1 (Alta), P2 (Média), P3 (Baixa)
  • Níveis de Complexidade: Baixa, Média, Alta com horas estimadas
  • Dependências: Acompanhe relacionamentos e pré-requisitos de tarefas

🚀 Início Rápido

Pré-requisitos

  • Go 1.21+: Baixar Go
  • Git: Para clonar o repositório
  • Cliente MCP: Qualquer cliente compatível com MCP (Claude Desktop, etc.)

Instalação

# Clone the repository
git clone https://github.com/gosvig123/mcp-task-manager-go.git
cd mcp-task-manager-go

# Install dependencies
go mod tidy

# Build the server
go build -o task-manager-go main.go

# Test the installation
go run cmd/test/main.go

Configuração

Crie um arquivo .env (opcional):

# Transport type (stdio or sse)
TRANSPORT=stdio

# For SSE transport (web-based clients)
HOST=0.0.0.0
PORT=8050

# Task storage directory (relative to project root)
TASKS_DIR=./tasks

# Task management settings
MAX_RECURSION_DEPTH=3
AUTO_SUBTASK_CREATION=true

🔧 Uso

Executando o Servidor

Método 1: Execução Direta (Stdio)

# Run with stdio transport (default)
./task-manager-go

# Or with Go run
go run main.go

Método 2: Transporte SSE (Baseado na Web)

# Set environment variable and run
TRANSPORT=sse ./task-manager-go

# Or export and run
export TRANSPORT=sse
./task-manager-go

🔌 Integração com Cliente MCP

Configuração do Claude Desktop

Adicione ao seu claude_desktop_config.json do Claude Desktop:

{
  "mcpServers": {
    "task-manager-go": {
      "command": "/path/to/your/task-manager-go",
      "env": {
        "TRANSPORT": "stdio",
        "TASKS_DIR": "tasks"
      }
    }
  }
}

Alternativa: Usando Go Run

{
  "mcpServers": {
    "task-manager-go": {
      "command": "go",
      "args": ["run", "main.go"],
      "cwd": "/path/to/mcp-task-manager-go",
      "env": {
        "TRANSPORT": "stdio"
      }
    }
  }
}

Configuração SSE (para clientes web)

{
  "mcpServers": {
    "task-manager-go": {
      "transport": "sse",
      "url": "http://localhost:8050/sse"
    }
  }
}

🛠️ Ferramentas MCP Disponíveis

📁 Gerenciamento de Projetos

  • create_task_file - Crie novos arquivos de tarefas de projeto

    Parameters: project_name (string)
    Returns: Confirmation with file path
    
  • list_projects - Liste todos os projetos disponíveis

    Parameters: None
    Returns: Array of project names
    

✅ Operações de Tarefas

  • add_task - Adicione tarefas com descrições e subtarefas

    Parameters:
      - project_name (string)
      - title (string)
      - description (string)
      - subtasks (array, optional)
      - batch_mode (boolean, optional)
    Returns: Confirmation message
    
  • update_task_status - Atualize o status de tarefas/subtarefas

    Parameters:
      - project_name (string)
      - task_title (string)
      - subtask_title (string, optional)
      - status (enum: todo|in_progress|done|blocked)
    Returns: Status update confirmation
    
  • get_next_task - Obtenha a próxima tarefa não concluída

    Parameters: project_name (string)
    Returns: JSON with task and subtask details
    

🧠 Recursos Avançados (Em Breve)

  • parse_prd - Converta PRDs em tarefas estruturadas
  • expand_task - Divida tarefas em subtarefas
  • estimate_task_complexity - Análise de complexidade baseada em LLM
  • suggest_next_actions - Sugestões com IA
  • get_task_dependencies - Acompanhe relacionamentos de tarefas
  • generate_task_file - Gere modelos de arquivos

📖 Exemplos de Uso

Fluxo de Trabalho Básico

  1. Crie um novo projeto:

    LLM: "Create a task file for my web app project"
    → Calls: create_task_file(project_name="web-app")
    
  2. Adicione tarefas com análise de complexidade:

    LLM: "Add a task to implement user authentication"
    → LLM analyzes complexity → High complexity detected
    → Calls: add_task(project_name="web-app", title="User Authentication",
              description="Implement secure user login/logout system",
              subtasks=["Set up auth middleware", "Create login endpoints", ...])
    
  3. Acompanhe o progresso:

    LLM: "What should I work on next?"
    → Calls: get_next_task(project_name="web-app")
    → Returns: {"task": "User Authentication", "subtask": "Set up auth middleware"}
    
  4. Atualize o status:

    LLM: "Mark the auth middleware as completed"
    → Calls: update_task_status(project_name="web-app",
              task_title="User Authentication",
              subtask_title="Set up auth middleware",
              status="done")
    

Exemplo de Saída de Arquivo de Tarefas

# Project Tasks

## Categories
- [MVP] Core functionality tasks
- [AI] AI-related features
- [UX] User experience improvements
- [INFRA] Infrastructure and setup

## Priority Levels
- P0: Blocker/Critical
- P1: High Priority
- P2: Medium Priority
- P3: Low Priority

## Task 1: [MVP] User Authentication (P0)

Implement secure user login/logout system with session management

### Dependencies:
- Task 2

### Complexity: high
Estimated hours: 16

### Subtasks:

- [x] Set up auth middleware
- [ ] Create login endpoints
- [ ] Add password hashing
- [ ] Implement session management

---

🏗️ Estrutura do Projeto

mcp-task-manager-go/
├── main.go                    # Entry point
├── cmd/
│   └── test/                  # Test utilities
├── internal/
│   ├── server/               # MCP server implementation
│   │   └── server.go         # Tool handlers and server setup
│   └── task/                 # Task management core
│       ├── models.go         # Data structures
│       ├── manager.go        # File operations
│       ├── markdown.go       # Markdown processing
│       └── validation.go     # Input validation
├── tasks/                    # Task files storage (created at runtime)
├── go.mod                    # Go module definition
└── README.md                 # This file

🧠 Sistema de Regras Aprimorado

Criação Automática de Subtarefas

O sistema divide inteligentemente tarefas complexas:

  1. Análise de Complexidade por LLM: O LLM chamador avalia as descrições das tarefas
  2. Divisão Automática: Tarefas de alta complexidade são divididas em subtarefas gerenciáveis
  3. Processamento Recursivo: Subtarefas também são analisadas (até 3 níveis de profundidade)
  4. Limites Inteligentes: Detecção de complexidade configurável

Gerenciamento de Escolhas

Lide com múltiplas abordagens de implementação:

  1. Detecção de Abordagens: O LLM identifica quando existem múltiplas abordagens
  2. Escolhas Estruturadas: Apresente opções em um formato claro
  3. Registro de Decisões: Armazene seleções do usuário nos arquivos do projeto
  4. Preservação de Contexto: Lembre decisões para referência futura

Exemplo de Fluxo de Escolhas

**Choice:** Choose authentication method
Options:
- [ ] JWT tokens
- [x] Session-based auth
- [ ] OAuth integration

Reasoning: Session-based auth is simpler for MVP and provides better security for this use case.

🔧 Desenvolvimento

Compilação

# Build for current platform
go build -o task-manager-go main.go

# Build for different platforms
GOOS=linux GOARCH=amd64 go build -o task-manager-go-linux main.go
GOOS=windows GOARCH=amd64 go build -o task-manager-go.exe main.go

Testes

# Run basic functionality test
go run cmd/test/main.go

# Run all tests (when implemented)
go test ./...

# Test with a real MCP client
./task-manager-go

Contribuição

  1. Faça um fork do repositório
  2. Crie um branch de recurso: git checkout -b feature-name
  3. Faça suas alterações e teste minuciosamente
  4. Faça commit com mensagens claras: git commit -m "Add feature X"
  5. Envie e crie um Pull Request

📋 Roadmap

  • Gerenciamento Básico de Tarefas - Operações CRUD básicas
  • Integração com Servidor MCP - Transportes Stdio e SSE
  • Armazenamento em Markdown - Arquivos de tarefas legíveis
  • Análise de PRD - Converta requisitos em tarefas
  • Ferramentas Avançadas - Análise de complexidade, sugestões
  • Fluxos de Escolha - Tomada de decisão interativa
  • Dependências - Gerenciamento de relacionamentos de tarefas
  • Modelos - Geração de arquivos a partir de tarefas

📄 Licença

Licença MIT - consulte o arquivo LICENSE para detalhes.

🤝 Suporte


Feito com ❤️ para o ecossistema MCP