111 lines
2.1 KiB
Markdown
111 lines
2.1 KiB
Markdown
# todo-mcp
|
|
|
|
A todo CLI with a built-in [MCP](https://modelcontextprotocol.io/) server.
|
|
The main idea is that you can tell an MCP-compatible AI assistant "add this to
|
|
todo" while you're in the middle of something else, and it just works.
|
|
|
|
Todos are stored in a local SQLite database and can be organized with
|
|
priorities, tags, and automatic git project association.
|
|
|
|
## Install
|
|
|
|
Requires Rust 1.85+ (edition 2024).
|
|
|
|
```sh
|
|
cargo install --path .
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Set `TODO_DB` to override the default database path (`~/.local/share/todo/todos.db`).
|
|
|
|
## Usage
|
|
|
|
```sh
|
|
# add a todo
|
|
todo-mcp add "fix the login bug"
|
|
|
|
# add with priority and tags
|
|
todo-mcp add "refactor auth module" -p high -t backend -t tech-debt
|
|
|
|
# add without associating to the current git repo
|
|
todo-mcp add "something general" --no-project
|
|
|
|
# list open todos
|
|
todo-mcp ls
|
|
|
|
# list todos for the current repo only
|
|
todo-mcp ls --here
|
|
|
|
# filter by tag or priority
|
|
todo-mcp ls -t backend
|
|
todo-mcp ls -p critical
|
|
|
|
# search
|
|
todo-mcp ls -s "auth"
|
|
|
|
# mark as done
|
|
todo-mcp done 3
|
|
|
|
# edit text, priority, or tags
|
|
todo-mcp edit 3 "updated description"
|
|
todo-mcp edit 3 -p low
|
|
todo-mcp edit 3 -t new-tag --untag old-tag
|
|
|
|
# remove permanently
|
|
todo-mcp rm 3
|
|
|
|
# show all tags in use
|
|
todo-mcp tags
|
|
|
|
# clean up completed todos
|
|
todo-mcp purge
|
|
```
|
|
|
|
## Docker
|
|
|
|
```sh
|
|
docker build -t local/todo-mcp .
|
|
docker run --rm -v todo-mcp-data:/data -e TODO_DB=/data/todos.db local/todo-mcp --help
|
|
```
|
|
|
|
Data is persisted in the `todo-mcp-data` volume. See [Usage](#usage) for more commands.
|
|
|
|
## Claude Setup
|
|
|
|
### Native
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"todo": {
|
|
"command": "todo-mcp",
|
|
"args": ["mcp-serve"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Docker
|
|
|
|
Build the image first (see [Docker](#docker)), then add to your Claude MCP config:
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"todo": {
|
|
"command": "docker",
|
|
"args": [
|
|
"run", "-i", "--rm",
|
|
"-v", "todo-mcp-data:/data",
|
|
"-e", "TODO_DB=/data/todos.db",
|
|
"local/todo-mcp", "mcp-serve"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
This gives Claude access to all todo operations — adding, listing, completing,
|
|
editing, removing, and purging.
|