Divide and Conquer

Descompone tareas complejas en partes manejables y las almacena en JSON estructurado.

Documentación

MseeP.ai Security Assessment Badge

Servidor MCP Divide and Conquer

smithery badge

Un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los agentes de IA descomponer tareas complejas en partes manejables utilizando un formato JSON estructurado.

Tabla de Contenidos

Propósito

El servidor MCP Divide and Conquer es una evolución del servidor MCP Temp Notes, diseñado específicamente para tareas complejas que necesitan descomponerse en partes manejables. En lugar de usar un archivo de texto simple, este servidor utiliza un formato JSON estructurado para almacenar información de tareas, listas de verificación y contexto, lo que facilita el seguimiento del progreso y el mantenimiento del contexto en múltiples conversaciones.

Características principales

  • Formato JSON estructurado: En lugar de texto plano, utiliza una estructura JSON para almacenar información de tareas.
  • Seguimiento de tareas: Incluye funcionalidad de lista de verificación con seguimiento del estado de finalización.
  • Preservación del contexto: Campos dedicados para el contexto de la tarea y descripciones detalladas.
  • Monitoreo de progreso: Visualización fácil de tareas completadas vs. pendientes.
  • Orden de tareas: Mantiene el orden de las tareas para ejecución secuencial.
  • Inserción de tareas: Capacidad de insertar nuevas tareas en posiciones específicas de la lista de verificación.
  • Metadatos: Seguimiento de información adicional como etiquetas, prioridad y tiempo estimado de finalización.
  • Notas y recursos: Almacenar notas y recursos adicionales relacionados con la tarea.

Inicio rápido

  1. Agrega el servidor a tu configuración de MCP:

    {
      "mcpServers": {
        "divide-and-conquer": {
          "command": "npx",
          "args": ["-y", "@landicefu/divide-and-conquer-mcp-server"],
          "disabled": false
        }
      }
    }
    
  2. Comienza a usarlo en tus conversaciones:

    // Initialize a new task
    await use_mcp_tool({
      server_name: "divide-and-conquer",
      tool_name: "initialize_task",
      arguments: {
        task_description: "Refactor the authentication system",
        context_for_all_tasks: "The current system uses session-based authentication."
      }
    });
    
    // Add checklist items
    await use_mcp_tool({
      server_name: "divide-and-conquer",
      tool_name: "add_checklist_item",
      arguments: {
        task: "Analyze current authentication flow",
        detailed_description: "Review the existing authentication code.",
        context_and_plan: "Look at src/auth/* files. The current implementation uses express-session with MongoDB store."
      }
    });
    

Instalación

Instalación mediante Smithery

Para instalar Divide and Conquer Server para Claude Desktop automáticamente mediante Smithery:

npx -y @smithery/cli install @landicefu/divide-and-conquer-mcp-server --client claude

Opción 1: Usando npx (Recomendado)

Agrega el servidor a tu configuración de MCP:

{
  "mcpServers": {
    "divide-and-conquer": {
      "command": "npx",
      "args": ["-y", "@landicefu/divide-and-conquer-mcp-server"],
      "disabled": false
    }
  }
}

Opción 2: Instalar desde el código fuente

  1. Clona el repositorio:

    git clone https://github.com/landicefu/divide-and-conquer-mcp-server.git
    cd divide-and-conquer-mcp-server
    
  2. Instala las dependencias:

    npm install
    
  3. Compila el servidor:

    npm run build
    
  4. Agrega el servidor a tu configuración de MCP:

    {
      "mcpServers": {
        "divide-and-conquer": {
          "command": "node",
          "args": ["/path/to/divide-and-conquer-mcp-server/build/index.js"],
          "disabled": false
        }
      }
    }
    

Herramientas

El servidor MCP Divide and Conquer proporciona las siguientes herramientas:

initialize_task

Crea una nueva tarea con la descripción especificada y elementos opcionales de lista de verificación inicial.

update_task_description

Actualiza la descripción principal de la tarea.

update_context

Actualiza la información de contexto para todas las tareas.

add_checklist_item

Agrega un nuevo elemento a la lista de verificación.

update_checklist_item

Actualiza un elemento existente de la lista de verificación.

mark_task_done

Marca un elemento de la lista de verificación como completado.

mark_task_undone

Marca un elemento de la lista de verificación como no completado.

remove_checklist_item

Elimina un elemento de la lista de verificación.

reorder_checklist_item

Mueve un elemento de la lista de verificación a una nueva posición.

add_note

Agrega una nota a la tarea.

add_resource

Agrega un recurso a la tarea.

update_metadata

Actualiza los metadatos de la tarea.

clear_task

Limpia los datos de la tarea actual.

get_checklist_summary

Devuelve un resumen de la lista de verificación con el estado de finalización. La información de contexto se excluye intencionalmente del resumen para ahorrar espacio en la ventana de contexto.

get_current_task_details

Recupera los detalles de la tarea actual (primera tarea no completada) con contexto completo, junto con todas las demás tareas con campos limitados. Para la tarea actual, se incluyen todos los campos, incluido context_and_plan. Para otras tareas, solo se incluyen task, detailed_description y el estado done (context_and_plan se excluye). Esta es la herramienta recomendada para usar al trabajar con tareas.

Ejemplos de uso

Inicializando una tarea compleja

