Built with Bun runtime, allowing for efficient execution of the Todo MCP server in JavaScript/TypeScript environments.
Supports containerized deployment via Docker, with configuration options for volume mounting and environment variables.
Uses .env files for configuration management, allowing customization of webhook URLs, database paths, and server settings.
Supports Git-based deployment workflow with instructions for cloning and setting up the repository.
Uses SQLite as the database backend for storing todo lists, items, tags, and recurrence patterns.
Built with TypeScript, providing type safety and improved developer experience when extending or modifying the MCP server.
TODO MCP Server
A Model Context Protocol (MCP) server for managing todo lists and items with webhook notifications, built with Bun and TypeScript.
Features
Todo List Management
- Create new todo lists with names and descriptions
- Read individual lists or get all lists
- Update list names and descriptions
- Delete lists (cascades to all items)
Todo Item Management
- CRUD Operations: Create, read, update, delete todo items
- Assignee Support: Assign todos to specific people
- Priority Levels: None, low, medium, high
- Status Tracking: pending, in_progress, completed, cancelled
- Tags: Flexible tagging system for categorization
- Due Dates: Set deadlines for tasks
- Snooze Functionality: Temporarily hide items until a specific time
Advanced Features
- Recurrence: Daily, weekly, monthly, or specific weekdays
- Search: Find todos by title, description, or keywords
- Filtering: Filter by assignee, tags, status, priority, due dates
- Sorting: Sort by time, priority, creation date, or update date
- Pagination: Limit and offset for large datasets
- Notifications: Webhook notifications for approaching deadlines
Installation
Prerequisites
- Bun runtime
- SQLite3 (included with most systems)
Setup
Environment Variables
Usage
Development
Production
MCP Tools
The server provides the following MCP tools:
Todo List Operations
createTodoList
- Create a new todo listgetTodoList
- Get a todo list by IDgetAllTodoLists
- Get all todo listsupdateTodoList
- Update a todo listdeleteTodoList
- Delete a todo list
Todo Item Operations
createTodoItem
- Create a new todo itemgetTodoItem
- Get a todo item by IDsearchTodoItems
- Search and filter todo itemsupdateTodoItem
- Update a todo itemmarkTodoDone
- Mark a todo item as completeddeleteTodoItem
- Delete a todo item
Usage Examples
Creating a Todo List
Creating a Todo Item
Searching Todo Items
Database Schema
The server uses SQLite with the following tables:
- todo_lists: Stores todo list information
- todo_items: Stores individual todo items
- tags: Stores unique tag names
- todo_tags: Many-to-many relationship between todos and tags
- recurrences: Stores recurrence patterns for todos
Docker Deployment
Using Docker Compose
Using Docker directly
Notifications
When a NOTIFICATION_WEBHOOK
is configured, the server will:
- Check for tasks with due dates within the next hour every 5 minutes
- Send webhook notifications for upcoming deadlines
- Automatically snooze notifications for 1 hour to avoid spam
- Include task details like title, assignee, priority, and tags
Webhook Payload Format
API Reference
Recurrence Types
daily
: Repeats every dayweekly
: Repeats on specific weekdays (0=Sunday, 6=Saturday)monthly
: Repeats on a specific day of the monthweekdays
: Repeats on weekdays only (Monday-Friday)
Priority Levels
none
: No priority setlow
: Low prioritymedium
: Medium priorityhigh
: High priority
Status Options
pending
: Task not startedin_progress
: Task is being worked oncompleted
: Task is finishedcancelled
: Task was cancelled
Development
Project Structure
Testing
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
License
This project is licensed under the MIT License.
Troubleshooting
Common Issues
- Database locked error: Ensure only one instance of the server is running
- Permission denied: Check file permissions for the database path
- Webhook not working: Verify the webhook URL is correct and accessible
Debug Mode
Set NODE_ENV=development
to enable additional logging.
Support
For issues and questions, please:
- Check the troubleshooting section above
- Search existing issues on GitHub
- Create a new issue with detailed information
This server cannot be installed
A Model Context Protocol server for managing todo lists and items with advanced features including task assignment, priorities, recurrence, filtering, and webhook notifications.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that integrates with Notion's API to manage personal todo lists, allowing users to view, add, and update tasks directly from Claude.Last updated -20PythonMIT License
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server that provides tools for managing todo items, including creation, updating, completion, deletion, searching, and summarizing tasks.Last updated -1022TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server providing comprehensive task management capabilities with support for project organization, task tracking, and automatic PRD parsing into actionable items.Last updated -16PythonMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables advanced task and project management in Todoist via Claude Desktop and other MCP-compatible clients.Last updated -5691JavaScriptMIT License