生命周期MCP服务器
用于全面软件生命周期管理的模型上下文协议(MCP)服务器。该服务器通过具有完全可追溯性和自动化状态管理的SQLite数据库提供对需求、任务和架构决策的结构化跟踪。
特性
- 需求管理:通过验证和生命周期跟踪创建和管理软件需求
- 任务管理:使用层次结构和工作量估算跟踪实施任务
- 体系结构决策:完整记录ADR(架构决策记录)
- 项目仪表板:实时项目健康指标和状态报告
- 需求跟踪:从需求到实施的完全可追溯性
- 状态验证:生命周期状态转换的自动验证
- 关系跟踪:需求、任务和架构之间的多对多关系
快速开始
# 1. Clone the repository
git clone https://github.com/heffrey78/lifecycle-mcp.git
cd lifecycle-mcp
# 2. Install globally (easiest for using across projects)
pip install -e .
# 3. Go to any project where you want to use lifecycle management
cd /path/to/your/project
# 4. Add the MCP server to Claude
claude mcp add lifecycle lifecycle-mcp -e LIFECYCLE_DB=/path/to/your/project/lifecycle.db
# 5. Start using lifecycle tools in Claude!安装选项
先决条件(可选)
如果你想使用 uv (更快的Python包管理器):
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or with homebrew
brew install uv克隆存储库
git clone https://github.com/heffrey78/lifecycle-mcp.git
cd lifecycle-mcp使用Claude代码
有关详细的示例和场景,请参阅 用法_示例.md.
选项1:全局安装(建议用于多个项目)
全局安装服务器,以便可以从任何项目中使用:
# From the lifecycle-mcp directory
pip install -e .
# Now from ANY project directory, add the server:
claude mcp add lifecycle lifecycle-mcp -e LIFECYCLE_DB=./lifecycle.db备注:每个项目在其目录中都有自己的数据库文件。
选项2:使用紫外线从源头运行
如果您不希望全局安装:
# Get the full path to the lifecycle-mcp directory
LIFECYCLE_PATH="/path/to/lifecycle-mcp" # Replace with your actual path
# From any project directory:
claude mcp add lifecycle $(which uv) -- --directory $LIFECYCLE_PATH run server.py -e LIFECYCLE_DB=./lifecycle.db选项3:直接执行Python
为了获得最大的兼容性:
# Get the full path to the server
LIFECYCLE_PATH="/path/to/lifecycle-mcp" # Replace with your actual path
# From any project directory:
claude mcp add lifecycle $(which python) $LIFECYCLE_PATH/server.py -e LIFECYCLE_DB=./lifecycle.db手动配置
您还可以手动编辑Claude Desktop配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"lifecycle": {
"command": "lifecycle-mcp",
"env": {
"LIFECYCLE_DB": "./lifecycle.db"
}
}
}
}最佳实践
数据库位置
- 每个项目都应该有自己的
lifecycle.db文件 - 使用
LIFECYCLE_DB=./lifecycle.db在当前项目中创建数据库 - 或者为共享数据库使用绝对路径:
LIFECYCLE_DB=/path/to/shared/lifecycle.db
虚拟环境(推荐)
# Create a virtual environment for lifecycle-mcp
cd /path/to/lifecycle-mcp
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install in the virtual environment
pip install -e .
# Find the venv's lifecycle-mcp command
which lifecycle-mcp # Copy this path
# Use the full path when adding to Claude
claude mcp add lifecycle /path/to/venv/bin/lifecycle-mcp -e LIFECYCLE_DB=./lifecycle.dbMCP工具参考
该服务器在6个处理程序模块中公开了22个MCP工具,用于全面的生命周期管理:
刀具清单
create_requirement-根据面试数据创建新要求update_requirement_status-通过生命周期状态移动需求query_requirements-搜索和筛选要求get_requirement_details-通过关系获得完整的需求trace_requirement-通过实施跟踪需求create_task-根据需求创建实施任务update_task_status-更新任务进度query_tasks-搜索和筛选任务get_task_details-获取包含依赖关系的完整任务详细信息sync_task_from_github-从GitHub同步单个任务问题更改bulk_sync_github_tasks-将所有任务与其GitHub问题同步create_architecture_decision-记录架构决策(ADR)update_architecture_status-更新架构决策状态query_architecture_decisions-搜索和过滤架构决策get_architecture_details-获取完整的架构决策详细信息add_architecture_review-在架构决策中添加审查意见get_project_status-获取项目健康指标和仪表板start_requirement_interview-开始交互式需求收集continue_requirement_interview-继续需求面试环节start_architectural_conversation-开始交互式架构讨论continue_architectural_conversation-继续架构对话export_project_documentation-导出全面的降价文件create_architectural_diagrams-为项目可视化生成Mermaid图
需求管理
create_requirement
根据面试数据或分析创建新要求。
参数:
type(必填):需求类型-“FUNC”、“NFUNC”、“TECH”、“BUS”、“INTF”title(必填):描述性标题priority(必填):优先级-“P0”、“P1”、“P2”、“P3”current_state(必填):当前系统状态desired_state(必填):目标系统状态functional_requirements(可选):功能要求数组acceptance_criteria(可选):一系列验收标准business_value(可选):商业理由risk_level(可选):风险评估-“高”、“中”、“低”author(可选):需求作者
例子:
{
"type": "FUNC",
"title": "User Authentication System",
"priority": "P1",
"current_state": "No user authentication exists",
"desired_state": "Secure user login with JWT tokens",
"functional_requirements": ["Login with email/password", "JWT token generation"],
"acceptance_criteria": ["User can login successfully", "Token expires after 24 hours"],
"business_value": "Enables secure user access to protected features",
"risk_level": "Medium"
}update_requirement_status
通过验证将需求贯穿其生命周期。
参数:
requirement_id(必填):需求ID(例如“REQ-0001-FUNC-00”)new_status(必填):目标状态-“草稿”、“审查中”、“批准”、“架构”、“就绪”、“已实施”、“验证”、“弃用”comment(可选):审查意见或理由
有效状态转换:
- 草案→ 正在审查中,已弃用
- 审核中→ 草稿、已批准、已弃用
- 批准→ 架构,已就绪,已弃用
- 建筑→ 准备就绪,已批准
- 准备→ 已实施,已弃用
- 实现→ 已验证,准备就绪
- 已验证→ 已弃用
query_requirements
按各种条件搜索和筛选要求。
参数:
status(可选):按状态筛选priority(可选):按优先级筛选type(可选):按需求类型筛选search_text(可选):在标题和所需状态下进行文本搜索
get_requirement_details
获取全面的需求信息,包括所有关系。
参数:
requirement_id(必填):需求ID
退货: 包含基本信息、问题定义、功能要求、验收标准和链接任务的详细报告。
trace_requirement
在整个实施生命周期中跟踪需求。
参数:
requirement_id(必填):需求ID
退货: 完整的跟踪,包括需求细节、实现任务和架构决策。
任务管理
create_task
创建与需求关联的实施任务。
参数:
requirement_ids(必填):要链接的需求ID数组title(必填):任务标题priority(必填):优先级-“P0”、“P1”、“P2”、“P3”effort(可选):工作量估算-“XS”、“S”、“M”、“L”、“XL”user_story(可选):用户故事描述acceptance_criteria(可选):一系列验收标准parent_task_id(可选):子任务的父任务assignee(可选):任务受让人
例子:
{
"requirement_ids": ["REQ-0001-FUNC-00"],
"title": "Implement JWT token generation",
"priority": "P1",
"effort": "M",
"user_story": "As a developer, I need JWT token generation so users can authenticate securely",
"acceptance_criteria": ["Generate JWT with user claims", "Token expires in 24 hours"],
"assignee": "john.doe@company.com"
}update_task_status
更新任务进度和分配。
参数:
task_id(必填):任务ID(例如“Task-0001-00-00”)new_status(必填):新状态-“未开始”、“进行中”、“已阻止”、“完成”、“放弃”comment(可选):状态更新注释assignee(可选):新受让人
query_tasks
按各种条件搜索和筛选任务。
参数:
status(可选):按状态筛选priority(可选):按优先级筛选assignee(可选):按受让人筛选requirement_id(可选):按链接要求过滤
get_task_details
获取全面的任务信息,包括依赖关系和关系。
参数:
task_id(必填):任务ID
退货: 详细报告,包括基本信息、描述、验收标准和相关要求。
sync_task_from_github
将GitHub上的单个任务问题更改与冲突检测同步。
参数:
task_id(必填):任务ID与其链接的GitHub问题同步
退货: 同步状态和从GitHub问题数据应用的任何更新。
bulk_sync_github_tasks
在批处理操作中将所有任务与其GitHub问题同步。
参数: 无
退货: 使用GitHub问题链接对所有任务执行的同步操作摘要。
结构管理
create_architecture_decision
完整记录架构决策(ADR)。
参数:
requirement_ids(必填):已处理的需求ID数组title(必填):决策标题context(必填):决策背景和背景decision(必填):已作出的决定consequences(可选):决策后果对象decision_drivers(可选):驱动决策的一系列因素considered_options(可选):考虑了一系列备选方案authors(可选):决策作者数组
例子:
{
"requirement_ids": ["REQ-0001-FUNC-00"],
"title": "Use JWT for authentication tokens",
"context": "Need secure, stateless authentication for API access",
"decision": "Implement JWT tokens with RS256 signing",
"consequences": {
"positive": ["Stateless authentication", "Industry standard"],
"negative": ["Token size overhead", "Key management complexity"]
},
"decision_drivers": ["Security requirements", "Scalability needs"],
"considered_options": ["Session cookies", "OAuth2", "JWT tokens"]
}update_architecture_status
通过验证更新架构决策的状态。
参数:
architecture_id(必填):架构ID(例如“ADR-0001”)new_status(必填):新状态-“拟议”、“接受”、“拒绝”、“弃用”、“被取代”、“草案”、“审查中”、“批准”、“已实施”comment(可选):状态更改注释
query_architecture_decisions
根据各种标准搜索和过滤架构决策。
参数:
status(可选):按状态筛选type(可选):按类型筛选(ADR、TDD、INTG)requirement_id(可选):按链接要求过滤search_text(可选):标题和上下文中的文本搜索
get_architecture_details
获取全面的架构决策信息,包括所有关系和审查。
参数:
architecture_id(必填):体系结构ID
退货: 详细报告,包括基本信息、背景、决策细节、驱动因素、选项、后果、相关要求和审查历史。
add_architecture_review
在架构决策中添加审查意见。
参数:
architecture_id(必填):体系结构IDcomment(必填):审查意见reviewer(可选):审阅者姓名(默认:“MCP用户”)
项目监测
get_project_status
获取全面的项目健康指标和仪表板。
参数:
include_blocked(可选):包括被阻止的项目分析(默认值:true)
退货: 带有需求概述、任务统计、完成百分比和阻塞项目分析的仪表板。
交互式面试工具
start_requirement_interview
开始互动式需求收集面试环节。
参数:
project_context(可选):项目或系统的描述stakeholder_role(可选):被面试者的角色
退货: 会话ID和初始问题,以指导需求收集。
例子:
{
"project_context": "E-commerce platform modernization",
"stakeholder_role": "Product Manager"
}continue_requirement_interview
通过回答问题来继续积极的面试。
参数:
session_id(必填):来自start_requirement_Interview的面试会话IDanswers(必填):包含当前问题答案的对象
退货: 下一组问题或已创建要求的完成总结。
例子:
{
"session_id": "a1b2c3d4",
"answers": {
"current_problem": "Users struggle with complex checkout process",
"desired_outcome": "Streamlined one-click checkout experience",
"success_criteria": "Checkout completion rate increases by 25%"
}
}面试流程:
- 问题识别:了解当前的挑战
- 解决方案定义:确定预期结果和制约因素
- 详细信息收集:收集优先级、类型和技术细节
- 验证:建立验收标准和成功指标
- 完成:使用面试摘要自动创建需求
文档导出工具
export_project_documentation
以结构化markdown格式导出综合项目文档。
参数:
project_name(可选):文件名中使用的项目名称(默认值:“project”)include_requirements(可选):包括需求文档(默认值:true)include_tasks(可选):包括任务文档(默认值:true)include_architecture(可选):包括架构文档(默认值:true)output_directory(可选):保存导出文件的目录(默认:“.”)
退货: 导出文件及其路径的列表。
生成的文件:
{project_name}-requirements.md-按类型分组的完整需求文档{project_name}-tasks.md-按状态和相关要求分组的任务文档{project_name}-architecture.md-具有上下文、决策和后果的架构决策
例子:
{
"project_name": "ecommerce-platform",
"include_requirements": true,
"include_tasks": true,
"include_architecture": true,
"output_directory": "./docs"
}create_architectural_diagrams
为项目架构和关系可视化生成Mermaid图。
参数:
diagram_type(可选):图表类型-“需求”、“任务”、“架构”、“完整项目”、“目录结构”、“依赖关系”(默认值:“完整项目“)requirement_ids(可选):要包含的特定需求ID数组include_relationships(可选):在图表中包含关系箭头(默认值:true)output_format(可选):输出格式-“美人鱼”、“markdown_with_mermaid”(默认:“美人鱼”)interactive(可选):开始复杂图表的交互式对话(默认值:false)
退货: 美人鱼图代码或标记包装图。
图表类型:
- 需求:按类型显示需求层次结构的流程图,带有状态颜色
- 任务:具有父子关系和状态指示器的任务层次结构
- 建筑:基于状态样式的架构决策
- 完整项目:显示需求、任务和架构之间关系的高级概述
- 董事会_结构:项目目录结构可视化
- 依赖项:显示阻塞关系的任务依赖关系图
状态颜色:
- 要求:草稿(红色)、审查中(橙色)、批准(蓝色)、准备就绪(绿色)等。
- 任务:未开始(红色)、正在进行(橙色)、已阻止(深红色)、已完成(绿色)等。
- 架构:建议(橙色)、接受(绿色)、拒绝(红色)、弃用(灰色)等。
例子:
{
"diagram_type": "requirements",
"include_relationships": true,
"output_format": "markdown_with_mermaid"
}交互式架构对话工具
start_architectural_conversation
开始交互式对话,以生成复杂的架构图。
参数:
project_context(可选):项目或系统的描述diagram_purpose(可选):图表的目的和目标complexity_level(可选):对话复杂性-“简单”、“中等”、“复杂”(默认值:“中等”)
退货: 基于复杂性级别的会话ID和上下文问题。
复杂性级别:
- 简单:基本组件和关系问题
- 中等:架构挑战、利益相关者和细节层面的问题
- 复杂:深入的架构模式、合规性、安全性和性能考虑
continue_architectural_conversation
继续一个活跃的架构对话会话,并给出回应。
参数:
session_id(必需):来自start_architectural_translations的会话IDresponses(必填):包含对当前问题的答复的对象
退货: 下一个问题或使用生成的图表完成。
对话流程:
- 上下文收集:了解架构需求和利益相关者
- 图表规格:确定最佳图表类型和焦点
- 细节细化:视觉偏好和重点区域
- 完成:使用对话摘要自动生成图表
例子:
{
"session_id": "a1b2c3d4",
"responses": {
"main_challenge": "Visualizing microservice dependencies for new team members",
"stakeholders": "Development team and system architects",
"detail_level": "High-level overview with key integration points"
}
}数据库模式
服务器维护着一个包含以下关键实体的全面SQLite数据库:
- 需求:具有生命周期状态的中心实体(草稿→ 审核中→ 批准→ 建筑→ 准备→ 实现→ 已验证→ 已弃用)
- 任务:具有层次结构的实施工作项(TASK-XXXX-YY-ZZ格式)
- 建筑:ADR和技术设计文件
- 关系:需求、任务和架构之间的多对多链接
- 事件:自动记录生命周期事件和状态更改
- 评论:对要求和任务的评论和反馈
实体ID格式
- 需求:
REQ-XXXX-TYPE-VV(例如,REQ-0001-FUNC-00) - 任务:
TASK-XXXX-YY-ZZ(例如,任务-0001-00-00) - 建筑:
ADR-XXXX(例如,ADR-0001)
环境变量
LIFECYCLE_DB:SQLite数据库文件的路径(默认:“./lifelife.db”)
故障排除
连接问题
“MCP错误-32000:连接已关闭”
当服务器实现中存在异步/等待不匹配时,通常会发生此错误。如果您遇到以下情况:
- 确保软件包安装正确:
pip install -e .- 重新添加MCP服务器:
claude mcp add lifecycle lifecycle-mcp- 检查服务器启动时是否没有错误:
lifecycle-mcp找不到服务器
如果 lifecycle-mcp 安装后找不到命令:
- 验证安装是否成功完成
- 检查入口点是否已在中注册
pyproject.toml - 尝试使用重新安装
pip install -e .
数据库问题
数据库锁定错误
如果您看到数据库锁定错误,请确保只有一个服务器实例正在运行,并且数据库文件具有适当的权限。
架构初始化
数据库架构在首次运行时自动创建。如果需要重置数据库,只需删除SQLite文件(默认值: lifecycle.db).
发展
使用紫外线(推荐)
# Install dependencies
uv sync
# Run the server directly
uv run server.py
# Test with Claude Code
claude mcp add lifecycle $(which uv) -- --directory $(pwd) run server.py使用pip(传统)
# Install in development mode
pip install -e .
# Run the server
lifecycle-mcp
# Test with Claude Code
claude mcp add lifecycle lifecycle-mcp构建桌面扩展(.dxt)
要为一键安装创建桌面扩展包,请执行以下操作:
# Build the .dxt file
make build-dxt
# or
python build_dxt.py这创造了 lifecycle-mcp-1.0.0.dxt 用户可以双击安装在Claude Desktop中。
