Skip to main content
Glama
backloghq

backlog

by backloghq

backlog

GitHub stars License: MIT CI Docs

Persistente, sitzungsübergreifende Aufgabenverwaltung für Claude Code. Aufgaben überdauern Sitzungen, sodass Arbeit, die von einem Agenten begonnen wurde, von einem anderen fortgesetzt werden kann.

Aufgebaut auf @backloghq/agentdb — typisierte Schemas, automatisch inkrementierende IDs, virtuelle Filter, Blob-Speicherung. Reines TypeScript, keine nativen Abhängigkeiten.

Installation

/plugin marketplace add backloghq/backlog
/plugin install backlog@backloghq-backlog

Aus dem Quellcode

git clone https://github.com/backloghq/backlog.git
cd backlog && npm install && npm run build
claude --plugin-dir /path/to/backlog

Eigenständiger MCP-Server

Fügen Sie dies zur .claude/settings.json Ihres Projekts hinzu:

{
  "mcpServers": {
    "backlog": {
      "command": "node",
      "args": ["/path/to/agent-teams-task-mcp/dist/index.js"],
      "env": {
        "TASKDATA": "/path/to/task-data"
      }
    }
  }
}

Related MCP server: Vibe Board VE

Skills

Skill

Beschreibung

/backlog:tasks

Zeigt den aktuellen Backlog an — ausstehende, aktive, blockierte, überfällige Aufgaben

/backlog:plan

Zerlegt ein Ziel in Aufgaben mit Abhängigkeiten, Prioritäten und Spezifikationen

/backlog:standup

Tägliches Standup — erledigt, in Bearbeitung, blockiert, als Nächstes

/backlog:refine

Backlog-Pflege — vage Aufgaben korrigieren, fehlende Prioritäten ergänzen, defekte Abhängigkeiten beheben, veraltete Elemente entfernen

/backlog:spec

Schreibt ein Spezifikationsdokument für eine Aufgabe vor der Implementierung

/backlog:implement

Wählt eine Aufgabe aus, liest deren Spezifikation, implementiert sie und markiert sie als erledigt

/backlog:handoff

Vorbereitung auf die nächste Sitzung — Fortschritt kommentieren, aktive Aufgaben stoppen, Status zusammenfassen

Agent

Der task-planner-Agent kann automatisch von Claude aufgerufen werden, wenn Arbeit geplant werden muss. Er liest die Codebasis, zerlegt Ziele in Aufgaben mit Abhängigkeiten und schreibt Spezifikationen für komplexe Elemente.

Hooks

Ereignis

Was es bewirkt

SessionStart

Zeigt die Anzahl der ausstehenden Aufgaben zu Beginn einer Sitzung an

TaskCreated

Synchronisiert Claudes integrierte Aufgaben mit dem persistenten Backlog

TaskCompleted

Markiert die entsprechende Backlog-Aufgabe als erledigt, wenn Claude eine integrierte Aufgabe abschließt

SubagentStart

Weist nicht zugewiesene, ausstehende Aufgaben automatisch dem erzeugten Agenten zu

Tools (MCP)

Tools für die vollständige Verwaltung des Aufgabenlebenszyklus:

Tool

Beschreibung

task_list

Fragt Aufgaben mit Filtersyntax ab. Gibt ein JSON-Array mit allen Feldern zurück.

task_count

Zählt Aufgaben, die einem Filter entsprechen. Gleiche Syntax wie task_list.

task_add

Erstellt eine neue ausstehende Aufgabe. Nur die Beschreibung ist erforderlich; alle anderen Felder sind optional.

task_log

Protokolliert bereits abgeschlossene Arbeit direkt im Status „erledigt“.

task_modify

Teilweise Aktualisierung einer oder mehrerer Aufgaben, die einem Filter entsprechen. Nur bereitgestellte Felder werden geändert.

task_duplicate

Kopiert eine bestehende Aufgabe mit optionalen Feldüberschreibungen.

task_done

Markiert eine Aufgabe mit Endzeitstempel als erledigt.

task_delete

Löscht eine Aufgabe (Soft-Delete). Wiederherstellbar mit task_undo. Verwenden Sie task_purge zum dauerhaften Entfernen.

