This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Affected surfaces
Summary
AI summaryExpanded 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 nextEPIC-NNN, and registers inrequirements-index.md.
- Creates an epic directory +
create_story- Creates a story under an epic, assigns next
STORY-NNN, writes story markdown, registers in index + backlog. - Now supports
story_type.
- Creates a story under an epic, assigns next
set_acceptance_criteria- Replaces the story’s “Acceptance criteria” section from an array of strings.
- Schema bug fixed: the
criteriaarray 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_itemswhen criteria are unchecked.
check_acceptance_criterion- Checks a single AC item (
- [ ]→- [x]) by 0-based index or case-insensitive text match.
- Checks a single AC item (
groom_epic- Reconciles an epic’s
## Storiessection against story files on disk + index metadata.
- Reconciles an epic’s
Updated existing tools / behavior changes
set_story_status- Now only allows:
draft,in-progress,blocked. - Setting status to
doneis blocked and returns an error instructing callers to usecomplete_story. - If a story isn’t found in
backlog.md, the tool now returns abacklog_warninginstead of silently ignoring the failure.
- Now only allows:
list_stories- Now supports filtering by
story_typeand returnsstory_typein results.
- Now supports filtering by
get_story- Now includes
story_typein the returned metadata.
- Now includes
Concurrency & Safety
- File locking added for mutating tools via
parser.AcquireLock(...)(5-second timeout), with platform-specific implementations:parser/lock_unix.goparser/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.
- New format:
- Epic files now maintain a
## Storiessectioncreate_storyupdates the epic file with a checklist entry for the story.complete_storyflips the epic checklist entry to done ([x]) (best-effort / non-fatal).
groom_epictool can rebuild/sync that## Storiessection:- Adds missing stories, removes stale entries, refreshes titles and checked-state from index, keeps entries ordered.
Story “Type” Support (feature/bug/chore/spike)
create_storyaccepts optionalstory_type(defaults tofeature, validates allowed values).- New stories include a
**Type:** ...line in the story file. requirements-index.mdepic tables were extended to include an optional Type column (with backward compat parsing).
Acceptance Criteria: Parsing, Enforcement, and Completion Gating
- Added parsing utilities:
ParseAcceptanceCriteriareads## Acceptance criteriachecklist items into structured{Text, Checked}.
complete_storynow enforces:- Blocks completion if AC is placeholder-only (“Define acceptance criteria”).
- If any unchecked criteria exist, requires
incomplete_itemswith one explanation per unchecked item, included in the completion note.
- New
check_acceptance_criteriontool 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_criterionbehaviors (index/text/case-insensitive/already checked/out-of-range/not found/etc.)set_story_statusredirect-from-done behavior and missing-backlog warning behavior
- Grooming epic story sections (
- 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:CreateStorysignature changed to acceptstoryType; new helpers to update backlog + epic files.parser/index.go: index parsing now supports an optional “Type” column and defaults legacy rows tofeature.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
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.
Related context
Beta — feedback welcome: [email protected]