Tasks Organizer MCP Server

A local Model Context Protocol (MCP) server providing backend tools for client-driven project and task management using a SQLite database.

GitHub stars

Overview

The MCP Task Manager Server acts as a persistent backend for local MCP clients (like AI agents or scripts) that need to manage structured task data within distinct projects. It handles data storage and provides a standardized set of tools for interaction, while the strategic workflow logic resides within the client. It adheres to the Model Context Protocol for tool definition and communication.

Created by:

Developed by bsmi021

Key Features

🗂️

Project-Based Organization

Tasks are organized within distinct projects for clear management.

💾

SQLite Persistence

Uses a local SQLite file (./data/taskmanager.db by default) for simple, self-contained data storage.

🤖

Client-Driven Workflow

Provides tools for clients; does not dictate workflow, allowing flexible AI agent integration.

Comprehensive Task Management

Supports creating projects, adding tasks, listing/showing tasks, updating status, expanding tasks into subtasks, and identifying the next actionable task.

↔️

Import/Export Functionality

Allows exporting project data to JSON and importing from JSON to create new projects.

Available Tools

Quick Reference

ToolPurposeCategory
createProjectCreates a new, empty project.Project Management
addTaskAdds a new task to a project.Task Management
listTasksLists tasks for a project, with optional filtering and subtask inclusion.Task Management
showTaskRetrieves full details for a specific task.Task Management
setTaskStatusUpdates the status of one or more tasks.Task Management
expandTaskBreaks a parent task into subtasks.Task Management
getNextTaskIdentifies the next actionable task.Task Management
exportProjectExports complete project data as a JSON string.Data Management

Detailed Usage

createProject

Creates a new, empty project.

use_mcp_tool({
  server_name: "task-manager",
  tool_name: "createProject",
  arguments: {
    projectName: "My New Project"
  }
});

Returns: { project_id: string }

addTask

Adds a new task to a project.

use_mcp_tool({
  server_name: "task-manager",
  tool_name: "addTask",
  arguments: {
    project_id: "your-project-uuid",
    description: "Implement user authentication",
    priority: "high",
    status: "todo"
  }
});

Returns: Full TaskData object of the created task.

listTasks

Lists tasks for a project, with optional filtering and subtask inclusion.

use_mcp_tool({
  server_name: "task-manager",
  tool_name: "listTasks",
  arguments: {
    project_id: "your-project-uuid",
    status: "in-progress",
    include_subtasks: true
  }
});

Returns: Array of TaskData or StructuredTaskData objects.

showTask

Retrieves full details for a specific task, including dependencies and direct subtasks.

use_mcp_tool({
  server_name: "task-manager",
  tool_name: "showTask",
  arguments: {
    project_id: "your-project-uuid",
    task_id: "your-task-id"
  }
});

Returns: FullTaskData object.

setTaskStatus

Updates the status of one or more tasks.

use_mcp_tool({
  server_name: "task-manager",
  tool_name: "setTaskStatus",
  arguments: {
    project_id: "your-project-uuid",
    task_ids: ["task-id-1", "task-id-2"],
    status: "done"
  }
});

Returns: { success: true, updated_count: number }

expandTask

Breaks a parent task into subtasks, optionally replacing existing ones.

use_mcp_tool({
  server_name: "task-manager",
  tool_name: "expandTask",
  arguments: {
    project_id: "your-project-uuid",
    task_id: "parent-task-id",
    subtask_descriptions: ["Subtask 1", "Subtask 2"],
    force: false
  }
});

Returns: Updated parent FullTaskData object including new subtasks.

getNextTask

Identifies the next actionable task based on status ('todo'), dependencies ('done'), priority, and creation date.

use_mcp_tool({
  server_name: "task-manager",
  tool_name: "getNextTask",
  arguments: {
    project_id: "your-project-uuid"
  }
});

Returns: FullTaskData object of the next task, or null if none are ready.

exportProject

Exports complete project data as a JSON string.

use_mcp_tool({
  server_name: "task-manager",
  tool_name: "exportProject",
  arguments: {
    project_id: "your-project-uuid"
  }
});

Returns: JSON string of project data.

Installation

{
  "mcpServers": {
    "task-manager": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-task-manager-server"
      ],
      "env": {
        "DATABASE_PATH": "./data/taskmanager.db"
      }
    }
  }
}

Sources