How I Built an MCP Server to Automate My BA Workflow
Source: Dev.to
Introduction
Every sprint planning session, the same questions arise:
- “When will we ship?”
- “What fits in this sprint?”
- “Does this prioritisation actually make sense?”
I’m a Business Analyst and I answer these questions weekly. They’re not hard, just repetitive. So I built tools to answer them automatically.
What is MCP?
Model Context Protocol (MCP) lets you extend what Claude can do. Instead of just chatting, you give it tools—functions it can call to get real answers. Think of it like plugins for AI.
The Problem I Was Solving
BA work involves lots of small calculations:
- Working days between dates (excluding bank holidays)
- Release dates based on velocity
- Whether priorities actually make sense
- Formatting user stories consistently
These tasks aren’t complex, but they’re time‑consuming when done repeatedly.
What I Built
BA Workflow Tools – 17 MCP tools in one server:
Sprint & Release Planning
calculate_working_days– excludes weekends and UK bank holidayscalculate_sprint_dates– generate multiple sprints at oncecalculate_release_date– story points + velocity = ship datecalculate_velocity– with capacity adjustments for holidays
MoSCoW Prioritisation
calculate_moscow_priority– breakdown with percentagesplan_moscow_capacity– what fits in your sprintvalidate_moscow_dependencies– catch problems before they happen
User Stories
format_user_story– proper structure with acceptance criteria
Miscellaneous
- Timezone tools, estimation converters, text utilities
Code Walkthrough
// Example: Release date calculator
{
name: "calculate_release_date",
description: "Calculate estimated release date based on story points remaining, team velocity, and sprint length",
inputSchema: {
type: "object",
properties: {
storyPointsRemaining: { type: "number" },
teamVelocity: { type: "number" },
sprintLength: { type: "number" },
startDate: { type: "string" }
},
required: ["storyPointsRemaining", "teamVelocity", "sprintLength", "startDate"]
}
}
The logic: divide points by velocity, multiply by sprint length in weeks, add working days to the start date. Simple—but now Claude does it for me.
How to Install
- Clone the repo
git clone https://github.com/cs97jjm3/ba-workflow-tools.git cd ba-workflow-tools - Install dependencies
npm install - Add the server to Claude Desktop config
- Restart Claude Desktop
Real Examples
Example 1
Me: “I’ve got 85 story points left, velocity is 25 per sprint, sprints are 2 weeks. When will we finish?”
Claude: (calls calculate_release_date) “Based on your velocity, you’ll need approximately 4 sprints. Estimated completion: March 14 2025.”
Example 2
Me: “Check if any of my Must‑haves depend on Won’t items.”
Claude: (calls validate_moscow_dependencies) “Found 2 issues: REQ‑045 (Must) depends on REQ‑089 (Won’t)…”
What I Learned Building MCP Servers
This is my third MCP server. The other two, built at work, are:
- Date Operations – working days across 14 countries
- Web Analyser with Login – page analysis behind authentication
Key lessons
- Start with problems you solve repeatedly.
- Keep tools focused—one job per tool.
- Good descriptions matter; Claude uses them to decide when to call your tool.
- Test with real prompts, not just unit tests.
What’s Next
Planned additions:
- RAID log management
- Stakeholder matrix tools
- More estimation converters
Pull requests are welcome.
Links
- GitHub:
- MCP Documentation: [link]