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
- Clonar o descargar el repositorio:
git clone https://github.com/YourUsername/TaskMateAI.git
cd TaskMateAI
- 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:
- get_tasks - Obtener la lista de tareas (se puede filtrar por estado o prioridad)
- get_next_task - Obtener la siguiente tarea de mayor prioridad (se actualiza automáticamente a estado en progreso)
- create_task - Crear una nueva tarea (con subtareas)
- update_progress - Actualizar el progreso de la tarea
- complete_task - Marcar la tarea como completada
- add_subtask - Agregar una subtarea a una tarea existente
- update_subtask - Actualizar el estado de la subtarea
- add_note - Agregar una nota a la tarea
- list_agents - Obtener la lista de IDs de agente disponibles
- 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:
-
Especificar el agente predeterminado en la configuración de MCP: al especificar
agent_idendefaultArguments, se usará automáticamente en todas las solicitudes. -
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".
-
Especificación directa desde la IA: puede incluir
agent_idyproject_nameen 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
-
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.
-
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:
- Ejecutar todas las pruebas:
cd /path/to/TaskMateAI
uv run python -m pytest -xvs
- Ejecutar un archivo de prueba específico:
uv run python -m pytest -xvs tests/unit/test_task_utils.py
- Ejecutar una clase de prueba específica:
uv run python -m pytest -xvs tests/unit/test_mcp_tools.py::TestMCPTools
- 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