Labsco
Xczer logo

Todo MCP Server

β˜… 1

from Xczer

A Todo and Task Manager server for creating, updating, and managing tasks, using a SQLite database.

πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup

Todo MCP Server

A comprehensive Todo/Task Manager MCP (Model Context Protocol) Server built with Node.js, TypeScript, and SQLite. This server provides tools, resources, and prompts for managing todos through Claude and other MCP-compatible clients.

Features

πŸ› οΈ Tools (7 available)

  • create_todo - Create new todos with title, description, priority, due date, and tags
  • update_todo - Update existing todos (any field)
  • delete_todo - Delete todos by ID
  • complete_todo - Mark todos as completed
  • list_todos - List todos with filtering (completion status, priority, tag, limit)
  • search_todos - Search todos by title, description, or tags
  • get_todo_stats - Get comprehensive todo statistics

πŸ“„ Resources (9 available)

  • todos://all - All todos (JSON)
  • todos://completed - Completed todos (JSON)
  • todos://pending - Pending todos (JSON)
  • todos://overdue - Overdue todos (JSON)
  • todos://todo/{id} - Specific todo by ID (JSON)
  • todos://priority/{priority} - Todos by priority (JSON) with autocomplete
  • todos://tag/{tag} - Todos by tag (JSON) with autocomplete
  • todos://stats - Todo statistics (JSON)
  • todos://tags - All available tags (JSON)

πŸ’¬ Prompts (5 available)

  • create_todo_prompt - Interactive todo creation
  • daily_review - Daily todo review and planning
  • weekly_planning - Weekly planning session
  • productivity_analysis - Analyze productivity patterns
  • task_breakdown - Break down complex tasks

API Examples

Creating a Todo

// Using the create_todo tool
{
  "title": "Review documentation",
  "description": "Read through the MCP protocol documentation",
  "priority": "high",
  "dueDate": "2024-06-27T10:00:00.000Z",
  "tags": ["work", "learning"]
}

Filtering Todos

// Using the list_todos tool
{
  "completed": false,
  "priority": "high",
  "limit": 10
}

Resource Access

GET todos://pending          # All pending todos
GET todos://priority/high    # High priority todos
GET todos://tag/work         # Todos tagged with "work"
GET todos://stats            # Todo statistics

Architecture

src/
β”œβ”€β”€ database.ts        # SQLite database layer with better-sqlite3
β”œβ”€β”€ index.ts          # Main server entry point
β”œβ”€β”€ mcp-server.ts     # MCP server implementation
β”œβ”€β”€ todo-service.ts   # Business logic layer
β”œβ”€β”€ test.ts          # Test suite
└── types.ts         # TypeScript type definitions

Key Components

  1. TodoDatabase - Direct SQLite interface with better-sqlite3
  2. TodoService - Business logic with validation and error handling
  3. TodoMcpServer - MCP protocol implementation with tools, resources, and prompts

Development

Scripts

  • npm run build - Compile TypeScript to JavaScript
  • npm run dev - Development mode with file watching
  • npm start - Start the production server
  • npm run test - Run the test suite

Technology Stack

  • Runtime: Node.js
  • Language: TypeScript
  • Database: SQLite with better-sqlite3
  • Protocol: Model Context Protocol (MCP)
  • Validation: Zod schemas

Testing

The project includes comprehensive testing:

npm run test

This will:

  • Create an in-memory database
  • Test all CRUD operations
  • Verify search and filtering functionality
  • Check statistics generation
  • Validate tag management

License

MIT License - see LICENSE file for details.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Ensure all tests pass
  5. Submit a pull request

Changelog

v1.0.0

  • Initial release
  • Complete MCP implementation with tools, resources, and prompts
  • SQLite database with better-sqlite3
  • Comprehensive test suite
  • Node.js compatibility (migrated from Bun)