todo-app/mcp
Krzysztof kuhy Rudnicki d09978a338
Some checks are pending
dependency freshness / dependencies on newest stable (push) Waiting to run
file-length / file length <= 250 lines (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
release-apk / release (APK) (push) Waiting to run
repo-contract / repo contract (push) Waiting to run
Add one-command MCP go-live + live verify
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WzxdWVUTaKFW8m7YrvWbzV
2026-11-02 10:45:45 +01:00
..
go_live.sh Add one-command MCP go-live + live verify 2026-11-02 10:45:45 +01:00
install.sh MCP: Dart task server replaces Python todo_mcp 2026-11-02 09:36:44 +01:00
mint_token.sh MCP: Dart task server replaces Python todo_mcp 2026-11-02 09:36:44 +01:00
README.md MCP: Dart task server replaces Python todo_mcp 2026-11-02 09:36:44 +01:00
test_verify_mcp.py Add one-command MCP go-live + live verify 2026-11-02 10:45:45 +01:00
todo_mcp.dart MCP: Dart task server replaces Python todo_mcp 2026-11-02 09:36:44 +01:00
todo-mcp.service MCP: Dart task server replaces Python todo_mcp 2026-11-02 09:36:44 +01:00
verify_mcp.py Add one-command MCP go-live + live verify 2026-11-02 10:45:45 +01:00

todo MCP server

Repo tasks for any Claude session (local or cloud): add_task, list_tasks, get_task, update_task, close_task (refused without evidence), search_tasks. Dart, Streamable HTTP on 127.0.0.1:8735/mcp; Caddy publishes it as https://todo.kuhy.duckdns.org/mcp.

The server is one more sync node: it reuses lib/cli (CliSession, SyncService) and writes its own CRDT log at todo-sync/notes/<node id>.json plus todo-sync/revs/<node id>. Code: lib/mcp/, entrypoint mcp/todo_mcp.dart, tests test/mcp/.

What Where
Firebase seed (read once) ~/.config/todo-mcp/firebase_auth.json
Bearer token hashes ~/.config/todo-mcp/tokens (<sha256> <env>)
Log, node id, session copy (0600) ~/.local/share/todo-mcp/
Binary ~/.local/lib/todo-mcp/todo_mcp

One-time setup

python3 ~/src/utils/crdt-sync/tool/seed_session.py --app todo-mcp
mcp/mint_token.sh pc        # prints the token once; export it as TODO_MCP_TOKEN
mcp/install.sh              # build + install the unit
systemctl --user enable --now todo-mcp.service

Deploy a new build: mcp/install.sh (restarts a running unit). Revoke a token: delete its line in tokens; no restart needed.