我如何构建 MCP 服务器来自动化我的 BA 工作流
Source: Dev.to
介绍
每次冲刺计划会议,都会出现相同的问题:
- “我们什么时候上线?”
- “本次冲刺能容纳多少工作?”
- “这种优先级排序真的合理吗?”
我是一名业务分析师,每周都要回答这些问题。它们并不难,只是重复性工作。因此我构建了工具来自动回答它们。
MCP 是什么?
模型上下文协议(Model Context Protocol,MCP)让你可以扩展 Claude 的功能。除了普通聊天,你还能为它提供可以调用的函数,以获得真实的答案。可以把它想象成 AI 的插件。
我要解决的问题
业务分析工作涉及大量小计算:
- 计算两个日期之间的工作日(不包括法定假日)
- 根据团队速度计算发布日期
- 验证优先级是否真的合理
- 统一格式化用户故事
这些任务并不复杂,但在重复执行时会耗费大量时间。
我构建的内容
业务分析工作流工具 – 一个服务器中包含 17 个 MCP 工具:
冲刺与发布计划
calculate_working_days– 排除周末和英国法定假日calculate_sprint_dates– 一次生成多个冲刺的日期calculate_release_date– 故事点 + 速度 = 上线日期calculate_velocity– 考虑假期的容量调整
MoSCoW 优先级划分
calculate_moscow_priority– 按百分比拆分优先级plan_moscow_capacity– 评估冲刺能容纳多少工作validate_moscow_dependencies– 在问题出现前捕获依赖冲突
用户故事
format_user_story– 使用验收标准的规范结构
其他
- 时区工具、估算转换器、文本实用函数
代码演示
// 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"]
}
}
逻辑说明: 用点数除以速度,乘以冲刺长度(周),再把工作日加到开始日期上。很简单——但现在 Claude 能帮我完成这一步。
安装方法
- 克隆仓库
git clone https://github.com/cs97jjm3/ba-workflow-tools.git cd ba-workflow-tools - 安装依赖
npm install - 将服务器添加到 Claude Desktop 配置中
- 重启 Claude Desktop
实际案例
案例 1
我: “我还有 85 点故事点,团队速度是每冲刺 25 点,冲刺长度为 2 周。我们什么时候能完成?”
Claude:(调用 calculate_release_date)“根据你的速度,大约需要 4 个冲刺。预计完成日期:2025 年 3 月 14 日。”
案例 2
我: “检查一下我的 Must‑haves 是否依赖于 Won’t 项目。”
Claude:(调用 validate_moscow_dependencies)“发现 2 个问题:REQ‑045(Must)依赖于 REQ‑089(Won’t)……”
构建 MCP 服务器的收获
这是我的第三个 MCP 服务器。之前在工作中构建的两个是:
- 日期运算 – 跨 14 个国家的工作日计算
- 带登录的网页分析器 – 需要身份验证的页面分析
关键经验
- 从你经常需要解决的问题入手。
- 保持工具专注——每个工具只做一件事。
- 良好的描述很重要;Claude 会依据描述决定何时调用你的工具。
- 用真实的提示进行测试,而不仅仅是单元测试。
下一步计划
计划中的新增功能:
- RAID 日志管理
- 利益相关者矩阵工具
- 更多估算转换器
欢迎提交 Pull Request。
链接
- GitHub:
- MCP 文档: [link]