activity_log
View the activity log showing what changed and when. Useful for understanding recent progress or reviewing what happened since the last session.
Give a coding agent a real tracker — projects, epics, tasks and dependencies in one SQLite file in your repo.
LABSCO SUMMARY
The payoff is on day two: tracker_session_diff and tracker_dashboard let an agent open a session by asking what moved, rather than re-reading the repository and guessing. Dependencies are enforced rather than described — a task whose prerequisite is unfinished comes back blocked, and unblocks itself when that prerequisite is marked done.
A local task tracker exposed as 31 MCP tools. Projects, epics, tasks, subtasks, dependencies, comments and notes live in a single SQLite file in your project, and the agent writes to it as it works and reads it when it comes back.
One environment variable, DB_PATH, holding an absolute path to the .tracker.db file — the file and its schema are created on first use. Runs over stdio through npx, on macOS, Windows or Linux. No account, no API key, no external service: the data stays in the SQLite file you named.
One command — npx -y saga-mcp
USE CASES
Ask what changed since the last session, then read the dashboard for the active epic and anything blocked or overdue.
Create the epic, then the tasks with depends_on set, so the ones that must wait come back blocked instead of being started early.
Leave a comment on the task as you go and save the decision as a note, both searchable later.
Save the steps once as a template with {variable} placeholders, then apply it into each new epic.
Pull one task with its subtasks, comments, notes and dependencies in a single call.
Export the whole tree as JSON and import it on the other side; dependencies and comments come with it.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
activity_logView the activity log showing what changed and when. Useful for understanding recent progress or reviewing what happened since the last session.
comment_addAdd a comment to a task. Comments create a chronological discussion thread — useful for leaving breadcrumbs across sessions.
comment_listList all comments on a task in chronological order.
epic_createCreate an epic within a project. Epics group related tasks into a feature or workstream. Pass branch to scope the epic to a git branch (use "current" to auto-detect).
epic_listList epics for a project with task counts and completion stats. Optionally filter by status, priority, or branch. Pass branch="current" to auto-detect the active git branch; pass empty string to list only branch-agnostic epics.
epic_updateUpdate an epic. Pass only the fields you want to change. Set status to "cancelled" to soft-delete. Pass branch="current" to pin to the active branch, or empty string to clear.
note_deleteDelete a note by ID.
note_listList notes with optional filters. Returns notes sorted by most recent first.
note_saveCreate or update a note. Notes capture decisions, context, progress, meeting notes, blockers, technical details, or release info. If "id" is provided, updates the existing note; otherwise creates a new one.
note_searchSearch across note titles and content by keyword.
project_createCreate a new project. Projects are the top-level container for all work.
project_listList all projects with epic/task counts and completion percentages. Optionally filter by status.
project_updateUpdate a project. Pass only the fields you want to change. Set status to "archived" to soft-delete.
subtask_createCreate one or more subtasks (checklist items) for a task. Accepts a single title string or an array of title strings for batch creation.
subtask_deleteDelete one or more subtasks. Accepts a single ID or array of IDs.
subtask_updateUpdate a subtask title, status, or sort order.
task_batch_updateUpdate multiple tasks at once. Useful for changing status of several tasks (e.g., mark 3 tasks as done) or reassigning tasks.
task_createCreate a task within an epic. Tasks are the primary unit of work.
task_getGet a single task with full details including all subtasks, related notes, comments, and dependencies.
task_listList tasks with optional filters. If no epic_id given, lists across ALL epics. Includes subtask counts and dependency info. Pass branch="current" to restrict to tasks whose epic is scoped to the active git branch.
task_updateUpdate a task. Pass only fields to change. Status transitions are automatically logged in the activity log.
template_applyApply a template to create tasks in an epic. Replaces {variable} placeholders with provided values.
template_createCreate a reusable task template. Templates define a set of tasks that can be instantiated into any epic. Use {variable} placeholders for dynamic values.
template_deleteDelete a task template.
template_listList all available task templates.
tracker_dashboardGet a comprehensive project overview in a single call. Returns: project info, all epics with task counts, overall stats (total/done/blocked/in_progress), recent activity, and recent notes. This is the best first tool to call when starting work on a project. Pass branch="current" to scope the dashboard to the active git branch.
tracker_exportExport a full project as nested JSON. Includes all epics, tasks, subtasks, comments, dependencies, and related notes. Useful for backup, migration, or sharing.
tracker_importImport a project from JSON (matching tracker_export format). Creates all entities with new IDs and remaps references. Uses a transaction for atomicity.
tracker_initInitialize the tracker for a project. If the database is empty, creates a project with the given name. If a project already exists, returns its info.
tracker_searchSearch across ALL entities (projects, epics, tasks, notes) by keyword. Returns categorized results. Pass branch="current" to restrict epic/task matches to the active git branch (projects and notes are not branch-scoped).
tracker_session_diffShow what changed since a given timestamp. Returns aggregated summary with counts by action and entity type, plus highlights of key changes. Call this at the start of a session to understand what happened since the last one.
BEFORE YOU INSTALL
31 tools when we connected.
Both documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 31 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y saga-mcp{
"mcpServers": {
"saga": {
"command": "npx",
"args": [
"-y",
"saga-mcp"
],
"env": {
"DB_PATH": "<YOUR_PATH_TO_PROJECT>/.tracker.db"
}
}
}
}