TaskMateAI

Um aplicativo de gerenciamento de tarefas orientado por IA, controlável via MCP, com suporte a tarefas, subtarefas, prioridades e acompanhamento de progresso.

Documentação

TaskMateAI

Aplicativo de gerenciamento de tarefas TODO AI/MCP

O TaskMateAI é um aplicativo simples de gerenciamento de tarefas para que a IA gerencie e execute tarefas de forma autônoma, operável por meio do MCP (Model Context Protocol).

README em inglês disponível aqui

Recursos

  • Criação e gerenciamento de tarefas por meio do MCP
  • Suporte a subtarefas
  • Processamento de tarefas com base em prioridade
  • Gerenciamento de progresso e funcionalidade de relatórios de tarefas
  • Funcionalidade de adicionar notas
  • Persistência de dados via arquivo JSON
  • Gerenciamento de tarefas de múltiplas IAs por ID de agente
  • Organização de tarefas por projeto

Instalação

Pré-requisitos

  • Python 3.12 ou superior
  • uv (gerenciador de pacotes Python)
  • WSL (Subsistema Windows para Linux) *para ambientes Windows

Passos de instalação

  1. Clone ou baixe o repositório:
git clone https://github.com/YourUsername/TaskMateAI.git
cd TaskMateAI
  1. Instale os pacotes necessários:
uv install -r requirements.txt

Como usar

Iniciando o aplicativo

Em ambientes WSL, você pode executar o aplicativo da seguinte forma:

cd /path/to/TaskMateAI/src/TaskMateAI
uv run TaskMateAI

Configuração do MCP

Exemplo de configuração para uso com MCP:

{
    "mcpServers": {
      "TodoApplication": {
        "command": "uv",
        "args": [
          "--directory", 
          "/絶対パス/TaskMateAI",
          "run",
          "TaskMateAI"
        ],
        "env": {},
        "alwaysAllow": [
          "get_tasks", "get_next_task", "create_task", "update_progress", 
          "complete_task", "add_subtask", "update_subtask", "add_note",
          "list_agents", "list_projects"
        ],
        "defaultArguments": {
          "agent_id": "agent_123",
          "project_name": ""
        }
      }
    }
}
{
    "mcpServers": {
      "TodoApplication": {
        "command": "wsl.exe",
        "args": [
          "-e", 
          "bash", 
          "-c", 
          "cd /絶対パス/TaskMateAI && /home/ユーザー/.local/bin/uv run TaskMateAI"
        ],
        "env": {},
        "alwaysAllow": [
          "get_tasks", "get_next_task", "create_task", "update_progress", 
          "complete_task", "add_subtask", "update_subtask", "add_note",
          "list_agents", "list_projects"
        ],
        "defaultArguments": {
          "agent_id": "agent_123",
          "project_name": ""
        }
      }
    }
}

Ferramentas MCP disponíveis

O TaskMateAI fornece as seguintes ferramentas MCP:

  1. get_tasks - Obter lista de tarefas (filtrável por status ou prioridade)
  2. get_next_task - Obter a próxima tarefa de alta prioridade (atualiza automaticamente para status em andamento)
  3. create_task - Criar nova tarefa (com subtarefas)
  4. update_progress - Atualizar progresso da tarefa
  5. complete_task - Marcar tarefa como concluída
  6. add_subtask - Adicionar subtarefa a uma tarefa existente
  7. update_subtask - Atualizar status da subtarefa
  8. add_note - Adicionar nota a uma tarefa
  9. list_agents - Obter lista de IDs de agentes disponíveis
  10. list_projects - Obter lista de projetos associados a um agente específico

Formato de dados

As tarefas são gerenciadas com a seguinte estrutura:

{
  "id": 1,
  "title": "タスクのタイトル",
  "description": "タスクの詳細な説明",
  "priority": 3,
  "status": "todo",  // "todo", "in_progress", "done" のいずれか
  "progress": 0,     // 0-100 の進捗率
  "subtasks": [
    {
      "id": 1,
      "description": "サブタスクの説明",
      "status": "todo"  // "todo", "in_progress", "done" のいずれか
    }
  ],
  "notes": [
    {
      "id": 1,
      "content": "ノートの内容",
      "timestamp": "2025-02-28T09:22:53.532808"
    }
  ]
}

