The Todo List MCP Server provides a comprehensive API for managing todo items with the following capabilities:
Create todos: Add new tasks with a title and markdown description
List todos: Retrieve all todos or filter by active status
Retrieve todo: Get a specific todo item by ID
Update todos: Modify existing tasks' title or description
Complete todos: Mark tasks as done
Delete todos: Remove tasks from the list
Search todos: Find tasks by title (case-insensitive partial match) or creation date
Summarize todos: Generate a quick overview of active/outstanding tasks
Todo List MCP Server
A Model Context Protocol (MCP) server that provides a comprehensive API for managing todo items.
📚 Learning Resource: This project is designed as an educational example of MCP implementation. See GUIDE.md for a comprehensive explanation of how the project works and why things are implemented the way they are.
Features
Create todos: Add new tasks with title and markdown description
Update todos: Modify existing tasks
Complete todos: Mark tasks as done
Delete todos: Remove tasks from the list
Search todos: Find tasks by title or creation date
Summarize todos: Get a quick overview of active tasks
Tools
This MCP server exposes the following tools:
create-todo
: Create a new todo itemlist-todos
: List all todosget-todo
: Get a specific todo by IDupdate-todo
: Update a todo's title or descriptioncomplete-todo
: Mark a todo as completeddelete-todo
: Delete a todosearch-todos-by-title
: Search todos by title (case-insensitive partial match)search-todos-by-date
: Search todos by creation date (format: YYYY-MM-DD)list-active-todos
: List all non-completed todossummarize-active-todos
: Generate a summary of all active (non-completed) todos
Installation
Usage
Starting the Server
Configuring with Claude for Desktop
Claude Desktop
Add this to your claude_desktop_config.json
:
Cursor
Go to "Cursor Settings" -> MCP
Add a new MCP server with a "command" type
Add the absolute path of the server and run it with node
Example: node /absolute/path/to/todo-list-mcp/dist/index.js
Example Commands
When using with Claude for Desktop or Cursor, you can try:
"Create a todo to learn MCP with a description explaining why MCP is useful"
"List all my active todos"
"Create a todo for tomorrow's meeting with details about the agenda in markdown"
"Mark my learning MCP todo as completed"
"Summarize all my active todos"
Project Structure
This project follows a clear separation of concerns to make the code easy to understand:
Learning from This Project
This project is designed as an educational resource. To get the most out of it:
Read the GUIDE.md for a comprehensive explanation of the design
Study the heavily commented source code to understand implementation details
Use the test client to see how the server works in practice
Experiment with adding your own tools or extending the existing ones
Development
Building
Running in Development Mode
License
MIT
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A Model Context Protocol (MCP) server that provides tools for managing todo items, including creation, updating, completion, deletion, searching, and summarizing tasks.
Related Resources
Related MCP Servers
- -securityAlicense-qualityA simple Model Context Protocol (MCP) server that integrates with Notion's API to manage my personal todo list through Claude.Last updated -202MIT License
- -securityFlicense-qualityAn MCP server that provides tools and resources for managing a coding project's todo list, allowing users to view, add, update, and delete todo items with details like priority, status, and tags.Last updated -1
- -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 -231MIT License
- -securityFlicense-qualityA minimal Model Context Protocol server implementation that provides tools for managing a to-do list, allowing users to create tasks, list them, and mark them as completed via JSON-RPC calls.Last updated -