task_annotate

Fügt eine mit Zeitstempel versehene Notiz hinzu. Verwenden Sie task_doc_write für längere Inhalte.

task_denotate

Entfernt eine Anmerkung durch exakten Textabgleich.

task_start

Markiert eine Aufgabe als aktiv in Bearbeitung. Sichtbar in +ACTIVE-Abfragen.

task_stop

Stoppt die Arbeit an einer Aufgabe. Setzt sie zurück in den Status „ausstehend“.

task_undo

Macht den letzten Vorgang rückgängig. Kann wiederholt aufgerufen werden.

task_info

Ruft vollständige JSON-Details für eine einzelne Aufgabe per ID oder UUID ab.

task_import

Erstellt Aufgaben in großen Mengen aus einem JSON-Array. Atomarer Batch-Vorgang.

task_purge

Entfernt eine gelöschte Aufgabe dauerhaft. Nicht umkehrbar.

task_doc_write

Hängt ein Markdown-Dokument an eine Aufgabe an oder ersetzt es (Spezifikationen, Notizen, Kontext).

task_doc_read

Liest das an eine Aufgabe angehängte Markdown-Dokument.

task_doc_delete

Entfernt das Dokument einer Aufgabe. Dauerhaft.

task_archive

Verschiebt alte erledigte/gelöschte Aufgaben in vierteljährliche Archivsegmente.

task_archive_list

Listet verfügbare Archivsegmente auf.

task_archive_load

Lädt archivierte Aufgaben zur schreibgeschützten Überprüfung.

task_projects

Listet Projektnamen mit ausstehenden/wiederkehrenden Aufgaben auf.

task_tags

Listet Tags mit ausstehenden/wiederkehrenden Aufgaben auf.

Filtersyntax

status:pending                    # all pending tasks
project:backend +bug              # bugs in backend project
priority:H due.before:friday      # high priority due before friday
+OVERDUE                          # overdue tasks
+ACTIVE                           # tasks currently being worked on
+BLOCKED                          # tasks blocked by dependencies
+READY                            # actionable tasks (past scheduled date)
agent:explorer                    # tasks assigned to the explorer agent
( project:web or project:api )    # boolean with parentheses
description.contains:auth         # substring match

Unterstützt Attributmodifikatoren (.before, .after, .by, .has, .not, .none, .any, .startswith, .endswith), Tags (+tag, -tag), virtuelle Tags (+OVERDUE, +ACTIVE, +BLOCKED, +READY, +TAGGED, +ANNOTATED usw.) und boolesche Operatoren (and, or).

Aufgabendokumente

Hängen Sie Markdown-Dokumente (Spezifikationen, Kontext, Übergabenotizen) an jede Aufgabe an:

task_doc_write  id:"1"  content:"# Spec\n\nBuild the auth flow.\n"
task_doc_read   id:"1"
task_doc_delete id:"1"

Das Schreiben eines Dokuments fügt ein +doc-Tag und has_doc:yes hinzu, sodass Agenten Aufgaben mit Dokumenten entdecken können:

task_list filter:"+doc"
task_list filter:"has_doc:yes"

Agentenidentität

Aufgaben unterstützen ein agent-Feld zur Nachverfolgung, welcher Agent eine Aufgabe besitzt:

task_add  description:"Investigate bug"  agent:"explorer"
task_list filter:"agent:explorer status:pending"

Projektisolierung

Jedes Projekt erhält automatisch seine eigenen Aufgabendaten. Bei Verwendung als Plugin befinden sich die Aufgabendaten unter ~/.claude/plugins/data/backlog/projects/<project-slug>/. Bei eigenständiger Verwendung setzen Sie TASKDATA explizit.

Variable

Beschreibung

TASKDATA

Expliziter Pfad zum Aufgabendatenverzeichnis (überschreibt die automatische Ableitung)

TASKDATA_ROOT

Stammverzeichnis für automatisch abgeleitete projektbezogene Aufgabendaten

BACKLOG_NAMESPACE

Expliziter Sammlungsname (Standard: tasks)

BACKLOG_AUTO_NAMESPACE