Armazenamento de dados

Os dados das tarefas são salvos em uma estrutura hierárquica:

output/
├── tasks.json                  # デフォルトのタスクファイル
├── agent1/
│   ├── tasks.json              # agent1のタスクファイル
│   ├── project1/
│   │   └── tasks.json          # agent1のproject1のタスクファイル
│   └── project2/
│       └── tasks.json          # agent1のproject2のタスクファイル
└── agent2/
    ├── tasks.json              # agent2のタスクファイル
    └── projectA/
        └── tasks.json          # agent2のprojectAのタスクファイル

Cada arquivo de tarefa é gerado e atualizado automaticamente durante a execução do aplicativo.

Gerenciamento de agentes e projetos

Para gerenciar tarefas de um agente ou projeto específico, você pode:

  1. Especificar o agente padrão na configuração do MCP: Ao especificar defaultArguments com agent_id, ele será usado automaticamente em todas as solicitações.

  2. Especificar o projeto na conversa com a IA: Você pode especificar na conversa, por exemplo, "adicione uma nova tarefa ao projeto X".

  3. Especificação direta pela IA: Você pode incluir agent_id e project_name nos parâmetros da solicitação.

Estrutura do projeto

TaskMateAI/
├── src/
│   └── TaskMateAI/
│       ├── __init__.py      # パッケージ初期化
│       └── __main__.py      # メインアプリケーションコード
├── output/                  # データ保存ディレクトリ
│   └── tasks.json           # タスクデータ (自動生成)
├── tests/                   # テストコード
│   ├── unit/                # ユニットテスト
│   └── integration/         # 統合テスト
├── requirements.txt         # 依存パッケージリスト
└── README.md                # このファイル

Testes

O TaskMateAI fornece um conjunto abrangente de testes para garantir a confiabilidade das funcionalidades.

Estrutura dos testes

Os testes são organizados na seguinte estrutura de diretórios:

tests/
├── __init__.py           # テストパッケージの初期化
├── conftest.py           # テスト用フィクスチャの定義
├── unit/                 # ユニットテスト
│   ├── __init__.py
│   ├── test_task_utils.py       # タスク関連ユーティリティのテスト
│   ├── test_mcp_tools.py        # MCPツール機能のテスト
│   └── test_agent_projects.py   # エージェントとプロジェクト管理のテスト
└── integration/          # 統合テスト
    └── __init__.py

Tipos de testes

  1. Testes unitários: Verificam se os componentes individuais do aplicativo funcionam corretamente.

    • test_task_utils.py: Testa funcionalidades básicas como leitura/escrita de tarefas e geração de IDs.
    • test_mcp_tools.py: Testa as funcionalidades das ferramentas MCP (criação, atualização, conclusão de tarefas, etc.).
    • test_agent_projects.py: Testa as funcionalidades de ID de agente e gerenciamento de projetos.
  2. Testes de integração: Verificam se múltiplos componentes funcionam corretamente em conjunto (expansão planejada para o futuro).

Como executar os testes

Você pode executar os testes usando os seguintes comandos:

  1. Executar todos os testes:
cd /path/to/TaskMateAI
uv run python -m pytest -xvs
  1. Executar um arquivo de teste específico:
uv run python -m pytest -xvs tests/unit/test_task_utils.py
  1. Executar uma classe de teste específica:
uv run python -m pytest -xvs tests/unit/test_mcp_tools.py::TestMCPTools
  1. Executar uma função de teste específica:
uv run python -m pytest -xvs tests/unit/test_task_utils.py::TestTaskUtils::test_read_tasks_with_data

Descrição dos argumentos de teste:

  • -x: Interrompe os testes no ponto em que ocorre um erro.
  • -v: Exibe saída detalhada.
  • -s: Exibe a saída padrão durante os testes.

Itens planejados para correção

  • Implementação de funcionalidade de modelo de tarefa
  • Construção de sistema de gerenciamento de dependências entre tarefas
  • Adição de funcionalidade de agendamento
  • Introdução de sistema de classificação de tarefas por tags
  • Implementação de funcionalidade de gerenciamento de marcos

Licença

MIT

Autor

NewAITees