Task Manager MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Task Manager MCP Servercreate a high priority task for the team meeting tomorrow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Task Manager MCP Server
A production-ready Task Manager server built with the Model Context Protocol (MCP), enabling AI assistants to manage tasks through a standardized interface. Built with TypeScript, Zod validation, and the official MCP SDK.
Features
β 8 Comprehensive Tools: Create, list, update, delete, complete, search tasks, get statistics, and clear completed tasks
π Type-Safe: Built with TypeScript and runtime validation using Zod
π¦ Portable: Uses only official MCP SDK - no vendor lock-in
π³ Dockerized: Ready for containerized deployment
πΎ Persistent Storage: File-based JSON storage with environment-aware configuration
π Advanced Filtering: Filter tasks by status, priority, and category
π Statistics & Analytics: Track task completion rates, overdue items, and more
π― Production Ready: Comprehensive error handling and validation
Quick Start
Prerequisites
Node.js 18+
npm 9+
Installation
# Clone the repository
git clone https://github.com/aafsar/task-manager-mcp-server.git
cd task-manager-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Run the server
npm startDevelopment Mode
# Run with hot reload
npm run devAvailable Tools
1. create_task
Create a new task with optional metadata.
Parameters:
title(string, required): Task titledescription(string, optional): Detailed descriptionpriority(enum, optional): "low", "medium", or "high" (default: "medium")category(string, optional): Task category (e.g., "work", "personal")dueDate(string, optional): Due date in YYYY-MM-DD format
Example:
{
"title": "Review pull requests",
"description": "Review open PRs for the API project",
"priority": "high",
"category": "work",
"dueDate": "2025-10-05"
}2. list_tasks
List tasks with optional filters.
Parameters:
status(enum, optional): "pending", "in_progress", "completed", or "all" (default: "all")priority(enum, optional): "low", "medium", "high", or "all" (default: "all")category(string, optional): Filter by specific category
Example:
{
"status": "pending",
"priority": "high"
}3. update_task
Update any field of an existing task.
Parameters:
taskId(string, required): Task ID (minimum 8 characters)title(string, optional): New titledescription(string, optional): New descriptionpriority(enum, optional): New prioritycategory(string, optional): New categorydueDate(string, optional): New due datestatus(enum, optional): New status
Example:
{
"taskId": "a1b2c3d4",
"status": "in_progress",
"priority": "high"
}4. complete_task
Mark a task as completed.
Parameters:
taskId(string, required): Task ID (minimum 8 characters)
5. delete_task
Delete a task permanently.
Parameters:
taskId(string, required): Task ID (minimum 8 characters)
6. search_tasks
Search tasks by title or description.
Parameters:
query(string, required): Search query
Example:
{
"query": "review"
}7. get_task_stats
Get comprehensive statistics about all tasks.
Returns:
Total task count
Completion rate
Status breakdown (pending/in progress/completed)
Priority breakdown (high/medium/low)
Category distribution
Overdue task count
Tasks due within 7 days
8. clear_completed
Remove all completed tasks from storage.
Claude Desktop Integration
Configuration
Locate your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the server configuration:
{
"mcpServers": {
"task-manager": {
"command": "node",
"args": [
"/absolute/path/to/task-manager-mcp-server/dist/index.js"
]
}
}
}Restart Claude Desktop completely
Look for the hammer icon (π¨) in the input box
Test with: "Create a high priority task called 'Test MCP Integration'"
Testing with MCP Inspector
The MCP Inspector provides a web-based interface for testing tools:
# Launch the inspector
npx @modelcontextprotocol/inspector dist/index.jsThis will open a browser window where you can:
View all available tools
Test tool execution interactively
Inspect request/response data
Debug errors
Docker Deployment
Build and Run with Docker
# Build the image
docker build -t task-manager-mcp .
# Run the container
docker run -it task-manager-mcpUsing Docker Compose
# Start the service
docker-compose up -d
# View logs
docker-compose logs -f
# Stop the service
docker-compose downPersist Data with Docker
Data is automatically persisted to a Docker volume. To back up your tasks:
# Export tasks
docker cp task-manager-mcp:/app/data/tasks.json ./backup-tasks.json
# Import tasks
docker cp ./backup-tasks.json task-manager-mcp:/app/data/tasks.jsonEnvironment Variables
Configure the server using environment variables:
# Data storage directory (default: ./data)
DATA_DIR=/custom/path/to/data
# Log level
LOG_LEVEL=info
# Node environment
NODE_ENV=productionCreate a .env file in the project root:
cp .env.example .env
# Edit .env with your valuesCloud Deployment Options
Railway
# Install Railway CLI
npm install -g @railway/cli
# Login
railway login
# Initialize project
railway init
# Deploy
railway upRender
Connect your GitHub repository
Create a new Web Service
Set build command:
npm install && npm run buildSet start command:
npm startDeploy
Fly.io
# Install flyctl
curl -L https://fly.io/install.sh | sh
# Login
flyctl auth login
# Launch app
flyctl launch
# Deploy
flyctl deployProject Structure
task-manager-mcp-server/
βββ src/
β βββ index.ts # Main MCP server and request handlers
β βββ types.ts # TypeScript interfaces and Zod schemas
β βββ storage.ts # File-based storage module
β βββ tools.ts # Tool implementation functions
βββ dist/ # Compiled JavaScript (generated)
βββ data/ # Task storage (JSON files, git-ignored)
βββ Dockerfile # Docker configuration
βββ docker-compose.yml # Docker Compose setup
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ README.md # This fileDevelopment
Scripts
npm run build # Compile TypeScript to JavaScript
npm run dev # Development mode with hot reload
npm run typecheck # Type check without building
npm run clean # Remove build artifacts
npm start # Run production buildType Safety
The project uses strict TypeScript settings and Zod for runtime validation:
Compile-time safety: TypeScript catches type errors during development
Runtime validation: Zod validates all tool inputs at runtime
Dual schema approach: JSON Schema for MCP protocol, Zod for validation
Adding New Tools
Define Zod schema in
src/types.tsImplement handler function in
src/tools.tsAdd tool definition to
TOOLSarray insrc/index.tsAdd case handler in
tools/callswitch statementRebuild and test with MCP Inspector
Troubleshooting
"Cannot find module" errors
Ensure all imports use .js extension (even for .ts files):
import { Task } from "./types.js"; // β
Correct
import { Task } from "./types"; // β WrongTasks not persisting
Check
DATA_DIRenvironment variableVerify write permissions on data directory
Check for errors in server logs
TypeScript compilation errors
# Run type checker to identify issues
npm run typecheck
# Common fix: ensure strict types are used
# Check tsconfig.json module settingsMCP Inspector not connecting
Ensure server builds successfully:
npm run buildCheck Node.js version (must be 18+)
Verify no port conflicts
Check firewall settings
Claude Desktop not showing tools
Verify JSON syntax in config file
Use absolute paths in configuration
Restart Claude Desktop completely (Cmd+R / Ctrl+R not sufficient)
Check server logs for errors
Resources
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For issues and questions:
GitHub Issues: https://github.com/aafsar/task-manager-mcp-server/issues
MCP Discord: https://discord.gg/modelcontextprotocol
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aafsar/task-manager-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server