Auf true setzen, um den Sammlungsnamen vom aktuellen Arbeitsverzeichnis (CWD) abzuleiten

BACKLOG_AGENT_ID

Agenten-ID für Unterstützung mehrerer Schreibzugriffe (Claude, Gemini usw.)

BACKLOG_BACKEND

Speicher-Backend: weglassen für Dateisystem (Standard), s3 für Amazon S3

BACKLOG_S3_BUCKET

S3-Bucket-Name (erforderlich, wenn BACKLOG_BACKEND=s3)

BACKLOG_S3_REGION

AWS-Region (optional bei Verwendung von Standard-Anmeldeinformationen)

Unterstützung für mehrere Schreibzugriffe

Backlog unterstützt den gleichzeitigen Zugriff von mehreren Prozessen (z. B. Claude Desktop und Gemini CLI), die dieselben Daten teilen. Um dies zu aktivieren:

  1. Weisen Sie jedem Prozess eine eindeutige BACKLOG_AGENT_ID zu (z. B. claude, gemini).

  2. Wenn eine Agenten-ID festgelegt ist, verwendet die Engine agentenspezifische Schreibprotokolle, wodurch Dateisperren vermieden werden.

  3. Jeder Prozess ruft vor Vorgängen automatisch refresh() auf, um Änderungen von anderen Agenten zu übernehmen.

Namespacing

Wenn Sie ein einzelnes TASKDATA-Verzeichnis (wie einen gemeinsam genutzten S3-Bucket oder einen globalen ~/.backlog-Ordner) für mehrere Projekte verwenden möchten, können Sie Namespaces verwenden, um Aufgaben getrennt zu halten:

  1. Manuell: Setzen Sie BACKLOG_NAMESPACE=my-project, um einen bestimmten Sammlungsnamen zu verwenden.

  2. Automatisch: Setzen Sie BACKLOG_AUTO_NAMESPACE=true, damit Backlog automatisch einen Sammlungsnamen aus Ihrem aktuellen Arbeitsverzeichnis ableitet (z. B. my-app-a1b2c3d4).

Beispielkonfiguration (.claude/settings.json):

{
  "mcpServers": {
    "backlog": {
      "command": "node",
      "args": ["/path/to/backlog/dist/index.js"],
      "env": {
        "TASKDATA": "/home/user/.backlog",
        "BACKLOG_AUTO_NAMESPACE": "true",
        "BACKLOG_AGENT_ID": "claude-desktop"
      }
    }
  }
}

Beide Methoden ermöglichen es mehreren Projekten, dasselbe Speicher-Backend zu nutzen und gleichzeitig isolierte, projektspezifische Backlogs beizubehalten.

S3-Backend

Speichern Sie Aufgabendaten in S3 für die Teamfreigabe oder Cloud-Persistenz. Erfordert @backloghq/opslog-s3:

npm install @backloghq/opslog-s3

Konfiguration über Umgebungsvariablen in .claude/settings.json:

{
  "mcpServers": {
    "backlog": {
      "command": "node",
      "args": ["/path/to/backlog/dist/index.js"],
      "env": {
        "TASKDATA": "my-project/tasks",
        "BACKLOG_BACKEND": "s3",
        "BACKLOG_S3_BUCKET": "my-team-backlog",
        "BACKLOG_S3_REGION": "us-east-1"
      }
    }
  }
}

Bei Verwendung von S3 wird TASKDATA zum Schlüsselpräfix im Bucket anstelle eines Dateisystempfads.

Docker

docker build -t backlog .
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
  | docker run --rm -i backlog

Entwicklung

npm install
npm run build          # compile TypeScript
npm run lint           # run ESLint
npm test               # run tests
npm run test:coverage  # run tests with coverage
npm run dev            # watch mode

Community

Wenn Backlog für Sie nützlich ist, ziehen Sie in Betracht, ihm einen Stern zu geben — es hilft anderen, das Projekt zu finden.

Lizenz

