Skip to content

corbym/backlog-mcp

v1.0.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

Published 1mo MCP Developer Tools
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Affected surfaces

auth rbac

Summary

AI summary

Expanded MCP server from 5 to 9 tools, added file locking for concurrency safety, introduced story types (feature/bug/chore/spike), and enforced acceptance‑criteria gating on story completion.

Full changelog

Changelog (v0.1.4 → v0.1.6)

Comparison: v0.1.4...v0.1.6

Highlights

  • Expanded the MCP server from 5 tools → 9 tools, covering full backlog lifecycle: create epics, create stories, set acceptance criteria, and complete stories (with validation), plus new maintenance tooling.
  • Added file locking for all mutating operations to prevent concurrent-write corruption.
  • Introduced story types (feature/bug/chore/spike) end-to-end (create, index storage, list/get, filtering).
  • Improved backlog and epic navigation by adding relative links and maintaining an epic “Stories” section.
  • Added acceptance-criteria parsing and enforcement, including a dedicated tool to check off criteria line-by-line.
  • Added a groom_epic tool to reconcile epic story lists with the filesystem and index.

Added / Changed MCP Tools

New tools (added since v0.1.4)

  • create_epic
    • Creates an epic directory + epic.md, assigns next EPIC-NNN, and registers in requirements-index.md.
  • create_story
    • Creates a story under an epic, assigns next STORY-NNN, writes story markdown, registers in index + backlog.
    • Now supports story_type.
  • set_acceptance_criteria
    • Replaces the story’s “Acceptance criteria” section from an array of strings.
    • Schema bug fixed: the criteria array is now properly declared/required in the tool schema.
  • complete_story
    • One-call completion: validates AC, marks done in index, removes from backlog, appends completion note.
    • Supports incomplete_items when criteria are unchecked.
  • check_acceptance_criterion
    • Checks a single AC item (- [ ]- [x]) by 0-based index or case-insensitive text match.
  • groom_epic
    • Reconciles an epic’s ## Stories section against story files on disk + index metadata.

Updated existing tools / behavior changes

  • set_story_status
    • Now only allows: draft, in-progress, blocked.
    • Setting status to done is blocked and returns an error instructing callers to use complete_story.
    • If a story isn’t found in backlog.md, the tool now returns a backlog_warning instead of silently ignoring the failure.
  • list_stories
    • Now supports filtering by story_type and returns story_type in results.
  • get_story
    • Now includes story_type in the returned metadata.

Concurrency & Safety

  • File locking added for mutating tools via parser.AcquireLock(...) (5-second timeout), with platform-specific implementations:
    • parser/lock_unix.go
    • parser/lock_windows.go
  • Reinforced “atomic writes everywhere” pattern (still uses atomic write strategy).

Backlog + Epic Markdown UX Improvements

  • Backlog entries are now link-based, supporting navigation:
    • New format: N. [STORY-NNN](story-path) ([EPIC-NNN](epic-path)) — title *(status)*
    • Parser updated to support both old and new formats, including safer renumbering and status updates.
  • Epic files now maintain a ## Stories section
    • create_story updates the epic file with a checklist entry for the story.
    • complete_story flips the epic checklist entry to done ([x]) (best-effort / non-fatal).
  • groom_epic tool can rebuild/sync that ## Stories section:
    • Adds missing stories, removes stale entries, refreshes titles and checked-state from index, keeps entries ordered.

Story “Type” Support (feature/bug/chore/spike)

  • create_story accepts optional story_type (defaults to feature, validates allowed values).
  • New stories include a **Type:** ... line in the story file.
  • requirements-index.md epic tables were extended to include an optional Type column (with backward compat parsing).

Acceptance Criteria: Parsing, Enforcement, and Completion Gating

  • Added parsing utilities:
    • ParseAcceptanceCriteria reads ## Acceptance criteria checklist items into structured {Text, Checked}.
  • complete_story now enforces:
    • Blocks completion if AC is placeholder-only (“Define acceptance criteria”).
    • If any unchecked criteria exist, requires incomplete_items with one explanation per unchecked item, included in the completion note.
  • New check_acceptance_criterion tool implements line-level checklist progress.

Tests & Quality

  • Added a substantial set of tests covering:
    • Grooming epic story sections (parser/groom_test.go)
    • Acceptance-criteria gating behavior in complete_story
    • check_acceptance_criterion behaviors (index/text/case-insensitive/already checked/out-of-range/not found/etc.)
    • set_story_status redirect-from-done behavior and missing-backlog warning behavior
  • Updated fixtures to include additional epic/story files and acceptance criteria states.

Documentation / Metadata

  • README.md: added a Glama MCP server badge.
  • CLAUDE.md: updated to reflect 9 tools (was 5), added detailed tool docs, and updated design decisions to reflect file locking.
  • Some IDE/project files were added/changed (e.g., .idea/editor.xml, backlog.iml) as part of development environment configuration.

Notable Internal Implementation Changes (developer-facing)

  • parser/backlog.go: parsing and renumbering rewritten to support the new link-style backlog format.
  • parser/create.go: CreateStory signature changed to accept storyType; new helpers to update backlog + epic files.
  • parser/index.go: index parsing now supports an optional “Type” column and defaults legacy rows to feature.
  • parser/story.go: acceptance-criteria parsing plus new “check one criterion” mutation function.

Full Changelog: https://github.com/corbym/backlog-mcp/compare/v0.1.4...v0.1.6

Breaking Changes

  • `set_story_status` no longer accepts `done`; attempting to set status to `done` returns an error instructing callers to use `complete_story`.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track corbym/backlog-mcp

Get notified when new releases ship.

Sign up free

About corbym/backlog-mcp

MCP server that gives AI agents structured read/write access to a story-based project backlog. Agents can list stories, read content, update status, and append notes — all backed by plain markdown files versioned in your repository.

All releases →

Beta — feedback welcome: [email protected]