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
- Clone ou baixe o repositório:
git clone https://github.com/YourUsername/TaskMateAI.git
cd TaskMateAI
- 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:
- get_tasks - Obter lista de tarefas (filtrável por status ou prioridade)
- get_next_task - Obter a próxima tarefa de alta prioridade (atualiza automaticamente para status em andamento)
- create_task - Criar nova tarefa (com subtarefas)
- update_progress - Atualizar progresso da tarefa
- complete_task - Marcar tarefa como concluída
- add_subtask - Adicionar subtarefa a uma tarefa existente
- update_subtask - Atualizar status da subtarefa
- add_note - Adicionar nota a uma tarefa
- list_agents - Obter lista de IDs de agentes disponíveis
- 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:
-
Especificar o agente padrão na configuração do MCP: Ao especificar
defaultArgumentscomagent_id, ele será usado automaticamente em todas as solicitações. -
Especificar o projeto na conversa com a IA: Você pode especificar na conversa, por exemplo, "adicione uma nova tarefa ao projeto X".
-
Especificação direta pela IA: Você pode incluir
agent_ideproject_namenos 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
-
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.
-
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:
- Executar todos os testes:
cd /path/to/TaskMateAI
uv run python -m pytest -xvs
- Executar um arquivo de teste específico:
uv run python -m pytest -xvs tests/unit/test_task_utils.py
- Executar uma classe de teste específica:
uv run python -m pytest -xvs tests/unit/test_mcp_tools.py::TestMCPTools
- 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