MIT

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 20 tool updatesv1.5.0
    • Changedtask_add12 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Agent identity, e.g. 'explorer', 'planner', 'reviewer'"New value: +"Agent identity for tracking task ownership across agent teams. E.g. 'explorer', 'planner', 'reviewer'."
      • changedInput schema / properties / depends / description
        Previous value: -"UUID(s) of tasks this depends on, comma-separated"New value: +"Comma-separated UUIDs of tasks this depends on. Task shows as +BLOCKED until dependencies are completed."
      • changedInput schema / properties / description / description
        Previous value: -"Task description text"New value: +"Task description (required, max 500 chars). Brief summary of what needs to be done."
      • changedInput schema / properties / due / description
        Previous value: -"Due date, e.g. 'tomorrow', '2025-12-31', 'eow'"New value: +"Due date. Accepts: ISO dates ('2025-12-31'), relative ('3d', '2w'), named ('tomorrow', 'friday', 'eow', 'eom'), compound ('now+3d')."
      • changedInput schema / properties / extra / description
        Previous value: -"Additional raw attributes"New value: +"Space-separated additional attributes or +tag/-tag modifiers."
      • changedInput schema / properties / priority / description
        Previous value: -"Priority: H (high), M (medium), L (low)"New value: +"Priority: H (high), M (medium), L (low). Affects urgency score and sort order."
      • changedInput schema / properties / project / description
        Previous value: -"Project name, e.g. 'backend'"New value: +"Project name for grouping (alphanumeric, hyphens, underscores). E.g. 'backend', 'auth-refactor'"
      • changedInput schema / properties / recur / description
        Previous value: -"Recurrence frequency, e.g. 'daily', 'weekly', '2wks', 'monthly'. Requires a due date."New value: +"Recurrence pattern. Requires 'due' to be set. Values: 'daily', 'weekly', 'weekdays', 'biweekly', 'monthly', 'quarterly', 'yearly', or numeric like '3d', '2w'."
      • changedInput schema / properties / scheduled / description
        Previous value: -"Scheduled date — when to start working on the task, e.g. 'monday', 'tomorrow'"New value: +"Scheduled start date — when to begin working. Same date formats as 'due'."
      • changedInput schema / properties / tags / description
        Previous value: -"Tags to apply, as comma-separated list or JSON array. E.g. 'bug,urgent' or '[\"bug\",\"urgent\"]'"New value: +"Tags as comma-separated list or JSON array. E.g. 'bug,urgent' or '[\"bug\",\"urgent\"]'. Used for filtering with +tag/-tag syntax."
      • changedInput schema / properties / until / description
        Previous value: -"End date for recurrence — no instances generated past this date, e.g. '2026-12-31'"New value: +"End date for recurrence — no instances generated past this date. Only meaningful with 'recur'. Same date formats as 'due'."
      • changedInput schema / properties / wait / description
        Previous value: -"Wait date — task hidden until this date"New value: +"Wait date — task is hidden from default views until this date. Same date formats as 'due'."
    • Changedtask_annotate2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID."
      • changedInput schema / properties / text / description
        Previous value: -"Annotation text"New value: +"Annotation text to add. Stored with a timestamp. Keep concise — use task_doc_write for longer content."
    • Changedtask_archive1 field changed
      • changedInput schema / properties / older_than_days / description
        Previous value: -"Number of days. Archive tasks completed/deleted more than this many days ago. Default: 90"New value: +"Archive tasks completed/deleted more than this many days ago. Default: 90. E.g. '30' for tasks older than a month."
    • Changedtask_archive_load1 field changed
      • changedInput schema / properties / segment / description
        Previous value: -"Archive segment name, e.g. '2026-Q1'"New value: +"Archive segment name, e.g. '2026-Q1'. Use task_archive_list to see available segments."
    • Changedtask_count1 field changed
      • changedInput schema / properties / filter / description
        Previous value: -"Filter expression. Leave empty for all pending tasks."New value: +"Filter expression. Same syntax as task_list. Examples: 'status:pending', '+OVERDUE', 'project:backend +bug'. Leave empty for all pending tasks."
    • Changedtask_delete1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID of the task to delete."
    • Changedtask_denotate2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID."
      • changedInput schema / properties / text / description
        Previous value: -"Exact annotation text to remove"New value: +"Exact annotation text to remove (case-sensitive). Must match a previously added annotation."
    • Changedtask_doc_delete1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID."
    • Changedtask_doc_read1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID."
    • Changedtask_doc_write2 fields changed
      • changedInput schema / properties / content / description
        Previous value: -"Document content (markdown)"New value: +"Document content in markdown format. Replaces any existing document on this task."
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID."
    • Changedtask_done1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID. Task must be in pending or active status."
    • Changedtask_duplicate8 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Agent identity"New value: +"Agent identity for the new task."
      • changedInput schema / properties / description / description
        Previous value: -"New description (overrides original)"New value: +"New description to override the original."
      • changedInput schema / properties / due / description
        Previous value: -"New due date"New value: +"New due date. Pass empty string to clear."
      • changedInput schema / properties / extra / description
        Previous value: -"Additional raw attributes"New value: +"Space-separated additional attributes or +tag/-tag modifiers."
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID to duplicate"New value: +"Task ID number (e.g. '1') or UUID of the task to copy."
      • changedInput schema / properties / priority / description
        Previous value: -"New priority"New value: +"New priority. Pass empty string to clear."
      • changedInput schema / properties / project / description
        Previous value: -"New project"New value: +"New project. Pass empty string to clear."
      • changedInput schema / properties / tags / description
        Previous value: -"Tags to add or remove, as comma-separated list. E.g. 'frontend,urgent' or '-old,+new'"New value: +"Tags to add (+) or remove (-). E.g. '+frontend,-old'. Applied on top of the copied tags."
    • Changedtask_import1 field changed
      • changedInput schema / properties / tasks / description
        Previous value: -"JSON array of task objects, e.g. '[{\"description\":\"My task\",\"project\":\"foo\"}]'"New value: +"JSON array of task objects. Required field: 'description'. Optional: 'project', 'tags' (string[]), 'priority' (H/M/L), 'due', 'status', 'depends' (UUID[]), 'recur', 'agent', 'uuid' (to set explicit ID). Example: '[{\"description\":\"My task\",\"project\":\"foo\",\"priority\":\"H\"}]'"
    • Changedtask_info1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID. Returns an error if no task matches."
    • Changedtask_list1 field changed
      • changedInput schema / properties / filter / description
        Previous value: -"Filter expression. Leave empty for all pending tasks."New value: +"Filter expression to match tasks. Examples: 'status:pending', 'project:backend +bug', 'due.before:tomorrow', '+OVERDUE', '+BLOCKED', 'priority:H', 'agent:explorer'. Combine with 'and'/'or' and parentheses. Leave empty for all pending tasks."
    • Changedtask_log6 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Agent identity"New value: +"Agent identity that completed the work."
      • changedInput schema / properties / description / description
        Previous value: -"Task description text"New value: +"Description of the completed work (required, max 500 chars)."
      • changedInput schema / properties / extra / description
        Previous value: -"Additional raw attributes"New value: +"Space-separated additional attributes or +tag modifiers."
      • changedInput schema / properties / priority / description
        Previous value: -"Priority: H/M/L"New value: +"Priority: H (high), M (medium), L (low)."
      • changedInput schema / properties / project / description
        Previous value: -"Project name"New value: +"Project name for grouping."
      • changedInput schema / properties / tags / description
        Previous value: -"Tags to apply, as comma-separated list. E.g. 'done,reviewed'"New value: +"Tags as comma-separated list. E.g. 'done,reviewed'"
    • Changedtask_modify13 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Agent identity, e.g. 'explorer', 'planner', 'reviewer'"New value: +"Agent identity. Pass empty string to unassign."
      • changedInput schema / properties / depends / description
        Previous value: -"New dependency UUIDs"New value: +"New dependency UUIDs (comma-separated). Replaces existing dependencies. Pass empty string to clear."
      • changedInput schema / properties / description / description
        Previous value: -"New description text"New value: +"New description text (max 500 chars). Only set if you want to change it."
      • changedInput schema / properties / due / description
        Previous value: -"New due date"New value: +"New due date. Accepts ISO dates, relative ('3d'), named ('friday', 'eow'). Pass empty string to clear."
      • changedInput schema / properties / extra / description
        Previous value: -"Additional raw attributes"New value: +"Space-separated additional attributes or +tag/-tag modifiers."
      • changedInput schema / properties / filter / description
        Previous value: -"Filter to select tasks to modify (ID, UUID, or filter expression)"New value: +"Filter to select tasks. Can be a numeric ID ('1'), UUID, or filter expression ('project:backend priority:H'). Matches may update multiple tasks."
      • changedInput schema / properties / priority / description
        Previous value: -"New priority (empty string to clear)"New value: +"New priority. Pass empty string to clear priority entirely."
      • changedInput schema / properties / project / description
        Previous value: -"New project name"New value: +"New project name. Pass empty string to clear."
      • changedInput schema / properties / recur / description
        Previous value: -"New recurrence frequency"New value: +"New recurrence pattern ('daily', 'weekly', '3d', etc). Pass empty string to clear."
      • changedInput schema / properties / scheduled / description
        Previous value: -"New scheduled date"New value: +"New scheduled start date. Pass empty string to clear."
      • changedInput schema / properties / tags / description
        Previous value: -"Tags to add (+) or remove (-), as comma-separated list. E.g. 'frontend,urgent' or '-old,+new'"New value: +"Tags to add (+) or remove (-). E.g. '+frontend,+urgent' or '-old,+new'. Prefix with + to add, - to remove. Without prefix, tags are added."
      • changedInput schema / properties / until / description
        Previous value: -"End date for recurrence — no instances generated past this date, e.g. '2026-12-31'"New value: +"End date for recurrence. Pass empty string to clear."
      • changedInput schema / properties / wait / description
        Previous value: -"New wait date"New value: +"New wait date. Task hidden from default views until this date. Pass empty string to clear."
    • Changedtask_purge1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID of a deleted task"New value: +"Task ID number (e.g. '1') or UUID. Task must be in 'deleted' status."
    • Changedtask_start1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID. Task must be in pending status."
    • Changedtask_stop1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID. Task must be currently active (started)."
  2. 24 tool updatesv1.4.0
    • First observedtask_add
    • First observedtask_annotate
    • First observedtask_archive
    • First observedtask_archive_list
    • First observedtask_archive_load
    • First observedtask_count
    • First observedtask_delete
    • First observedtask_denotate
    • First observedtask_doc_delete
    • First observedtask_doc_read
    • First observedtask_doc_write
    • First observedtask_done
    • First observedtask_duplicate
    • First observedtask_import
    • First observedtask_info
    • First observedtask_list
    • First observedtask_log
    • First observedtask_modify
    • First observedtask_projects
    • First observedtask_purge
    • First observedtask_start
    • First observedtask_stop
    • First observedtask_tags
    • First observedtask_undo