await use_mcp_tool({
  server_name: "divide-and-conquer",
  tool_name: "initialize_task",
  arguments: {
    task_description: "Refactor the authentication system to use JWT tokens and improve security",
    context_for_all_tasks: "The current system uses session-based authentication with cookies. We need to migrate to JWT for better scalability and security.",
    initial_checklist: [
      {
        task: "Analyze current authentication flow",
        detailed_description: "Review the existing authentication code to understand the current flow.",
        context_and_plan: "Look at src/auth/* files. The current implementation uses express-session with MongoDB store. Pay special attention to session expiration handling."
      },
      {
        task: "Design JWT implementation",
        detailed_description: "Create a design document outlining how JWT will be implemented.",
        context_and_plan: "Consider token structure, storage, and refresh mechanisms. Research best practices for JWT implementation in Node.js applications. Reference the security requirements document in docs/security.md."
      }
    ],
    metadata: {
      tags: ["security", "refactoring", "authentication"],
      priority: "high",
      estimated_completion_time: "2 weeks"
    }
  }
});

Obteniendo un resumen de la lista de verificación

const summary = await use_mcp_tool({
  server_name: "divide-and-conquer",
  tool_name: "get_checklist_summary",
  arguments: {
    include_descriptions: true
  }
});

// Result contains a formatted summary of the checklist with completion status (context is excluded to save space)

Obteniendo detalles de la tarea actual

const taskDetails = await use_mcp_tool({
  server_name: "divide-and-conquer",
  tool_name: "get_current_task_details",
  arguments: {}
});

// Result contains:
// - ultimate_goal: The final goal of the entire task (task_description)
// - tasks: Array of all tasks, where the current task (first uncompleted) has all fields including context_and_plan,
//   while other tasks have limited fields (task, detailed_description, done) without context_and_plan
// - current_task_index: Index of the current task (first uncompleted)
// - Additional task metadata, notes, resources, etc.

Casos de uso

1. Tareas complejas de desarrollo de software

Al trabajar en tareas complejas de desarrollo de software, los agentes de IA a menudo enfrentan limitaciones de ventana de contexto que dificultan completar todos los pasos en una sola conversación. El servidor MCP Divide and Conquer permite a los agentes:

  • Descomponer tareas grandes en partes más pequeñas y manejables
  • Realizar seguimiento del progreso en múltiples conversaciones
  • Mantener contexto importante que de otro modo se perdería
  • Organizar tareas en una secuencia lógica
  • Documentar decisiones y recursos

2. Planificación y gestión de proyectos

Para tareas de planificación y gestión de proyectos, el servidor permite:

  • Crear planes de proyecto estructurados con tareas y subtareas
  • Realizar seguimiento del progreso y estado de finalización
  • Mantener contexto y requisitos
  • Documentar decisiones y recursos
  • Colaborar en múltiples conversaciones

3. Investigación y análisis

Al realizar investigaciones y análisis, los agentes pueden:

  • Descomponer preguntas de investigación en áreas específicas para investigar
  • Realizar seguimiento del progreso y hallazgos
  • Mantener contexto e información de fondo
  • Documentar fuentes y recursos
  • Organizar hallazgos de manera estructurada

Estructura JSON

El servidor utiliza la siguiente estructura JSON para almacenar información de tareas:

{
  "task_description": "A medium-level detailed description about the whole task. The final goal we want to achieve.",
  
  "checklist": [
    {
      "done": false,
      "task": "A short yet comprehensive name for the task",
      "detailed_description": "A longer description about what we want to achieve with this task",
      "context_and_plan": "Related information, files the agent should read, and more details from other tasks, as well as a detailed plan for this task. This is typically the longest string."
    }
  ],
  
  "context_for_all_tasks": "Information that all tasks in the checklist should include.",
  
  "metadata": {
    "created_at": "ISO timestamp",
    "updated_at": "ISO timestamp",
    "progress": {
      "completed": 0,
      "total": 1,
      "percentage": 0
    },
    "tags": ["tag1", "tag2"],
    "priority": "high|medium|low",
    "estimated_completion_time": "ISO timestamp or duration"
  },
  
  "notes": [
    {
      "timestamp": "ISO timestamp",
      "content": "Additional notes or observations about the overall task"
    }
  ],
  
  "resources": [
    {
      "name": "Resource name",
      "url": "URL or file path",
      "description": "Description of the resource"
    }
  ]
}

Almacenamiento de configuración

Por defecto, el servidor MCP Divide and Conquer almacena los datos de tareas en la siguiente ubicación:

  • En macOS/Linux: ~/.mcp_config/divide_and_conquer.json (que se expande a /Users/username/.mcp_config/divide_and_conquer.json)
  • En Windows: C:\Users\username\.mcp_config\divide_and_conquer.json

Este archivo se crea automáticamente cuando inicializas una tarea por primera vez. Si el archivo no existe cuando intentas leer datos de tareas, el servidor devolverá una estructura de tarea vacía y creará el archivo la próxima vez que escribas en él.

El servidor maneja los siguientes escenarios:

  • Si el archivo no existe al leer: Devuelve una estructura de tarea vacía
  • Si el directorio no existe: Crea la estructura de directorios automáticamente al escribir
  • Si el archivo está corrupto o es inaccesible: Devuelve mensajes de error apropiados

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una solicitud de extracción (Pull Request).

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE para obtener más detalles.