Backlog Buddy MCP
Enables exporting finished backlogs in Jira-compatible CSV format for import into Jira, with a roadmap plan to push stories directly to Jira.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Backlog Buddy MCPvalidate my user story: As a user I want to search so that I can find things fast"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Backlog Buddy MCP
An MCP server that gives AI assistants a product owner's checklist for user stories.
The assistant does the writing. Backlog Buddy checks the drafts against INVEST and acceptance-criteria rules, suggests how to split stories that are too big, and exports the finished backlog to Markdown, CSV or Jira's CSV importer.
Why
AI assistants write plausible-looking user stories quickly, but they routinely:
skip the "so that" (the value),
write acceptance criteria that only cover the happy path,
use untestable words like fast, intuitive or seamless,
bundle two or three stories into one.
Backlog Buddy turns those habits into specific, fixable findings, so the assistant can revise its own work before you ever see it.
Related MCP server: refine-backlog-mcp
What it provides
Type | Name | What it does |
Tool |
| Scores one story 0–100 against INVEST, with a verdict (ready / needs-work / not-ready) and suggested fixes |
Tool |
| Checks a set of stories, totals the points and flags likely duplicates |
Tool |
| Recommends splitting patterns (workflow steps, CRUD, business rules, data variations, interfaces, happy path first, defer performance, user roles, spikes) |
Tool |
| Outputs |
Prompt |
| Guided flow: feature brief → drafted stories → checked → revised → export |
Resource |
| One-page guide to INVEST, Given/When/Then and splitting |
Example check
Input:
As a user, I want to search and export transactions quickly Acceptance criteria: Search should be fast and intuitive
Backlog Buddy reports, among other things:
no "so that" clause, so the value is implied rather than stated
"user" is a generic persona
the goal contains "and", which often means two stories
"quickly", "fast" and "intuitive" can't be tested
the acceptance criterion isn't in Given / When / Then form
Setup
Requires Node.js 20 or later.
npm install
npm run build
npm test # unit tests for the checking, splitting and export logic
npm run e2e # starts the server and exercises every tool over MCPUse it in Claude Desktop
Add this to claude_desktop_config.json (Settings → Developer → Edit Config), using the full path to dist/server.js on your machine, then restart Claude Desktop:
{
"mcpServers": {
"backlog-buddy": {
"command": "node",
"args": ["C:\\path\\to\\backlog-buddy-mcp\\dist\\server.js"]
}
}
}Then try: "Use the feature_to_stories prompt for: let borrowers verify income by linking their bank account."
Inspect it
npm run inspectopens the MCP Inspector so you can call each tool by hand.
Design notes
Deterministic checks, not another LLM call. The server uses rules and heuristics, so results are fast, free, repeatable and explainable. The assistant supplies the judgment; the server supplies the standard.
Logic separated from protocol.
src/stories.tshas no MCP dependency and is unit-tested on its own;src/server.tsis a thin wrapper that registers tools, a prompt and a resource.Heuristics are opinionated on purpose. They flag things worth a second look, not hard failures. Only a missing narrative or missing acceptance criteria makes a story "not ready".
Roadmap
Configurable rules (custom vague-word lists, point thresholds)
Push stories directly to Jira or Azure DevOps
Definition of Ready checklist per team
License
MIT
Available Tools
4 toolsexport_backlogExport storiesA
Formats finished stories as Markdown (for docs or a README), plain CSV (for spreadsheets), or jira-csv (columns laid out for Jira's CSV importer: Summary, Issue Type, Description, Story Points, Labels).
| Name | Required | Description | Default |
|---|---|---|---|
| epic | No | Optional epic or feature name to group the stories under | |
| format | Yes | Output format | |
| stories | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full burden. It usefully discloses output format details, especially the jira-csv column layout, but does not clarify whether export writes a file, returns a string, overwrites existing files, or requires permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that starts with the core action and then efficiently explains each format. Every clause adds useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with 67% schema coverage and no output schema, the description gives enough context to call it correctly and understand the intended output formats. The remaining gap is the unspecified return/file-writing behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, and the description adds meaningful detail beyond the schema's generic 'Output format' by explaining each enum value and its target use. It does not expand on the stories or epic parameters, which the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, 'Formats,' a specific resource, 'finished stories,' and enumerates the three output formats. It clearly distinguishes export from sibling validation/splitting tools by focusing on formatting finished stories for external use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage contexts for each format: Markdown for docs or README, CSV for spreadsheets, and jira-csv for Jira's importer. It does not explicitly state when not to use the tool or name alternatives, but the sibling tools are validation/splitting rather than export alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_splitsSuggest ways to split a storyA
Given a story or feature that is too big, suggests splitting patterns that fit it (workflow steps, CRUD operations, business rules, data variations, interfaces, happy path first, defer performance, user roles, spikes), each with how to apply it and an example.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The story narrative, acceptance criteria or feature description to split | |
| maxSuggestions | No | How many patterns to return (default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It usefully says each suggestion includes how to apply the pattern and an example, which clarifies the return content, but it does not explicitly confirm that the operation is read-only or describe side effects/auth needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the triggering condition and then clearly lists the pattern categories and output shape. Every part earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-mutating suggestion tool with a fully documented two-parameter schema and no output schema, the description is complete enough for an agent to invoke it correctly. It explains the input precondition, the pattern catalog, and what each returned suggestion contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for both parameters, including the meaning and default for maxSuggestions. The description does not add parameter-level guidance beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('suggests splitting patterns') and resource ('story or feature that is too big'), and lists the exact kinds of patterns returned. This clearly distinguishes it from the sibling validation/export tools without needing to name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage condition: use this tool when a story or feature is too big and needs splitting. It does not explicitly state when not to use it or name alternatives, but the context is strong enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_backlogCheck a set of storiesA
Checks several user stories at once: each gets an INVEST report, plus a summary with average score, how many are ready, total points and possible duplicates.
| Name | Required | Description | Default |
|---|---|---|---|
| stories | Yes | The stories to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It helpfully discloses what comes back (INVEST report per story, plus aggregate summary with average score, ready count, points, possible duplicates), but it does not state that this is a read-only/no-side-effect operation, nor any auth or rate-limit context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler; the encumbrance is that the return-value detail is packed into a dense single sentence rather than structured, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter batch tool with full schema coverage and no output schema, the description covers purpose and return contents well enough to call it correctly. The main gap is the absence of any explicit read-only/permission context and explicit sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single required parameter (stories) is fully documented including nested fields, so the schema does the heavy lifting. The description adds only the notion of checking 'several' stories, which marginally reinforces minItems but adds no format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (checks) and resource (several user stories) and even enumerates the output (INVEST report plus a summary with average score, ready count, total points, duplicates). It implies batch versus the singular sibling validate_story via 'at once', but never names that sibling, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Checks several user stories at once' hints that this is the batch tool versus validate_story, but there is no explicit when-to-use/when-not guidance and no mention of alternatives like validate_story or suggest_splits. Usage is left implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_storyCheck a user storyA
Checks one user story against INVEST (Independent, Negotiable, Valuable, Estimable, Small, Testable) and acceptance-criteria quality rules. Returns a 0–100 score, a verdict (ready / needs-work / not-ready) and specific findings with suggested fixes. Use it on every story you draft before showing it to the user.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Short title, e.g. 'Link a bank account' | |
| labels | No | Labels or tags | |
| estimate | No | Story points, if estimated | |
| narrative | Yes | As a <persona>, I want <goal> so that <benefit>. | |
| acceptanceCriteria | No | Acceptance criteria, ideally each in Given / When / Then form |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the return shape: a 0-100 score, a verdict enum (ready / needs-work / not-ready), and findings with suggested fixes. It does not state whether the check is read-only/pure or whether findings are prioritized, but for a validation tool this is substantial disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose and criteria first, return values second, usage directive last. No filler, and the most decision-relevant content is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description compensates by describing the score, verdict, and findings. Inputs are fully documented by schema, and the usage rule closes the loop on when to invoke, so nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter is documented inline, so the baseline is 3. The description adds only indirect meaning (acceptanceCriteria is implicitly the target of 'acceptance-criteria quality rules'); it does not clarify optional-parameter effects, e.g., what happens when narrative is present but acceptanceCriteria is omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb (checks) plus the resource (one user story) and enumerates the exact criteria set (INVEST + acceptance-criteria rules), so the agent knows precisely what the tool does. It implicitly separates itself from validate_backlog by scope (one story), but never names the sibling, leaving a small differentiation gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it on every story you draft before showing it to the user' gives clear, actionable timing guidance. It stops short of exclusions or naming an alternative (e.g., validate_backlog for whole backlogs, suggest_splits for oversized stories).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
export_backlog - First observed
suggest_splits - First observed
validate_backlog - First observed
validate_story
TDQS
Scored across 4 tools
Each tool targets a distinct operation: single-story validation, batch validation, splitting suggestions, and export. The only near-overlap (validate_story vs validate_backlog) is explicitly disambiguated by 'one user story' vs 'several user stories at once' in the descriptions.
All four names follow a uniform snake_case verb_noun pattern (validate_story, validate_backlog, suggest_splits, export_backlog) with semantically accurate verbs. No mixed conventions or vague verbs.
Four tools is on the lean side but each covers a real step in the story-writing workflow (validate, validate-in-bulk, split, export). It sits at the low end of the comfortable 3-15 range without feeling padded or redundant.
Validation, splitting, and export round out the stated purpose well, and the agent supplies the drafting in-context. Minor gaps exist: no tool to persist/retrieve a backlog or to generate acceptance criteria or story points, so exported data must be assembled entirely by the model.
Maintenance
Related MCP Connectors
Capture feature requests and bug reports from chat into a searchable, AI-categorized backlog.
Tasks, sprints, releases and docs for engineering teams with AI coding agents.
Run accessibility, contrast, and design token audits and file QA issues from your AI coding tool.
Turn user requests and support messages into tasks and tell users what shipped, from any AI agent.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAutomatically generates structured agile backlogs including epics, features, and user stories from natural language descriptions within AI-powered IDEs. It streamlines project management by creating AI-optimized markdown files and directory structures to guide step-by-step implementation.21 npm3MIT
- AlicenseAqualityNot gradedmaintenanceRefine messy backlog items into structured, actionable work items with titles, acceptance criteria, T-shirt estimates, and priorities. Free tier included — Pro/Team tiers via license key.16 npm1-
- FlicenseNot gradedqualityDmaintenanceEnables context-powered task management on Trello boards, automatically creating detailed sprint tasks with acceptance criteria and QA steps using AI.-
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to manage Jira projects, issues, sprints, and boards via natural language.401 npmMIT