ClaudeCodeMod

All shelves / MCP servers

MCP Task Manager Server

bsmi021/mcp-task-manager-server · 25 stars · TypeScript · GPL-3.0

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

Install

The repo has no one-line install. Follow its README.

Open the repo

Files

README.md

MCP Task Manager Server

MCP Task Manager Logo

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

Overview

This 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.

Key Features:

  • Project-Based: Tasks are organized within distinct projects.
  • SQLite Persistence: Uses a local SQLite file (./data/taskmanager.db by default) for simple, self-contained data storage.
  • Client-Driven: Provides tools for clients; does not dictate workflow.
  • MCP Compliant: Adheres to the Model Context Protocol for tool definition and communication.
  • Task Management: Supports creating projects, adding tasks, listing/showing tasks, updating status, expanding tasks into subtasks, and identifying the next actionable task.
  • Import/Export: Allows exporting project data to JSON and importing from JSON to create new projects.

Implemented MCP Tools

The following tools are available for MCP clients:

  • createProject:
    • Description: Creates a new, empty project.
    • Params: projectName (string, optional, max 255)
    • Returns: { project_id: string }
  • addTask:
    • Description: Adds a new task to a project.
    • Params: project_id (string, required, UUID), description (string, required, 1-1024), dependencies (string[], optional, max 50), priority (enum 'high'|'medium'|'low', optional, default 'medium'), status (enum 'todo'|'in-progress'|'review'|'done', optional, default 'todo')
    • Returns: Full TaskData object of the created task.
  • listTasks:
    • Description: Lists tasks for a project, with optional filtering and subtask inclusion.
    • Params: project_id (string, required, UUID), status (enum 'todo'|'in-progress'|'review'|'done', optional), include_subtasks (boolean, optional, default false)
    • Returns: Array of TaskData or StructuredTaskData objects.
  • showTask:
    • Description: Retrieves full details for a specific task, including dependencies and direct subtasks.
    • Params: project_id (string, required, UUID), task_id (string, required)
    • Returns: FullTaskData object.
  • setTaskStatus:
    • Description: Updates the status of one or more tasks.
    • Params: project_id (string, required, UUID), task_ids (string[], required, 1-100), status (enum 'todo'|'in-progress'|'review'|'done', required)
    • Returns: { success: true, updated_count: number }
  • expandTask:
    • Description: Breaks a parent task into subtasks, optionally replacing existing ones.
    • Params: project_id (string, required, UUID), task_id (string, required), subtask_descriptions (string[], required, 1-20, each 1-512), force (boolean, optional, default false)
    • Returns: Updated parent FullTaskData object including new subtasks.
  • getNextTask:
    • Description: Identifies the next actionable task based on status ('todo'), dependencies ('done'), priority, and creation date.
    • Params: project_id (string, required, UUID)
    • Returns: FullTaskData object of the next task, or null if none are ready.
  • exportProject:
    • Description: Exports complete project data as a JSON string.
    • Params: project_id (string, required, UUID), format (enum 'json', optional, default 'json')
    • Returns: JSON string representing the project.
  • importProject:
    • Description: Creates a new project from an exported JSON string.
    • Params: project_data (string, required, JSON), new_project_name (string, optional, max 255)
    • Returns: { project_id: string } of the newly created project.
  • updateTask:
    • Description: Updates specific details (description, priority, dependencies) of an existing task.
    • Params: project_id (string, required, UUID), task_id (string, required, UUID), description (string, optional, 1-1024), priority (enum 'high'|'medium'|'low', optional), dependencies (string[], optional, max 50, replaces existing)
    • Returns: Updated FullTaskData object.
  • deleteTask:
    • Description: Deletes one or more tasks (and their subtasks/dependency links via cascade).
    • Params: project_id (string, required, UUID), task_ids (string[], required, 1-100)
    • Returns: { success: true, deleted_count: number }
  • deleteProject:
    • Description: Permanently deletes a project and ALL associated data. Use with caution!
    • Params: project_id (string, required, UUID)
    • Returns: { success: true }

(Note: Refer to the corresponding src/tools/*Params.ts files for detailed Zod schemas and parameter descriptions.)

Getting Started

  1. Prerequisites: Node.js (LTS recommended), npm.

  2. Install Dependencies:

    npm install
  3. Run in Development Mode: (Uses ts-node and nodemon for auto-reloading)

    npm run dev

    The server will connect via stdio. Logs (JSON format) will be printed to stderr. The SQLite database will be created/updated in ./data/taskmanager.db.

  4. Build for Production:

    npm run build
  5. Run Production Build:

    npm start

Configuration

  • Database Path: The location of the SQLite database file can be overridden by setting the DATABASE_PATH environment variable. The default is ./data/taskmanager.db.
  • Log Level: The logging level can be set using the LOG_LEVEL environment variable (e.g., debug, info, warn, error). The default is info.

Project Structure

  • /src: Source code.
    • /config: Configuration management.
    • /db: Database manager and schema (schema.sql).
    • /repositories: Data access layer (SQLite interaction).
    • /services: Core business logic.
    • /tools: MCP tool definitions (*Params.ts) and implementation (*Tool.ts).
    • /types: Shared TypeScript interfaces (currently minimal, mostly in repos/services).
    • /utils: Logging, custom errors, etc.
    • createServer.ts: Server instance creation.
    • server.ts: Main application entry point.
  • /dist: Compiled JavaScript output.
  • /docs: Project documentation (PRD, Feature Specs, RFC).
  • /data: Default location for the SQLite database file (created automatically).
  • tasks.md: Manual task tracking file for development.
  • Config files (package.json, tsconfig.json, .eslintrc.json, etc.)

Linting and Formatting

  • Lint: npm run lint
  • Format: npm run format

(Code is automatically linted/formatted on commit via Husky/lint-staged).

Facts

Kind
MCP server
Repo
bsmi021/mcp-task-manager-server
Group
Uncategorized
Stars
25
License
GPL-3.0
Language
TypeScript
Last push
2025-06-11
Forks
11
Topics
claude, cline, mcp, modelcontextprotocol, roo, task, task-management, task-manager, taskmanager

More on this shelf

  1. 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
  2. 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
  3. 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
  4. 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
  5. 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
  6. 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k