mirror of
https://github.com/kuhyx/todo-app.git
synced 2026-11-10 20:27:01 +01:00
|
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
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WzxdWVUTaKFW8m7YrvWbzV |
||
|---|---|---|
| .. | ||
| go_live.sh | ||
| install.sh | ||
| mint_token.sh | ||
| README.md | ||
| test_verify_mcp.py | ||
| todo_mcp.dart | ||
| todo-mcp.service | ||
| verify_mcp.py | ||
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.