TaskPreset MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TaskPreset MCPadd a task to draft the Q3 report and show today's completion metrics"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TaskPreset MCP
Productivity-system presets for AI assistants. TaskPreset is a local-first MCP server: pick a methodology (GTD, Kanban, Scrum, PARA, OKR and more), and an AI client such as Claude Desktop or Claude Code can capture work, enforce that system's workflow, plan a day, complete tasks and read deterministic metrics. Data lives in one SQLite file you own. There is no cloud service, account, embedded LLM or API key.
Your system, enforced. Presets are declarative JSON: item types, statuses and allowed transitions. Two are bundled (
avatar-lite,gtd-lite) and eight more are suggested starters.Honest metrics. Completion and plan metrics with exact, documented definitions and timezone-correct day boundaries (docs/metrics.md). No XP, streaks or scores.
Works without an AI client too.
reportwrites an offline HTML kanban board and charts.Why not a markdown file? A file cannot reject an invalid transition, keep saved plan revisions, or compute metrics you can trust. TaskPreset can.
Status: hobby project, MVP complete and covered by automated tests. Not published to npm. MIT licensed. See docs/tasks.md.
Requirements
Node.js 24 LTS, 24.11 or later (see
.nvmrc)npm
better-sqlite3ships prebuilt binaries for common platforms. If none matches yours, npm builds it from source, which needs Python and a C++ toolchain.
TaskPreset is not published to npm. Run it from a local checkout.
Related MCP server: Tasks.md MCP Server
Install
git clone https://github.com/CjSong97/taskpreset-mcp.git
cd taskpreset-mcp
npm ci
npm run buildCreate a store
node dist/cli/main.js init --db /absolute/path/to/taskpreset.db --preset avatar-lite
node dist/cli/main.js doctor --db /absolute/path/to/taskpreset.db--db(orTASKPRESET_DB; the pre-renameWAYPOINT_DBis still honoured) must be an absolute path. If it is omitted, the store lives in the OS user-data directory:Windows:
%LOCALAPPDATA%\TaskPreset\taskpreset.dbmacOS:
~/Library/Application Support/TaskPreset/taskpreset.dbLinux:
$XDG_DATA_HOME/taskpreset/taskpreset.dbor~/.local/share/taskpreset/taskpreset.dbA store already at the pre-rename location (
Waypoint/waypoint.db) keeps being used.
--presetselectsavatar-lite(default) orgtd-lite, or takes an absolute path to a preset JSON file.--timezonedefaults toEurope/London. Both are fixed when the store is created. A later run with a different preset or timezone is refused. Use a new--dbinstead.initnever modifies an existing file.servealso creates the store on first run if it does not exist.doctoris read-only. It checks Node, the native SQLite module, the configured preset, store integrity, schema version and preset binding, and it reports counts only (never item content). SQLite may leave its-wal/-shmsidecar files next to the store after a read.
Keep your store outside any Git repository.
More productivity systems
Besides the two bundled presets, presets/suggested/ holds eight
starter templates: Personal Kanban, Scrum, PARA, OKR, Eisenhower matrix, Bullet Journal, Shape Up
and MoSCoW. They are limited interpretations (each says what it leaves out), are not bundled, and
load by absolute path: init --db <abs>.db --preset <abs path to presets/suggested/kanban-lite.json>.
A store is bound to its preset, so use one --db per system. Tests validate every file and run it
through the engine.
Back up
node dist/cli/main.js backup --db /absolute/path/to/taskpreset.db --out /absolute/path/to/backup.dbbackup is safe while clients are connected; do not copy the .db file by hand while a server
runs. Restore into a separate path and check it with doctor first. See
docs/backup-restore.md.
See your work (no AI client needed)
node dist/cli/main.js report --db /absolute/path/to/taskpreset.db --out /absolute/path/to/report.htmlreport writes one self-contained HTML file: a kanban board with a column per preset status,
header stats, a 26-week completion heatmap, completions per day, plan completion per day and open
work by tag (Element or Context). It reads the store read-only, works while a server is running,
needs no AI client or network, and contains no script or external resource. Open the file in any
browser; it follows your light/dark setting. Add --no-titles before sharing a screenshot, and
--as-of YYYY-MM-DD to pin "today". The file contains your item titles, so treat it as personal
data. Charts show counts only: no XP, streaks or scores.
To try it with synthetic data (never your real store):
node dist/cli/main.js demo --out /absolute/path/to/demo.db --preset avatar-lite
node dist/cli/main.js report --db /absolute/path/to/demo.db --out /absolute/path/to/demo.html --as-of 2026-10-12
Run
node dist/cli/main.js serve --db /absolute/path/to/taskpreset.dbThe server speaks MCP over stdio. It writes protocol messages to stdout and JSON-line diagnostics
to stderr (without item content). node dist/cli/main.js --help lists every command and option.
Connect a client
Claude Code:
claude mcp add taskpreset -- node /absolute/path/to/taskpreset-mcp/dist/cli/main.js serve --db /absolute/path/to/taskpreset.dbFor Claude Desktop JSON config, a step-by-step walkthrough with expected outputs and a seven-day
trial checklist, see docs/dogfooding.md. The author skipped the formal
seven-day trial; the walkthrough is covered by an automated test
(tests/mcp/walkthrough.test.ts).
Tools
Tool | Kind | Purpose |
| read-only | Preset identity, item types, statuses, transitions, tz, limits. |
| mutating | Create an item; |
| read-only | Filter by id/type/status/parent/tag/due date; cursor pagination. |
| mutating | Edit fields, re-parent, apply permitted status transitions. |
| mutating, idempotent | Mark done once; repeats return the original completion. |
| preview / mutating | Read-only preview by default; |
| read-only | Committed plan, revision and current item states. |
| read-only | Completion and plan metrics with exact interval (docs/metrics.md). |
Development
npm run verify # typecheck, lint, format check, build, tests
npm run check:clean-install # clone HEAD to a temp dir, npm ci, build, init, doctor, MCP smokeSee CLAUDE.md for architecture boundaries and safety rules.
Licence
MIT. Copyright (c) 2026 CjSong97.
This server cannot be deployed
Maintenance
Related MCP Connectors
ADHD system of record for agents: tasks, goals, loops, calendar, focus stats.
- DartOAuthcom.dartai
AI-native project management for tasks, docs, collaboration, and agents.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
- DoneThatOAuthai.donethat
Privacy-first work tracking with summaries, reports, coaching, and AI-ready long-term memory.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI-native task and project management through natural language conversation with Claude, eliminating app-switching by letting you add actions, manage projects across multiple areas of focus, and maintain a GTD-style execution system directly in chat.1-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI-native task management using plain markdown files to create, update, query, and organize Epics, Stories, Tasks, and Milestones without requiring a database.-
- FlicenseNot gradedqualityDmaintenanceEnables natural language task management including logging, updating, and summarizing productivity activities across multiple categories using a local SQLite database. It allows users to manage workflows and generate time-based summaries through standardized Model Context Protocol tools.1-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage tasks with full lifecycle support including due dates, priorities, tags, subtasks, and project lists via 19 SQLite-backed MCP tools.4-