About MCP Task Manager Server
MCP Task Manager Server is a local MCP server that provides project and task management tools backed by a SQLite database. It handles storage and exposes a standard tool interface, while the client decides the workflow. It suits AI agents and scripts that need structured task data.
Key features
- 01Tasks grouped within distinct projects
- 02Local SQLite file for persistent storage
- 03Tools for creating, listing and updating tasks
- 04Expansion of tasks into subtasks
- 05Next actionable task based on dependencies and priority
- 06JSON export and import of project data
Use cases
- 01Giving an AI agent a persistent task list
- 02Sequencing multi-step work by task dependencies
- 03Copying or moving task data between projects
MCP support
This is an MCP server that exposes tools such as createProject, addTask, listTasks and getNextTask to MCP clients for managing project and task data.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Task Manager Server
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.dbby 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
TaskDataobject 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
TaskDataorStructuredTaskDataobjects.
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:
FullTaskDataobject.
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
FullTaskDataobject 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:
FullTaskDataobject of the next task, ornullif 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
FullTaskDataobject.
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
-
Prerequisites: Node.js (LTS recommended), npm.
-
Install Dependencies:
npm install -
Run in Development Mode: (Uses
ts-nodeandnodemonfor auto-reloading)npm run devThe server will connect via stdio. Logs (JSON format) will be printed to stderr. The SQLite database will be created/updated in
./data/taskmanager.db. -
Build for Production:
npm run build -
Run Production Build:
npm start
Configuration
- Database Path: The location of the SQLite database file can be overridden by setting the
DATABASE_PATHenvironment variable. The default is./data/taskmanager.db. - Log Level: The logging level can be set using the
LOG_LEVELenvironment variable (e.g.,debug,info,warn,error). The default isinfo.
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).
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.