Skip to main content

MCP server for a plaintext todo list: CRUD + tags + search + stats Tools/Resources/Prompts, with a built-in browser dashboard.

Project description

todo-mcp-server-kit

An MCP server for a plaintext todo list. It exposes a project-local .claude/todos.md through MCP Tools (create / edit / complete / delete / search), Resources (list views + aggregate stats, including URI-templated views), and Prompts (weekly review / daily plan) — plus a built-in browser dashboard for visual editing.

The on-disk format is plain, human-readable Markdown, so your todos stay readable and version-controllable without this tool.

Install & run

Zero-install with uv (recommended):

uvx todo-mcp-server-kit --project-root /path/to/your/project

Or install from PyPI:

pip install todo-mcp-server-kit
todo-mcp-server-kit --project-root /path/to/your/project

The server speaks MCP over stdio — it is normally launched by an MCP client (Claude Code, Cursor, …), not run by hand.

--project-root is optional; resolution order is: --project-root > $TODO_MCP_PROJECT_ROOT > current working directory. Todos live in <project-root>/.claude/todos.md.

Register with Claude Code

claude mcp add todo -s user -- uvx todo-mcp-server-kit --project-root /path/to/your/project

Or, in any MCP client config (mcpServers):

{
  "mcpServers": {
    "todo": {
      "command": "uvx",
      "args": ["todo-mcp-server-kit", "--project-root", "/path/to/your/project"]
    }
  }
}

Capabilities

Tools (tools/call)

Tool Signature Purpose
add_todo (text, priority="med", due=None, tags=None) Create a todo
mark_done (id) Mark complete
edit_todo (id, text?, priority?, due?, done?, tags?) Edit fields (done=False to reopen; tags=[] to clear)
remove_todo (id) Delete
search_todos (query?, tag?, priority?, status="all", due_before?, due_after?) Filter by any combination of criteria
open_dashboard () Get the dashboard URL

Resources (resources/read)

URI Type Content
todo://list markdown Full todos.md
todo://tag/{tag} markdown Todos carrying a tag (URI template)
todo://status/{status} markdown open / done view (URI template)
todo://stats json Counts, completion rate, by-priority/by-tag, overdue, due-soon

Prompts (prompts/get)

Prompt Purpose
weekly_review Review the week: done / open / overdue + next-week focus
daily_plan Plan today: surface overdue, pick a Top-3 from open items

Browser dashboard

On startup the server runs a small HTTP dashboard in a daemon thread (default http://localhost:8765, falling back to the next free port). It renders todos as an interactive table — view, add, edit, complete, tag, and delete — and re-reads the file on every request. Call open_dashboard to get the URL.

Bound to 127.0.0.1 only, no auth — intended for local personal use; don't expose the port. The dashboard lives and dies with the server process.

Data format

Each todo is one Markdown line under <project-root>/.claude/todos.md:

- [ ] #12 [high] (due: 2026-06-01) (tags: agent,learning) Finish the v2 spec

due and tags are optional. See docs/FORMAT.md for the full grammar.

Docs

License

MIT © Zhang Yu

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

todo_mcp_server_kit-0.2.0.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

todo_mcp_server_kit-0.2.0-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file todo_mcp_server_kit-0.2.0.tar.gz.

File metadata

  • Download URL: todo_mcp_server_kit-0.2.0.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for todo_mcp_server_kit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 952aa4bd130758c7f91522a9be5fab45a7598a4fc978d43c9a77408ae90553ed
MD5 27ab08665e58b1b5521cd58112fcb4d3
BLAKE2b-256 a8e822b969ef20afe2837dc0ef6bd30f5c1b6f4449b5a6c16575d6bd56f07297

See more details on using hashes here.

Provenance

The following attestation bundles were made for todo_mcp_server_kit-0.2.0.tar.gz:

Publisher: publish.yml on zzcodd/mcp_repos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file todo_mcp_server_kit-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for todo_mcp_server_kit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3de4e5bbc8e7f61952ad56e626b80adbb8e991fec4000c62d37dc258df1c1d24
MD5 c19a57654c4cc2e2a95c1eb75abf7bce
BLAKE2b-256 2f8495ff335d2479d71f5d2d943fd1223f68fb26d92166b34bf25ffbad671b4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for todo_mcp_server_kit-0.2.0-py3-none-any.whl:

Publisher: publish.yml on zzcodd/mcp_repos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page