Integrations
Servidor del Administrador de tareas MCP
Un servidor de Protocolo de Contexto de Modelo (MCP) local que proporciona herramientas de backend para la gestión de proyectos y tareas impulsados por el cliente mediante una base de datos SQLite.
Descripción general
Este servidor actúa como un backend persistente para clientes locales de MCP (como agentes de IA o scripts) que necesitan gestionar datos estructurados de tareas en distintos proyectos. Gestiona el almacenamiento de datos y proporciona un conjunto estandarizado de herramientas para la interacción, mientras que la lógica estratégica del flujo de trabajo reside en el cliente.
Características principales:
- Basado en proyectos: las tareas se organizan dentro de proyectos distintos.
- Persistencia de SQLite: utiliza un archivo SQLite local (
./data/taskmanager.db
de forma predeterminada) para un almacenamiento de datos simple y autónomo. - Orientado al cliente: proporciona herramientas para los clientes; no dicta el flujo de trabajo.
- Compatible con MCP: se adhiere al Protocolo de contexto de modelo para la definición y comunicación de herramientas.
- Gestión de tareas: admite la creación de proyectos, la adición de tareas, la enumeración/visualización de tareas, la actualización del estado, la expansión de tareas en subtareas y la identificación de la próxima tarea procesable.
- Importar/Exportar: Permite exportar datos del proyecto a JSON e importar desde JSON para crear nuevos proyectos.
Herramientas MCP implementadas
Las siguientes herramientas están disponibles para los clientes de MCP:
createProject
:- Descripción: Crea un nuevo proyecto vacío.
- Parámetros:
projectName
(cadena, opcional, máximo 255) - Devuelve:
{ project_id: string }
addTask
:- Descripción: Agrega una nueva tarea a un proyecto.
- Parámetros:
project_id
(cadena, obligatorio, UUID),description
(cadena, obligatorio, 1-1024),dependencies
(cadena[], opcional, máximo 50),priority
(enumeración 'alta'|'media'|'baja', opcional, predeterminado 'media'),status
(enumeración 'todo'|'en progreso'|'revisión'|'listo', opcional, predeterminado 'todo') - Devuelve: objeto
TaskData
completo de la tarea creada.
listTasks
:- Descripción: Enumera las tareas de un proyecto, con filtrado opcional e inclusión de subtareas.
- Parámetros:
project_id
(cadena, obligatorio, UUID),status
(enumeración 'todo'|'en progreso'|'revisión'|'terminado', opcional),include_subtasks
(booleano, opcional, predeterminado falso) - Devuelve: Matriz de objetos
TaskData
oStructuredTaskData
.
showTask
:- Descripción: Recupera detalles completos de una tarea específica, incluidas dependencias y subtareas directas.
- Parámetros:
project_id
(cadena, obligatorio, UUID),task_id
(cadena, obligatorio) - Devuelve: objeto
FullTaskData
.
setTaskStatus
:- Descripción: Actualiza el estado de una o más tareas.
- Parámetros:
project_id
(cadena, obligatorio, UUID),task_ids
(cadena[], obligatorio, 1-100),status
(enumeración 'todo'|'en progreso'|'revisión'|'terminado', obligatorio) - Devoluciones:
{ success: true, updated_count: number }
expandTask
:- Descripción: Divide una tarea principal en subtareas y, opcionalmente, reemplaza las existentes.
- Parámetros:
project_id
(cadena, obligatorio, UUID),task_id
(cadena, obligatorio),subtask_descriptions
(cadena[], obligatorio, 1-20, cada 1-512),force
(booleano, opcional, predeterminado falso) - Devoluciones: objeto padre
FullTaskData
actualizado incluidas nuevas subtareas.
getNextTask
:- Descripción: Identifica la próxima tarea procesable en función del estado ('todo'), las dependencias ('hecho'), la prioridad y la fecha de creación.
- Parámetros:
project_id
(cadena, obligatorio, UUID) - Devuelve: objeto
FullTaskData
de la próxima tarea, onull
si no hay ninguna lista.
exportProject
:- Descripción: Exporta datos completos del proyecto como una cadena JSON.
- Parámetros:
project_id
(cadena, obligatorio, UUID),format
(enumeración 'json', opcional, predeterminado 'json') - Devuelve: cadena JSON que representa el proyecto.
importProject
:- Descripción: Crea un nuevo proyecto a partir de una cadena JSON exportada.
- Parámetros:
project_data
(cadena, obligatorio, JSON),new_project_name
(cadena, opcional, máximo 255) - Devuelve:
{ project_id: string }
del proyecto recién creado.
updateTask
:- Descripción: Actualiza detalles específicos (descripción, prioridad, dependencias) de una tarea existente.
- Parámetros:
project_id
(cadena, obligatorio, UUID),task_id
(cadena, obligatorio, UUID),description
(cadena, opcional, 1-1024),priority
(enumeration 'high'|'medium'|'low', opcional),dependencies
(cadena[], opcional, máx. 50, reemplaza las existentes) - Devuelve: objeto
FullTaskData
actualizado.
deleteTask
:- Descripción: Elimina una o más tareas (y sus subtareas/enlaces de dependencia mediante cascada).
- Parámetros:
project_id
(cadena, obligatorio, UUID),task_ids
(cadena[], obligatorio, 1-100) - Devoluciones:
{ success: true, deleted_count: number }
deleteProject
:- Descripción: Elimina permanentemente un proyecto y todos los datos asociados. ¡Úselo con precaución!
- Parámetros:
project_id
(cadena, obligatorio, UUID) - Devuelve:
{ success: true }
(Nota: Consulte los archivos src/tools/*Params.ts
correspondientes para obtener esquemas Zod detallados y descripciones de parámetros).
Empezando
- Prerrequisitos: Node.js (se recomienda LTS), npm.
- Dependencias de instalación:Copy
- Ejecutar en modo de desarrollo: (Utiliza
ts-node
ynodemon
para recarga automática)El servidor se conectará mediante stdio. Los registros (formato JSON) se imprimirán en stderr. La base de datos SQLite se creará/actualizará enCopy./data/taskmanager.db
. - Construir para producción:Copy
- Ejecutar compilación de producción:Copy
Configuración
- Ruta de la base de datos: La ubicación del archivo de base de datos de SQLite se puede sobrescribir configurando la variable de entorno
DATABASE_PATH
. El valor predeterminado es./data/taskmanager.db
. - Nivel de registro: El nivel de registro se puede configurar mediante la variable de entorno
LOG_LEVEL
(p. ej.,debug
,info
,warn
,error
). El valor predeterminado esinfo
.
Estructura del proyecto
/src
: Código fuente./config
: Gestión de la configuración./db
: Administrador de base de datos y esquema (schema.sql
)./repositories
: Capa de acceso a datos (interacción con SQLite)./services
: Lógica empresarial básica./tools
: definiciones de herramientas MCP (*Params.ts) e implementación (*Tool.ts)./types
: Interfaces TypeScript compartidas (actualmente mínimas, principalmente en repositorios/servicios)./utils
: Registro, errores personalizados, etc.createServer.ts
: Creación de instancia de servidor.server.ts
: Punto de entrada de la aplicación principal.
/dist
: Salida JavaScript compilada./docs
: Documentación del proyecto (PRD, especificaciones de características, RFC)./data
: Ubicación predeterminada para el archivo de base de datos SQLite (creado automáticamente).tasks.md
: Archivo de seguimiento manual de tareas para desarrollo.- Archivos de configuración (
package.json
,tsconfig.json
,.eslintrc.json
, etc.)
Pelusa y formato
- Pelusa:
npm run lint
- Formato:
npm run format
(El código se formatea y revisa automáticamente al confirmar mediante Husky/lint-staged).
You must be authenticated.
Tools
Un servidor de protocolo de contexto de modelo local que proporciona herramientas de backend para que los agentes de IA administren proyectos y tareas con almacenamiento persistente en SQLite, lo que permite el seguimiento estructurado de las tareas del proyecto con dependencias, prioridades y estados.