SQLite MCP跟踪服务器
一种模型上下文协议(MCP)服务器,通过标准化的工具和资源提供基于SQLite的任务和项目跟踪功能。
特性
- SDLC实体管理:完整的软件开发生命周期跟踪
- Epics、用户故事、任务、Bug、测试用例:完全支持SDLC工作流
- 维基系统:用于项目文档的集成wiki,具有实体链接、256个字符的标题限制和全文搜索功能
- 评论系统:利益攸关方对所有有评论数量的实体的反馈和合作
- 史诗般的依赖关系:史诗可以依赖于其他史诗(类似于用户故事依赖关系)
- 工作流执行:适当的利益攸关方所有权和地位转变
- 自动状态更改:关闭的故事上的bug重新打开了它们,转移到QA的故事重新打开了他们的史诗
- 审计跟踪:所有权和状态转换跟踪
- 数据验证:全面的输入验证和外键约束检查
- 布尔字段处理:存档字段的正确布尔转换(true/false而不是0/1)
- HTTP API:用于数据库初始化、SDLC实体和wiki页面的REST端点
- Web 界面:带有SDLC跟踪器和显示实体编号的wiki部分的标签式仪表板界面
- 错误处理:清除无效操作和违反约束的错误消息
- SQLite后端:使用SQLite和better squelite3进行高效操作
可用工具
数据库管理
initialize:初始化指定项目目录中的SDLC跟踪器数据库。您必须提供当前的工作目录路径(例如,“/Users/username/project”)。
Epic管理
create_epics:创建多个带有标题、描述和产品经理分配的史诗list_epics:列出带有可选状态过滤的史诗(默认情况下不包括存档)
- dependencies_resolved:按依赖关系解析状态筛选史诗(true/false)
update_epic:更新史诗标题、描述、状态、任务和阶段archive_epic:存档史诗(仅限产品经理)
用户故事管理
create_user_stories:使用史诗般的关联、接受标准和故事点创建多个用户故事list_user_stories:按历史、状态或受让人筛选列出用户故事(默认情况下不包括存档)
- dependencies_resolved:按依赖关系解决状态筛选用户故事(true/false)
update_user_story_content:更新用户故事标题、描述和故事点(所有利益相关者)update_user_story_acceptance_criteria:更新用户故事接受标准(仅限产品经理)archive_user_story:存档用户故事(仅限产品经理)
任务管理
create_tasks:使用用户故事关联、时间估计和架构师/开发人员分配创建多个任务list_tasks:列出按用户故事、状态、受让人和依赖关系进行可选筛选的任务
- depends_on:筛选依赖于特定任务ID的任务 - depended_by:筛选特定任务ID所依赖的任务 - has_dependencies:筛选具有(true)或不具有(false)任何依赖关系的任务 - dependencies_resolved:按依赖关系解决状态筛选任务(true/false)
缺陷追踪系统
create_bugs:创建多个包含严重级别、报告者和受让人信息的错误报告list_bugs:列出漏洞,并可选择按状态、严重性、报告者、受让人进行过滤
测试用例管理
create_test_cases:创建具有先决条件、步骤、预期结果和测试人员/产品经理分配的多个测试用例list_test_cases:列出测试用例,并可选择按状态、受让人进行筛选
工作流管理
update_entity_status:使用审计跟踪记录和智能工作流建议更新任何SDLC实体的状态和/或分配manage_story_dependencies:批量添加或删除多个用户故事的依赖关系manage_epic_dependencies:批量添加或删除多个史诗的依赖关系manage_task_dependencies:批量添加或删除多个任务的依赖关系(任务必须属于同一用户故事)- 自动状态更改:在已关闭的故事上创建的Bug会自动将其重新打开给QA,移动到QA的故事会自动重新打开其父史诗
智能工作流建议
该系统为整个SDLC提供智能工作流程指导:
- 任务结束情报:当任务移动到“已关闭”状态时,系统会自动检查用户故事中的所有任务是否都已关闭
- 用户故事推进:如果所有任务都已关闭,并且用户故事尚未处于QA/UAT/关闭状态,系统建议将用户故事移动到“QA”状态
- 任务依赖性情报:当任务关闭时,系统会检查依赖任务,如果所有依赖都得到满足,则建议将其移动到“进行中”
- Bug状态情报:当bug状态发生变化时,系统会提供有针对性的建议:
- “修复”错误:建议QA验证 - “已关闭”错误:检查是否存在回归测试,如果缺失,建议创建 - “打开”bug:如果分配给测试人员,建议重新分配开发人员
- 自动状态更改:除了建议之外,系统还会自动处理工作流转换:
- 在已关闭的故事上创建的错误会自动将其重新打开为“QA”状态 - 转移到“QA”的故事会自动将其父史诗从“关闭”重新打开到“打开”
- 用户故事验证:防止在没有验收标准和测试用例的情况下将用户故事移动到“进行中”
- 主动指导:帮助团队维护适当的SDLC工作流程,而无需手动跟踪
示例响应:
*任务依赖性情报:*
{
"success": true,
"entity_type": "task",
"entity_id": 5,
"old_status": "Review",
"new_status": "Closed",
"workflow_suggestions": [
{
"entity_type": "task",
"entity_id": 7,
"suggested_action": "start_task",
"reason": "All dependencies for task \"Implement API\" are now completed",
"suggested_status": "In Progress"
}
]
}*Bug状态情报:*
{
"success": true,
"entity_type": "bug",
"entity_id": 3,
"old_status": "In Progress",
"new_status": "Fixed",
"workflow_suggestions": [
{
"entity_type": "bug",
"entity_id": 3,
"suggested_action": "qa_verification",
"reason": "Bug has been marked as fixed and should be verified by QA",
"suggested_status": "In Progress"
}
]
}*用户故事验证:*
{
"content": ["Please ask product manager to add acceptance criteria"],
"structuredContent": {
"success": false,
"entity_type": "user_story",
"entity_id": 1,
"error": "Please ask product manager to add acceptance criteria"
},
"isError": true
}评论支持
create_comments:对任何SDLC实体发表评论,以获得利益相关者的反馈get_comments:检索特定SDLC实体的注释
Wiki管理
create_wiki_page:使用Markdown内容、标签和类别分类创建wiki页面(标题限制为256个字符,类别:技术、流程、业务、质量保证、知识)update_wiki_page:更新wiki页面内容、元数据和标签(标题限制为256个字符,类别:技术、流程、业务、质量保证、知识)list_wiki_pages:列出按类别、状态、标签或搜索词筛选的wiki页面get_wiki_page:获取包含链接实体的详细wiki页面内容manage_wiki_links:添加或删除wiki页面和SDLC实体之间的链接archive_wiki_page:存档wiki页面(移动到存档状态)
错误处理和验证
服务器包括全面的错误处理和数据验证:
输入验证
- 必填字段:所有必填字段都使用Zod模式进行验证
- 数据类型:对所有输入进行正确的类型检查
- 枚举值:利益相关者的角色和地位价值得到严格验证
外键验证
- 背景调查:在数据库操作之前,所有外键引用(epic_id、user_strory_id、task_id)都经过验证
- 清除错误消息:无效的引用返回特定的错误消息(例如,“无效的史诗ID:999”)
- 约束执行:检查数据库约束并妥善处理违规行为
错误响应格式
- 一致的结构:所有工具都会返回带有清晰消息的结构化错误响应
- 部分成功:创建工具可以在单个响应中返回成功和失败的操作
- 验证错误:输入验证失败包括详细的字段级错误信息
错误响应示例
// Foreign key validation error
"Invalid epic IDs: 999"
// Input validation error
{
"code": "too_small",
"minimum": 1,
"message": "Title is required"
}
// Constraint violation
"FOREIGN KEY constraint failed"HTTP API
服务器还为web应用程序和直接HTTP访问提供REST API:
端点
GET /api/status:获取数据库初始化状态和服务器信息POST /api/initialize:使用项目位置初始化数据库
- 请求: {"currentProjectLocation": "/path/to/project"} - 响应:数据库连接状态
GET /api/epics:列出所有带有评论数和相关性的史诗GET /api/epic/:id:获取具体史诗般的细节GET /api/story/:id:获取特定用户故事详细信息GET /api/task/:id:获取特定任务的详细信息GET /api/bug/:id:获取特定的bug详细信息GET /api/test-case/:id:获取特定测试用例详细信息GET /api/comments/:entityType/:entityId:获取任何实体的评论GET /api/wiki:列出所有包含元数据和标签的wiki页面GET /api/wiki/:id:获取包含完整内容和链接实体的特定wiki页面GET /api/wiki/search?q=term:按标题或内容搜索wiki页面
特性
- 评论数:所有实体包括
comment_count领域 - 依赖关系信息:Epic和用户故事包括依赖关系数组
- 布尔字段:存档字段的正确布尔值(true/false)
- JSON响应:所有端点都返回结构化JSON数据
安装
npm install用法
运行服务器
npm start或者用于自动重启的开发:
npm run dev初始化数据库
在使用任何其他工具之前,您必须初始化数据库。您有两个选择:
选项1:MCP工具(推荐用于AI代理)
- 打电话给
initialize工具并提供您当前的工作目录路径(例如,“/Users/username/project”) - 该工具将创建
.project_tracker.donottouch在该目录中设置所有必要的表 - 该工具将自动创建或更新
.gitignore从版本控制中排除数据库文件
选项2:HTTP API(适用于Web应用程序)
- 启动服务器:
npm start - 呼叫
POST /api/initialize与:{"currentProjectLocation": "/path/to/project"} - API将创建
.project_tracker.donottouch并建立数据库连接 - API将自动创建或更新
.gitignore从版本控制中排除数据库文件
连接到MCP客户端
此服务器使用stdio传输,因此可以连接到任何兼容MCP的客户端。以下是流行的AI编码代理的设置说明:
克劳德代码
claude mcp add --transport stdio my-tracker "npm start"开源代码
添加到您的OpenCode MCP配置中:
{
"mcpServers": {
"sdlc-tracker": {
"command": "npm",
"args": ["start"],
"cwd": "/path/to/your/project"
}
}
}OpenAI Codex
增添 ~/.codex/config.toml:
[[mcp]]
name = "sdlc-tracker"
command = "npm"
args = ["start"]
cwd = "/path/to/your/project"帆板运动
使用stdio传输和命令在Windsurf的MCP设置中进行配置 npm start.
光标
- 打开光标设置
- 导航到MCP部分
- 使用以下命令添加新服务器:
- 运输:stdio - 命令: npm start - 工作目录: /path/to/your/project
VS Code
- 安装MCP扩展(如“MCP”或“Claude Code”)
- 配置stdio传输
- 将命令设置为
npm start
Web UI访问
服务器还提供基于web的仪表板界面:
npm start
# Then visit the URL shown in the console (typically http://localhost:3000)Web UI功能:
- 选项卡式界面:单独的SDLC跟踪器和Wiki部分
- 仪表板概述:所有SDLC实体的视觉表示,具有清晰的实体标识
- 实体编号显示:所有卡都显示实体类型和ID(例如,“用户故事#5:实现身份验证”)
- Wiki浏览:基于卡片的wiki页面显示,包含元数据和标签
- Wiki档案:存档带有确认对话框和可选原因跟踪的wiki页面
- 依赖关系可视化:史诗和用户故事的可点击依赖链接
- 评论数:显示所有实体的评论计数
- 交互式导航:单击实体查看详细信息
- Wiki页面渲染:链接SDLC实体的完整Markdown支持
- 实时更新:自动刷新数据更改
其他MCP兼容客户端
- 克莱恩:在设置中配置stdio传输
- 鲁代码:使用添加服务器配置
npm start命令 - 继续:使用stdio传输添加到config.json
- 泽德:在MCP设置面板中配置
对于所有客户端,确保您正在从应初始化SDLC跟踪器数据库的项目目录中运行该命令。
数据库模式
这 initialize 工具创建SQLite数据库文件 .project_tracker.donottouch 在具有完整SDLC架构的指定目录中:
核心SDLC实体
Epics表
id:主键(自动递增)title:史诗标题(必填)description:史诗描述(可选)status:史诗级状态(“新建”、“打开”、“关闭”)created_by:创建者利益相关者(enum)owner:当前所有者(“产品”)assigned_to:仅分配给(“产品”)created_at/updated_at:时间戳closed_at:关闭时间戳archived:用于软删除的布尔标志dependencies:此史诗所依赖的史诗ID数组dependent_epics:依赖于此史诗的史诗ID数组dependencies_resolved:布尔值,指示是否所有依赖项都为“Closed”comment_count:关于这部史诗的评论数量
用户故事表
id:主键(自动递增)epic_id:史诗外键(可选)title:用户故事标题(必填)description:用户故事描述(可选)acceptance_criteria:验收标准(可选)status:状态(“新建”、“进行中”、“QA”、“UAT”、“已关闭”)created_by/current_owner/assigned_to:利益相关者分配(枚举)story_points:故事点估计(可选)phase:阶段名称(可选,可以为null)phase_status:阶段完成状态(可选,默认为“新建”)created_at/updated_at/qa_at/closed_at:时间戳archived:用于软删除的布尔标志dependencies:此故事所依赖的故事ID数组dependent_stories:依赖于此故事的故事ID数组dependencies_resolved:布尔值,指示是否所有依赖项都为“Closed”comment_count:关于此故事的评论数
任务表
id:主键(自动递增)user_story_id:用户库的外键(可选)title:任务标题(必填)description:任务描述(可选)status:状态(“新建”、“进行中”、“审核”、“已关闭”)created_by/current_owner/assigned_to:利益相关者分配(“架构设计师”、“开发人员”)estimated_hours/actual_hours:时间跟踪(可选)priority:任务优先级(“低”、“中”、“高”)-必填phase:阶段名称(可选,可以为null)phase_status:阶段完成状态(可选,默认为“新建”)created_at/updated_at/closed_at:时间戳dependencies_resolved:布尔值,指示是否所有依赖项都为“Closed”comment_count:对此任务的评论数
Bug表
id:主键(自动递增)user_story_id/task_id:外键(可选)title:Bug标题(必填)description:Bug描述(可选)severity:严重程度(“严重”、“高”、“中”、“低”)status:状态(“打开”、“进行中”、“审查”、“已修复”、“关闭”)reported_by/assigned_to/created_by/current_owner:利益相关者分配(枚举)phase:阶段名称(可选,可以为null)phase_status:阶段完成状态(可选,默认为“打开”)created_at/updated_at/fixed_at/closed_at:时间戳comment_count:对此错误的评论数
测试用例表
id:主键(自动递增)user_story_id:用户库的外键(可选)title:测试用例标题(必填)description/preconditions/steps/expected_result:测试细节status:状态(“新”、“通过”、“失败”)created_by/current_owner/assigned_to:利益相关者分配(“销售员”、“产品经理”)phase:阶段名称(可选,可以为null)phase_status:阶段完成状态(可选,默认为“新建”)created_at/updated_at/last_run_at/last_run_by:时间戳comment_count:此测试用例的评论数
故事依赖关系表
id:主键(自动递增)dependent_story_id:用户故事的外键(依赖于另一个故事的故事)dependency_story_id:用户故事的外键(故事取决于)created_at:创建依赖关系的时间戳created_by:创建依赖关系的利益相关者- 约束条件:无自依赖、无重复依赖、级联删除
Epic依赖关系表
id:主键(自动递增)dependent_epic_id:史诗的外键(依赖于另一部史诗的史诗)dependency_epic_id:史诗的外键(史诗依赖)created_at:创建依赖关系的时间戳created_by:创建依赖关系的利益相关者- 约束条件:无自依赖、无重复依赖、级联删除
任务依赖关系表
id:主键(自动递增)dependent_task_id:任务的外键(依赖于另一个任务的任务)dependency_task_id:任务的外键(任务取决于)created_at:创建依赖关系的时间戳created_by:创建依赖关系的利益相关者- 约束条件:无自我依赖、无重复依赖、级联删除、相同用户故事验证
评论表
id:主键(自动递增)entity_type:实体类型('pic'、'user_story'、'task'、'bug'、'test_case')entity_id:实体的外键comment_text:评论内容(必填)author:评论作者利益相关者(enum)created_at/updated_at:时间戳
Wiki页面表
id:主键(自动递增)title:Wiki页面标题(必填,唯一)content:Markdown内容(必填)category:类别分类(“技术”、“流程”、“业务”、“质量保证”、“知识”)tags:组织的标记字符串数组created_by/updated_by:创建/更新页面的利益相关者created_at/updated_at:时间戳
Wiki链接表
id:主键(自动递增)wiki_page_id:wiki_pages的外键entity_type:链接实体类型('pic'、'user_story'、'task'、'bug'、'test_case')entity_id:链接实体的外键created_at:创建链接时的时间戳created_by:创建链接的利益相关者
审计跟踪表
所有权转移
- 跟踪利益相关者之间的所有所有权变更
状态转换
- 使用时间戳和参与者跟踪所有状态更改
索引
- 所有外键和常用筛选列的性能指标
- 用于高效实体类型查询的复合索引
- 基于实体的快速过滤的注释实体索引
SDLC工作流程
服务器实施了一个完整的软件开发生命周期,并具有适当的利益相关者所有权:
实体国家和过渡
- 史诗新→ Open → 已关闭(归产品经理所有)
- 用户故事新→ 进行中→ QA → UAT → 已关闭(产品经理→ 建筑师→ 开发者→ 测试员→ 产品经理)
- 验证:没有验收标准和测试用例,无法移动到“进行中”
- 任务新→ 准备→ 进行中↔ 审查→ 已关闭(程序管理器→ 建筑师→ 开发者→ 建筑师,可能返回进行中进行返工)
- 漏洞:打开→ 进行中→ 审查→ 固定的→ 封闭式(任何利益相关者都可以参与)
- 验证:“审阅”只能从“进行中”设置,不能直接跳到“已修复”
- 测试用例:新建、通过、失败(测试仪→ 产品经理→ 测试仪)
利益相关者
- 产品经理:产品管理
- 程序管理员:项目管理
- 建筑师:解决方案架构
- 开发者:开发团队
- 测试员:质量保证
故事依赖关系
故事可以依赖于其他故事来建模复杂的项目关系:
- 多对多关系:一个故事可以依赖于多个故事,多个故事也可以依赖于一个故事
- 依赖性验证:防止循环依赖和自依赖
- 智能订购:
list_user_stories首先返回依赖关系最少的故事 - 批量管理:在单个操作中添加/删除多个故事的依赖关系
- 视觉指示器:依赖计数显示在带有可点击链接的UI中
史诗般的依赖关系
史诗可以依赖于其他史诗来模拟复杂的项目关系:
- 多对多关系一部史诗可能依赖于多部史诗,而多部史诗也可能依赖于一部史诗
- 依赖性验证:防止循环依赖和自依赖
- 批量管理:在单个操作中添加/删除多个史诗的依赖关系
- 视觉指示器:依赖计数显示在带有可点击链接的UI中
- API支持:完整的REST API支持史诗级依赖关系管理
任务相关性
任务可以依赖于同一用户故事中的其他任务来建模任务执行顺序:
- 相同用户故事约束:任务只能依赖于同一用户故事中的其他任务
- 依赖性验证:防止循环依赖、自我依赖和跨故事依赖
- 批量管理:在单个操作中添加/删除多个任务的依赖关系
- 视觉指示器:依赖计数显示在带有可点击链接的UI中
- API支持:全面支持MCP API对任务依赖性管理的支持
依赖关系已解决状态
所有列表操作(list_epics, list_user_stories, list_tasks)包括a dependencies_resolved 布尔字段,指示实体的所有依赖关系是否都处于“已关闭”状态:
- 动态计算:列出实体时实时计算
- 过滤支持:支持所有列表操作
dependencies_resolved滤波参数 - 工作流可见性:帮助团队识别准备工作的实体
- API集成:可用于MCP工具和REST API端点
阶段管理
实体可以分配给项目组织的自定义阶段:
- 阶段:自定义阶段名称(例如,“规划”、“开发”、“测试”、“部署”)
- 阶段状态:阶段内的当前状态(例如,“未开始”、“进行中”、“已完成”、“阻止”)
- 可选的:阶段完全是可选的,不会影响核心工作流程的转换
- 灵活的:阶段名称是自由格式的文本,允许自定义特定于项目的阶段
- 过滤:所有列表操作都支持按以下方式进行筛选
phase和phase_status参数 - 设置:可以在实体创建过程中设置阶段,也可以通过以下方式进行更新
update_entity_status
用户故事权限和归档
用户故事具有受限的更新权限和归档功能:
- 内容更新:所有利益相关者都可以更新标题、描述和故事点
- 验收标准:只有产品经理可以更新验收标准
- 归档:只有产品经理可以存档带有原因跟踪的用户故事
- 存档故事:在默认视图中隐藏,可通过以下方式访问
include_archived: true - 审计跟踪:所有内容和验收标准变更均经过全面审核
评论系统
- 任何利益相关者都可以向任何SDLC实体添加评论
- 支持关于需求、实现和问题的多线程讨论和反馈
- 维护完整的审计跟踪,包括作者和时间戳
审计跟踪
所有所有权和状态转换都记录在审计表中,以实现完整的可追溯性。
项目文件夹访问
出于安全原因,MCP服务器需要使用项目目录路径进行显式初始化。这 initialize 在使用任何其他工具之前,必须首先使用您当前的工作目录路径调用该工具。
示例用法
连接到MCP客户端后,您可以:
数据库初始化
- “使用路径'/Users/username/my project'初始化数据库”
Epic管理
- “创建epics:'用户身份验证系统'和'支付处理'”
- “列出所有打开的史诗”
用户故事创建
- “创建用户故事:史诗1的‘作为用户,我想用电子邮件/密码登录’(5分)和‘作为用户我想重置密码’(3分)”(注意:史诗ID已验证-无效引用返回明确的错误消息)
- “使用阶段创建用户故事:使用阶段“开发”和阶段_status“规划”为史诗1实现用户仪表板(8分)”
- “列出分配给开发人员的正在进行的用户故事”
- “列出‘开发’阶段的用户故事”
任务分解
- “创建任务:为分配给开发人员的用户故事1实现密码哈希(4小时)和创建登录UI(6小时)”(注意:用户故事引用已验证)
- “创建具有阶段的任务:为具有阶段“测试”和阶段状态“未开始”的用户故事1编写单元测试(3小时)”
- “列出正在进行的任务”
- “列出处于“测试”阶段且状态为“未开始”的任务”
- 将任务1的状态更新为“已关闭”
- 将任务2阶段更新为“测试”,将阶段状态更新为“进行中”
故事依赖关系
- 添加依赖关系:故事2依赖于故事1,故事3依赖于故事2
- “删除依赖关系:故事3不再依赖于故事2”
- “按依赖关系排序的用户故事列表(依赖关系最小的第一个)”
史诗般的依赖关系
- “添加依赖项:Epic 2依赖于Epic 1,Epic 3依赖于Epic2”
- 移除依赖:Epic 3不再依赖于Epic 2
- “列出具有依赖关系信息的史诗”
缺陷追踪系统
- “创建错误:'在移动设备上登录失败'(严重,由测试人员报告)和'未发送密码重置电子邮件'(高,由productmanager报告)”(注意:如果提供了用户故事和任务参考,则会进行验证)
- “列出所有严重性较高的未解决错误”
测试用例创建
- “为用户故事1创建测试用例:‘验证用户是否可以成功登录’和‘验证密码重置是否有效’”(注意:如果提供了用户故事引用,则会进行验证)
- “列出失败的测试用例”
评论与合作
- “添加对用户故事1的评论:架构师的‘需要确保安全最佳实践’”
- “添加对bug 1的评论:开发人员应检查电子邮件格式”
Wiki文档
- 创建wiki页面:“API身份验证指南”,其中包含有关OAuth2流、类别“技术”、标记\[“身份验证”、“安全性”、“API”\]的内容
- “创建wiki页面:‘部署过程’,包括分步部署说明、类别‘过程’、标签\[‘部署’、‘ci-cd’\]”
- “列出技术类别中的所有wiki页面”
- “使用其他OAuth2详细信息更新“API身份验证指南”的wiki页面内容”
- “将wiki页面“API身份验证指南”链接到用户故事1和任务2”
- 在wiki页面中搜索“身份验证”
工作流管理
- “将用户故事1状态更新为由架构师转换为‘进行中’”
- “将任务1状态更新为由开发人员转换为“已关闭””
相关性已解决筛选
- “列出已解决所有依赖关系的史诗”
- “列出具有未解决依赖关系的用户故事”
- “列出准备启动的任务(已解决依赖关系)”
Bug状态管理
- “将bug 1状态更新为“审阅”(必须来自“进行中”)”
- 将bug 2的状态更新为“已修复”(触发QA验证建议)
测试
该项目包括全面的测试套件:
单元测试
npm test运行直接测试数据库操作和业务逻辑的单元测试。
集成测试
npm run test:integration运行集成测试,启动MCP服务器,初始化数据库,并验证端到端功能,包括:
- 服务器启动和连接
- 通过MCP初始化数据库
- 数据库操作(创建、读取、更新)
- 错误处理和验证
- 外键约束检查
- 服务器稳定性
- 适当清理
发展
服务器是用TypeScript编写的,使用:
@modelcontextprotocol/sdk:MCP TypeScript官方SDKbetter-sqlite3:高性能SQLite库zod:工具输入/输出的模式验证
最近的改进
- 自动工作流转换:关闭的故事中的错误会重新打开QA,转移到QA的故事会重新打开史诗
- 增强的UI实体显示:仪表板卡片显示实体类型和编号(例如,“用户故事#5:标题”)
- Wiki存档用户界面:通过确认对话框从web界面存档wiki页面
- Wiki标题验证:wiki页面标题限制为256个字符,以提高可用性
- 自动.gitignore管理:数据库初始化会自动创建/更新.gitignore以排除数据库文件
- 维基系统:具有Markdown页面、标签、类别和SDLC实体链接的完整wiki功能
- 标签Web UI:增强的仪表板,带有单独的SDLC Tracker和Wiki部分
- 维基API:用于wiki页面管理和搜索的完整REST API
- 评论计数显示:所有实体现在都在API和MCP工具中显示评论计数
- 布尔字段转换:对存档字段进行正确的布尔处理(true/false)
- 史诗般的依赖关系:对epics的完全依赖支持(类似于用户故事)
- HTTP API:用于数据库初始化和实体访问的REST端点
- Web UI增强功能:仪表板中的Epic依赖关系可视化
- 增强的错误处理:具有清晰错误消息的全面验证
- 外键验证:在数据库操作之前,所有实体引用都经过验证
- 一致的API响应:所有列表工具现在都使用标准化的响应格式
- 提高数据完整性:更好的约束检查和错误报告
- 依赖关系已解决状态:对史诗、用户故事和任务依赖关系进行动态计算和过滤
- Bug状态增强:添加了具有严格转换验证的“审核”状态(进行中→ 审查→ 已修复)
- 高级工作流智能:任务依赖性建议、错误状态情报和用户故事验证
- 增强过滤:dependencies_resolved所有列表操作中的筛选器参数
许可证
国际协调委员会
