Skip to main content
Glama

TodoList MCP Server

Enhanced fork of the original MCP by ispyridis/todolist-mcp. Extended with 16 tools, backup/restore, stats, contract tests, and Diataxis documentation.

MCP server for managing ToDoList .tdl files. Tested with ToDoList 9.2.4.

ToDoList

Differences from the original

Original

This fork

10 tools

16 tools (complete_task, get_task_stats, backup_tdl, restore_tdl, delete_task, add_comment)

No tests

192 tests (80 unit + 112 contract MCP)

No type checking

mypy + ruff + pyright clean

Monolith

src/ modular (models, manager, tools)

No docs

Diataxis (tutorial, how-to, explanation, reference)

Related MCP server: Coding Todo Server

Quick start

git clone <repo-url>
cd todolist-mcp
python -m venv venv
venv\Scripts\pip install -r requirements.txt
python main.py

Configuration

The server resolves the .tdl file with this priority:

  1. $TODOLIST_FILE — environment variable (set by the MCP client)

  2. mcp_server.ini — local file with active = yes/no toggle

  3. ~/todolist.tdl — default fallback

MCP client

{
  "mcpServers": {
    "todolist": {
      "command": "python",
      "args": ["path/to/todolist-mcp/main.py"],
      "env": {
        "TODOLIST_FILE": "path/to/your-file.tdl"
      }
    }
  }
}

Local development

# mcp_server.ini
[server]
active = yes
tdl_file = test-contract/test_contract.tdl

Documentation

Document

Type

Contents

Tutorial

Tutorial

From zero to first command in 5 steps

How-to Guide

How-to

Recipes: create, search, comment, backup...

Explanation

Explanation

Architecture, design decisions, .tdl format

API Reference

Reference

Complete 16-tool API with all parameters

Project structure

todolist-mcp/
├── main.py                     # Entry point
├── config.json.example         # MCP config template
├── mcp_server.ini.example      # Local override template
├── pyproject.toml              # mypy + ruff + pyright
├── requirements.txt
├── src/
│   ├── models.py               # Pydantic models
│   ├── manager.py              # ToDoListManager (XML, CRUD, stats)
│   └── tools.py                # 16 @mcp.tool() handlers
├── test/                       # 80 unit tests
├── test-contract/              # 112 MCP contract tests
├── docs/
│   └── diataxis/               # Diataxis documentation
├── .agent/skills/
│   └── todolist-mcp/           # Agent skill
└── README.md

Tests

pytest test/ test-contract/ -q              # 192 tests
mypy src/ main.py test/ test-contract/      # Type checking
ruff check src/ main.py test/ test-contract/ # Linting

License

Apache License 2.0 — see LICENSE.

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • A MCP server built for developers enabling Git based project management with project and personal…

View all MCP Connectors

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/killo3967/todolist-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server