llm-backlog

llm-backlog

MCP server for managing a project backlog as Markdown files in Git, enabling AI agents to read, create, and update tasks programmatically.

Category
访问服务器

README

llm-backlog

CI npm License: MIT Bun

A project backlog for humans and AI agents. Tasks live as plain Markdown files inside a Git repository. A web UI lets humans manage them visually; an MCP endpoint lets AI agents read, create, and update them programmatically.


What is a backlog?

A backlog is an ordered list of work that needs to be done on a project. Each item is called a task. Tasks have no fixed start date — they describe what needs to happen and why, and they sit in the backlog until someone picks them up.

The backlog is always changing. New tasks get added when ideas or bugs surface. Tasks get refined as context accumulates. Tasks get closed when the work is done. The goal is to keep the list honest: every task should be clear enough that anyone — human or AI — can read it and know exactly what is expected.


What is a task?

A task is a Markdown file with a YAML frontmatter block and a freeform body.

backlog/tasks/back-42 - Add payment webhook handler.md

Metadata (frontmatter)

Field Purpose
id Unique identifier, e.g. BACK-42
title One-line summary of the work
status Current state: To Do, In Progress, Review, Done, Blocked
priority high, medium, or low
assignee Who is doing this, e.g. @alice
milestone Which milestone this task belongs to
labels Free tags for filtering
dependencies IDs of tasks that must finish first
references URLs or file paths relevant to the task
documentation Additional documentation URLs or paths

Body sections

Section For whom Purpose
Description Human + AI What needs to be done and why. The better this is written, the better the AI output.
Implementation Plan AI Written by the AI before coding. Describes the approach. Review and approve before the AI proceeds.
Final Summary AI Written by the AI when the task is complete. A PR-style summary of what changed and why.

A well-written task

The description is the contract between the person who wants the work done and the person (or AI) doing it. Explain the problem and the desired outcome. Give enough context that someone unfamiliar with the codebase could understand what is being asked.

A vague task produces vague results. A precise task produces precise results.


Running the server

# Install dependencies
bun i

# Start the server
PORT=6420 OPEN_BROWSER=false bun src/main.ts

The server exposes:

  • Web UI at http://localhost:6420
  • MCP endpoint at http://localhost:6420/mcp

Environment variables

Variable Required Purpose
PORT No (default: 6420) Port to listen on
BACKLOG_PROJECT_REPO No Remote git repo to clone as the project root. Leave empty to use the current working directory.
AUTH_CONFIG_REPO No Remote git repo containing users.md for API key and OAuth auth. Required to enable authentication.
GOOGLE_CLIENT_ID No Google OAuth client ID. Required for web UI login.
JWT_SECRET No JWT secret for session tokens. Auto-generated if empty.
OPEN_BROWSER No (default: true) Set to false to suppress the browser launch on start.

Web UI

The web interface is the primary way for humans to interact with the backlog.

  • Board — Kanban view, drag tasks between columns.
  • All Tasks — table view with filtering by status, priority, and label.
  • My Work — tasks assigned to the logged-in user, grouped by milestone.
  • Milestones — group tasks by milestone and track progress.
  • Decisions — log architectural decisions as ADRs.
  • Documents — store reference documentation alongside the tasks.

Authentication uses Google OAuth. Configure GOOGLE_CLIENT_ID and AUTH_CONFIG_REPO to enable it.


Storage

All data is plain text. Tasks, milestones, decisions, and documents are Markdown files committed to Git. The server auto-commits mutations when auto_commit: true is set in backlog/config.yml.

backlog/
  tasks/              ← active tasks
  tasks/archive/      ← archived tasks
  tasks/done/         ← completed tasks
  milestones/         ← milestone definitions
  milestones/archive/ ← archived milestones
  decisions/          ← architectural decision records
  documents/          ← reference documentation
  config.yml          ← project configuration

For AI agents (MCP)

The MCP endpoint at /mcp implements the Model Context Protocol. AI agents connect to it to read and manage the backlog without touching the filesystem directly.

Connection

Add this to your agent's MCP configuration:

{
  "mcpServers": {
    "backlog": {
      "type": "http",
      "url": "http://localhost:6420/mcp?token=<your-api-key>"
    }
  }
}

The token is passed as a query parameter because some MCP clients (e.g. Claude Code) do not support custom headers in HTTP server configuration. API keys are defined in the users.md file inside the AUTH_CONFIG_REPO repository.

Authentication and roles

Users are defined in users.md inside the config repo:

---
users:
  - email: alice@example.com
    name: Alice
    role: admin
    apiKey: sk-alice-secret-key
  - email: bob@example.com
    name: Bob
    role: viewer
    apiKey: sk-bob-readonly-key
---
Role Access
admin All tools: read and write
viewer Read-only tools: task_list, task_search, task_view, milestone_list, document_list, document_view, document_search, get_workflow_overview

Available tools

Tasks

Tool What it does
task_list List tasks, optionally filtered by status, assignee, labels, or a search query
task_search Full-text fuzzy search across task titles and descriptions
task_view Read the full content of a single task by ID
task_create Create a new task
task_edit Update any field of an existing task
task_move Move a task to a status; auto-assigns the caller if not already an assignee
task_take Assign a task to yourself
task_archive Archive a task
task_complete Move a task to the completed folder (task must be in Done status first)

task_move and task_take inject the authenticated user's identity automatically. They are only available over HTTP transport, not stdio.

Milestones

Tool What it does
milestone_list List all milestones (active, archived, and task-only)
milestone_add Create a new milestone
milestone_rename Rename a milestone and update all tasks that reference it
milestone_remove Remove a milestone, with options to clear, keep, or reassign task milestones
milestone_archive Archive a milestone

Documents

Tool What it does
document_list List documents, with optional keyword filter
document_view Read the full content of a document by ID
document_create Create a new document
document_update Update an existing document's content or title
document_search Full-text fuzzy search across documents

Workflow

Tool What it does
get_workflow_overview Retrieve the llm-backlog workflow guide for the current project

task_edit field reference

title, description, status, priority, milestone, labels, assignee,
dependencies, references, addReferences, removeReferences,
documentation, addDocumentation, removeDocumentation

# Implementation plan
planSet          — replace the implementation plan
planAppend       — append lines to the plan
planClear        — delete the plan

# Final summary
finalSummary           — set the completion summary (write when task is done)
finalSummaryAppend     — append to the final summary
finalSummaryClear      — delete the final summary

Recommended agent workflow

This is the intended loop for AI-assisted development. It keeps humans in control of what gets built and how.

1. Decompose

Ask the agent to break a feature or goal into small, independent tasks. Each task should be completable in a single conversation without running out of context.

2. Refine

Review the tasks the agent created. Edit descriptions and acceptance criteria until they are precise enough that you would be satisfied if the agent delivered exactly what is written — nothing more, nothing less.

3. Plan

Assign one task to the agent. Before writing any code, ask it to research the codebase and write an implementation plan into the task (planSet). Review the plan. If the approach looks wrong, reject it and ask for a revision. Approve only when the approach makes sense.

4. Implement

Once the plan is approved, let the agent implement the task. It should write a final summary when done (finalSummary).

5. Review

Read the code, run the tests. If the output does not match expectations, clear the plan, refine the acceptance criteria, and start the task again in a fresh session.


License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选