TDQS

A4.4/5.0

Scored across 24 tools

Disambiguation5/5

Each tool has a distinct, clearly separated purpose with explicit cross-references in descriptions (e.g., 'use task_log instead', 'use task_doc_write instead'). No overlapping functionality—CRUD, lifecycle, archival, and document operations are cleanly partitioned.

Naming Consistency5/5

Strict snake_case convention with consistent 'task_' prefix. Sub-resources follow predictable patterns (task_doc_read/write/delete, task_archive_list/load). Verbs are clear and consistently placed (task_add, task_delete, task_modify).

Tool Count4/5

24 tools is above the typical ideal range but justified by the domain complexity. The set covers full task lifecycle, document attachments, archival management, annotations, and discovery without redundancy. Each tool earns its place for a comprehensive backlog system.

Completeness4/5

Excellent coverage of CRUD, status workflow (start/stop/done), soft-delete with purge, annotations, document attachments, and archival. Minor gap: archived tasks are view-only with no restore-to-active operation, though this appears to be an intentional cold-storage design.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Persistent memory and task board for Claude Code. 14 tools spanning projects, tasks, sessions, and activity logs — backed by Firestore, runs on the free tier. Handoff notes survive context compaction; the next session reads the last handoff and picks up where you stopped.
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive project management and workflow tracking system that integrates with Claude Code via MCP, automatically capturing sessions, tools, agents, and project tasks into a centralized dashboard and database.
    11 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for project planning inside Claude. It tracks progress, knows your codebase, and resumes exactly where you left off every session.
    6 npm
    5
    -