TaskMateAI

Una aplicación de gestión de tareas impulsada por IA, controlable mediante MCP, que admite tareas, subtareas, prioridades y seguimiento del progreso.

Documentación

TaskMateAI

Aplicación de gestión de tareas TODO AI/MCP

TaskMateAI es una aplicación simple de gestión de tareas para que la IA gestione y ejecute tareas de forma autónoma, y se puede operar a través de MCP (Model Context Protocol).

README en inglés disponible aquí

Características

  • Creación y gestión de tareas a través de MCP
  • Soporte de subtareas
  • Procesamiento de tareas basado en prioridades
  • Gestión del progreso de tareas y funciones de informe
  • Función de agregar notas
  • Persistencia de datos mediante archivos JSON
  • Gestión de tareas de múltiples IA mediante ID de agente
  • Organización de tareas por proyecto

Instalación

Requisitos previos

  • Python 3.12 o superior
  • uv (gestor de paquetes de Python)
  • WSL (Subsistema de Windows para Linux) *en caso de entorno Windows

Pasos de instalación

  1. Clonar o descargar el repositorio:
git clone https://github.com/YourUsername/TaskMateAI.git
cd TaskMateAI
  1. Instalar los paquetes necesarios:
uv install -r requirements.txt

Uso

Inicio de la aplicación

En un entorno WSL, puede ejecutar la aplicación de la siguiente manera:

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

Configuración de MCP

Ejemplo de configuración para usar con 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": ""
        }
      }
    }
}

Herramientas MCP disponibles

TaskMateAI proporciona las siguientes herramientas MCP:

  1. get_tasks - Obtener la lista de tareas (se puede filtrar por estado o prioridad)
  2. get_next_task - Obtener la siguiente tarea de mayor prioridad (se actualiza automáticamente a estado en progreso)
  3. create_task - Crear una nueva tarea (con subtareas)
  4. update_progress - Actualizar el progreso de la tarea
  5. complete_task - Marcar la tarea como completada
  6. add_subtask - Agregar una subtarea a una tarea existente
  7. update_subtask - Actualizar el estado de la subtarea
  8. add_note - Agregar una nota a la tarea
  9. list_agents - Obtener la lista de IDs de agente disponibles
  10. list_projects - Obtener la lista de proyectos asociados a un agente específico

Formato de datos

Las tareas se gestionan con la siguiente estructura:

{
  "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"
    }
  ]
}

Almacenamiento de datos

Los datos de las tareas se guardan en una estructura jerá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 archivo de tarea se genera y actualiza automáticamente al ejecutar la aplicación.

Gestión de agentes y proyectos

Para gestionar tareas de un agente o proyecto específico, se pueden utilizar los siguientes métodos:

  1. Especificar el agente predeterminado en la configuración de MCP: al especificar agent_id en defaultArguments, se usará automáticamente en todas las solicitudes.

  2. Especificar el proyecto en la conversación con la IA: puede especificar en la conversación, por ejemplo, "agrega una nueva tarea al proyecto X".

  3. Especificación directa desde la IA: puede incluir agent_id y project_name en los parámetros de la solicitud.

Estructura del proyecto

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

Pruebas

TaskMateAI proporciona un conjunto completo de pruebas para garantizar la fiabilidad de las funciones.

Estructura de las pruebas

Las pruebas se gestionan con la siguiente estructura de directorios:

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 pruebas

  1. Pruebas unitarias: verifican que los componentes individuales de la aplicación funcionen correctamente.

    • test_task_utils.py: prueban funciones básicas como lectura/escritura de tareas y generación de ID.
    • test_mcp_tools.py: prueban las funciones de las herramientas MCP (creación, actualización, finalización de tareas, etc.)
    • test_agent_projects.py: prueban las funciones de gestión de ID de agente y proyectos.
  2. Pruebas de integración: verifican que múltiples componentes funcionen correctamente en conjunto (se planea ampliar en el futuro).

Cómo ejecutar las pruebas

Puede ejecutar las pruebas con los siguientes comandos:

  1. Ejecutar todas las pruebas:
cd /path/to/TaskMateAI
uv run python -m pytest -xvs
  1. Ejecutar un archivo de prueba específico:
uv run python -m pytest -xvs tests/unit/test_task_utils.py
  1. Ejecutar una clase de prueba específica:
uv run python -m pytest -xvs tests/unit/test_mcp_tools.py::TestMCPTools
  1. Ejecutar una función de prueba específica:
uv run python -m pytest -xvs tests/unit/test_task_utils.py::TestTaskUtils::test_read_tasks_with_data

Descripción de los argumentos de prueba:

  • -x: detiene las pruebas en el momento en que ocurre un error.
  • -v: muestra una salida detallada.
  • -s: muestra la salida estándar durante las pruebas.

Elementos planificados para corrección

  • Implementación de la función de plantillas de tareas
  • Construcción de un sistema de gestión de dependencias entre tareas
  • Adición de función de programación
  • Introducción de un sistema de clasificación de tareas por etiquetas
  • Implementación de la función de gestión de hitos

Licencia

MIT

Autor

NewAITees