LabscoMCP early access ↗
danielschollMCP SERVER

Backlog Manager

Give an agent a backlog it can write to: issues with descriptions, tasks underneath them, and a New / InWork / Done status on each — stored as plain JSON.

by danielscholl ↗Project & Task ManagementCommunity

LABSCO SUMMARY

A backlog the agent can build, in a file you can read.

The intended move is not manual task entry — it is handing an assistant a specification and letting it decompose the work into issues and tasks itself, which is where the two-level structure earns its keep. Because the store is one JSON file, the result is reviewable and version-controllable rather than locked in a service. The active-issue model is the thing to remember: task calls land on whichever issue is currently selected, so selecting is a real step, not a convenience.

What it is

A file-based issue and task tracker exposed over MCP. Issues stand for features or bugs; tasks are the specific work items under one issue. One issue is active at a time, and task operations apply to it. Everything persists to a JSON file, so the backlog can be backed up, diffed or committed like any other file in the repository.

What you get

  • Issues created with a name, an optional description and an optional status — create_issue
  • Every issue listed — list_issues
  • One issue made the active one, which is what later task calls apply to — select_issue
  • An issue created or reset to a known state — initialize_issue
  • An issue's status changed — update_issue_status
  • A task added to the active issue with a title and optional description — add_task
  • The active issue's tasks listed, optionally filtered by status — list_tasks
  • A task moved between New, InWork and Done by task id — update_task_status

Requirements

No account and no key — storage is a local file. Python 3.12 or higher with uv or pip; uv pip install -e . then uv run backlog-manager starts it. Configuration is environment variables: TRANSPORT picks sse or stdio (default sse), HOST defaults to 0.0.0.0, PORT to 8050, and TASKS_FILE to tasks.json. Over SSE the client connects to http://localhost:8050/sse; over stdio the client starts the process itself. A Docker image builds with --build-arg PORT=8050. The pyproject name is backlog-manager (0.1.0).

Setup effort

Build from source — git clone https://github.com/danielscholl/backlog-manager-mcp.git