MCP Task Manager Server

Integrations

  • Provides persistent storage for projects and tasks using a local SQLite database, with support for complex querying and relationship management.

  • Utilizes Zod schemas for robust parameter validation and type checking of tool inputs and outputs.

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 o StructuredTaskData .
  • 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, o null 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

  1. Prerrequisitos: Node.js (se recomienda LTS), npm.
  2. Dependencias de instalación:
    npm install
  3. Ejecutar en modo de desarrollo: (Utiliza ts-node y nodemon para recarga automática)
    npm run dev
    El servidor se conectará mediante stdio. Los registros (formato JSON) se imprimirán en stderr. La base de datos SQLite se creará/actualizará en ./data/taskmanager.db .
  4. Construir para producción:
    npm run build
  5. Ejecutar compilación de producción:
    npm start

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 es info .

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.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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.

  1. Overview
    1. Implemented MCP Tools
      1. Getting Started
        1. Configuration
          1. Project Structure
            1. Linting and Formatting
              ID: iidipqwk2z