开发工作流MCP服务器
一个MCP(模型上下文协议)服务器,有助于执行开发规程和工作流最佳实践。此服务器充当您的编码良心,提醒您遵循正确的开发工作流程。
🛡️ 弹性特征
- 创业韧性:外部数据库连接超时5秒。
- 后台加载:非关键资产(兼容性镜像)在后台初始化,以确保亚秒级启动。
- 诊断模式:stderr中显示的自动启动计时日志。
🎯 目的
此MCP服务器将指导您完成有纪律的开发工作流程:
- 开始有意识 -明确你正在编码的内容
- 修复/实施 -编写代码
- 创建测试 -始终测试您的更改
- 运行测试 -测试必须通过(绿色)
- 文档 -更新文档
- 承诺与推动 -让服务器暂存、提交、, 并推动 验证通过后,您的更改(如果之后进行新的编辑,工作流将自动移回此步骤)
- 发布 -推送成功后,在关闭任务之前记录发布详细信息
🆕 v1.8.0的新增功能
- 模块化处理器架构 –
tools/handlers.js现在重新导出专注的处理程序模块,提高了可维护性和bundler行为。 - 组织测试套件 –1k线
tests/handlers.test.js已被拆分为handlers-*.test.js使用共享助手的文件,减少重复并明确意图。 - 共享测试工具 –新
tests/test-helpers.js集中化工作流状态设置、请求构建器和git模拟。 - 文档刷新 PRD已迁移至
docs/PRD.mdroot,状态升级到v1.8.0,发布说明更新以反映当前的工作流程。 - 释放卫生 –建议流量现在包括
npm run release:随后git push --follow-tags origin main保持舞台清洁。
🚀 安装
选项1:在项目中作为依赖项安装(推荐)
每个项目都有自己的独立工作流状态文件。
npm install @programinglive/dev-workflow-mcp-server这将自动创建一个 .state/workflow-state.json 文件在 你运行的项目 npm install (使用npm INIT_CWD),将每个项目的工作流历史记录分开。如果您正在安装软件包本身(内部 node_modules),脚本跳过创建,因此它永远不会污染共享包目录。
选项2:从源代码安装
git clone https://github.com/programinglive/dev-workflow-mcp-server.git
cd dev-workflow-mcp-server
npm installWindows必备条件: 从源代码安装依赖项会编译本机模块,例如better-sqlite3。在运行之前,请确保安装了Python 3(添加到PATH中)和Visual Studio构建工具“使用C++进行桌面开发”工作负载npm install如果没有它们,npm将以“需要python”或构建错误失败。
选项3:在Plesk主机上安装
Plesk通过其Node.js扩展支持Node.js应用程序。要在Plesk订阅上部署MCP服务器,请执行以下操作:
- 启用Node.js支持 –确保Plesk管理员已安装Node.js扩展并为您的订阅启用SSH访问。
- 上传项目 –克隆存储库或将存档上传到您将运行它的目录中(例如。,
httpdocs/dev-workflow-mcp-server).通过SSH,您可以运行:
cd httpdocs
git clone https://github.com/programinglive/dev-workflow-mcp-server.git
cd dev-workflow-mcp-server- 安装依赖项 –在Plesk的 Node.js 面板使用“NPM安装”(或运行
npm install --production通过SSH)。Linux主机已经提供了所需的Python/build工具链better-sqlite3;如果您的计划使用Windows主机,请事先安装Python 3和Visual Studio构建工具,或要求您的提供商启用它们。 - 定义环境变量 –在Node.js面板中添加所需的任何环境变量(例如
DEV_WORKFLOW_USER_ID或DEV_WORKFLOW_STATE_FILE).如果需要,这会将状态文件保存在web根目录之外。 - 配置应用程序 –设置 应用程序启动文件 到
index.js和 应用模式 到production.Plesk将运行服务器node index.js. - 启动/重新启动应用程序 –点击“重启应用程序”,Plesk将使用新配置启动MCP服务器。更新代码时,重新运行“NPM安装”并重新启动。
提示: MCP服务器通过stdio进行通信。如果你只需要它作为CLI工具,你也可以运行 npx @programinglive/dev-workflow-mcp-server 直接在SSH会话中运行,而无需在Node.js面板下运行。重要提示: MCP客户端(Windsurf、Claude Desktop等)必须通过stdio在本地启动服务器进程。在公共域上托管仪表板 不 暴露MCP接口。没有SSH或其他执行方式 node index.js 在服务器上,用户无法将其MCP客户端连接到托管实例。选项4:在Google Cloud上使用Docker进行部署
使用Docker和PostgreSQL将MCP服务器部署到Google Cloud Compute Engine,以实现生产就绪的云托管设置。
快速入门:
- SSH连接到您的GCP实例
- 运行安装脚本:
bash scripts/setup-gcp-instance.sh - 克隆存储库并配置
.env - 启动容器:
docker-compose up -d - 更新本地MCP客户端配置以通过SSH连接
优点:
- ✅ PostgreSQL数据库,实现强大的数据持久性
- ✅ 容器化部署以实现一致性
- ✅ 通过SSH隧道进行远程访问
- ✅ 轻松更新和回滚
请参阅 GCP部署指南 获取完整的分步说明。
两种使用模式
- 本地(来源):将您的MCP客户端指向
index.js。这直接从源代码运行,不需要构建步骤。建议用于MCP。 - 生产(已建):运行
npm run build一次生成dist/。这创建了一个优化的捆绑包,但MCP使用不需要。
3.在Windsurf/Claude桌面中配置
将MCP客户端指向服务器入口点。替换 在您的计算机上具有此存储库的绝对路径。
macOS
- 帆板运动 (
~/Library/Application Support/Windsurf/config.json):
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"cwd": "
",
"args": ["index.js"],
"env": {
"DEV_WORKFLOW_DB_TYPE": "postgres",
"DEV_WORKFLOW_DB_URL": "postgres://USER:PASS@HOST:5432/devworkflow"
}
}
}
}- 克劳德桌面版 (
~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"args": ["
/index.js"]
}
}
}视窗
- 帆板运动 (
%APPDATA%\Windsurf\config.json):
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"args": ["
\\index.js"]
}
}
}- 克劳德桌面版 (
%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"args": ["
\\index.js"]
}
}
}Linux
- 帆板运动 (
~/.config/windsurf/config.json):
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"args": ["
/index.js"]
}
}
}- 克劳德桌面版 (
~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"args": ["
/index.js"]
}
}
}注: 在JSON中的Windows路径上需要转义反斜杠(例如。, "C:\\path\\to\\project").完整的Windsurf MCP配置示例(macOS)
如果您在以下位置签出此存储库 /Users/alex/code/dev-workflow-mcp-server 如果想将Windsurf指向托管的PostgreSQL实例,请将以下内容放入 ~/Library/Application Support/Windsurf/mcp_config.json:
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"cwd": "/Users/alex/code/dev-workflow-mcp-server",
"args": ["index.js"],
"env": {
"DEV_WORKFLOW_DB_TYPE": "postgres",
"DEV_WORKFLOW_DB_URL": "postgres://devworkflow:devworkflow_secure_password@34.50.121.142:5432/devworkflow"
}
}
}
}这反映了以前版本中共享的Windows配置,但避免了 npx 通过启动本地程序查找macOS上的问题 index.js 直接。
4.重新启动Windsurf/Claude桌面
添加配置后,重新启动应用程序以加载MCP服务器。
5.反重力配置
反重力用户应在其 mcp_config.json.
窗户: %APPDATA%\Antigravity\mcp_config.json 或 C:\Users\\.gemini\antigravity\mcp_config.json
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"args": ["
\\index.js"]
}
}
}看 反重力入门 有关详细说明和故障排除。
⚡ 性能优化(推荐)
为了确保最快的启动速度(对于Claude Desktop等集成IDE的客户端至关重要),我们建议直接指向 index.js 使用 node 而非 npx这避免了检查包更新的开销。
优化配置:
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"args": ["
\\index.js"],
"env": {
"DEV_WORKFLOW_USER_ID": "your_user_id"
}
}
}
}服务器会自动为自己的启动计时,并将其记录到stderr: Dev Workflow MCP Server running on stdio (startup took 15ms)
⚙️ 配置
数据库设置
服务器支持 SQLite (默认), MySQL,以及 PostgreSQL.
通过配置 .env
- 复制
.env.example到.env:
cp .env.example .env- 编辑
.env使用您的设置:
DEV_WORKFLOW_DB_TYPE=mysql
DEV_WORKFLOW_DB_URL=mysql://user:pass@localhost:3306/db通过环境变量进行配置
或者,直接导出变量:。
| 变量 | 描述 | 默认值 |
|---|---|---|
DEV_WORKFLOW_DB_TYPE | 数据库驱动程序(sqlite, mysql, postgres) | sqlite |
DEV_WORKFLOW_DB_URL | MySQL/Postgres的连接字符串 | null |
DEV_WORKFLOW_DB_PATH | 重写SQLite数据库文件的路径 | ` |
| /.state/dev-workflow.db` |
例子
MySQL:
export DEV_WORKFLOW_DB_TYPE=mysql
export DEV_WORKFLOW_DB_URL="mysql://user:password@localhost:3306/dev_workflow"PostgreSQL:
export DEV_WORKFLOW_DB_TYPE=postgres
export DEV_WORKFLOW_DB_URL="postgresql://user:password@localhost:5432/dev_workflow"🛠️ 数据库模式规范化(Postgres/MySQL)
为确保与现有报告仪表板的兼容性 PostgresAdapter 和 MysqlAdapter 自动规范列名:
task_description→ DB列:descriptiontimestamp→ DB列:completed_at
适配器在查询中使用别名,因此MCP工具仍会收到预期的 task_description 和 timestamp 领域。
👤 用户ID处理(Postgres/MySQL)
这些数据库使用 INTEGER 的列 user_id.
- 数字字符串 (例如。,
"1")被直接解析为整数。 - 非数字字符串 (例如。,
"programinglive")被自动散列为一致的正整数,以确保与模式的兼容性,同时保持唯一的用户隔离。
用户和状态管理
| 变量 | 描述 |
|---|---|
DEV_WORKFLOW_USER_ID | 覆盖自动生成的用户ID(例如,设置为您的姓名/电子邮件) |
DEV_WORKFLOW_STATE_FILE | 覆盖的位置 workflow-state.json 文件 |
使用多个客户端(反重力和风帆)
如果您在同一项目上同时使用多个AI编码工具(例如Antigravity和Windsurf),默认情况下它们将共享相同的工作流状态。
保持 单独、不同的会议 为每个工具配置一个唯一的 DEV_WORKFLOW_USER_ID 对于每一个。
反重力配置(mcp_config.json):
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"args": ["path/to/server/index.js"],
"env": {
"DEV_WORKFLOW_USER_ID": "antigravity_user"
}
}
}
}风帆配置: 在Windsurf MCP设置中添加环境变量:
{
"mcpServers": {
"dev-workflow": {
"command": "node",
"args": ["path/to/server/index.js"],
"env": {
"DEV_WORKFLOW_USER_ID": "windsurf_user"
}
}
}
}✅ 测试
该项目使用Node.js原生测试运行器(node --test).
npm test这运行:
- 工作流逻辑的单元测试
- 集成测试
.env配置 - DB适配器测试(始终使用SQLite;如果配置了MySQL/Postgres)
测试数据库适配器
要验证MySQL或PostgreSQL适配器,请使用环境变量集运行测试:
# Test MySQL
export DEV_WORKFLOW_DB_URL="mysql://root:pass@localhost:3306/test_db"
node --test tests/db-adapters.test.js
# Test PostgreSQL
export DEV_WORKFLOW_DB_URL="postgres://postgres:pass@localhost:5432/test_db"
node --test tests/db-adapters.test.js脚本
npm run build-将源捆绑到dist/index.mjs用于分配npm run dev-在开发模式下运行并查看文件npm run local-从源代码运行的别名(与npm start)npm run web-启动轻量级工作流仪表板以浏览任务历史记录(请参阅 Web仪表板文档)
npm run web
此命令启动中定义的仪表板 web/server.js,让您快速查看工作流历史记录和摘要统计信息。
npm run web
# 🌐 Dev Workflow Dashboard running at http://localhost:3111- 默认端口: 3111(或下一个空闲端口,如果被占用)。
- 环境覆盖: 荣誉
PORT(在Plesk/Render等主机上很常见)或DEV_WORKFLOW_WEB_PORT然后再回到自动选择。 - 查询参数:
?user=允许您检查其他用户的历史记录(默认为default). - API端点:
- GET /api/version → 当前软件包版本来自 package.json (仪表板用于动态显示版本)。 - GET /api/summary?user= → 用户的总体统计数据。 - GET /api/history?user=&page=1&pageSize=20&startDate=YYYY-MM-DD&endDate=YYYY-MM-DD → 分页任务历史记录。 - GET /api/history-summary?user=&frequency=daily|monthly|yearly → 随着时间的推移,累计计数。
打开 http://localhost:3111 在浏览器中查看仪表板UI(web/index.html).
构建输出
跑步 npm run build 生成:
dist/index.mjs-优化的ES模块包- 源映射和其他构建工件
dist/docs/-通过Markdown生成的预渲染HTML文档scripts/build-docs.js
构建将所有源文件捆绑在一起,同时将Node.js内置模块和依赖关系外部化,从而形成单个文件分发。
用法
对于MCP服务器的使用,请将您的客户端指向 index.js (来源)以避免stdio传输兼容性问题。建成 dist/index.mjs 主要用于:
- npm包分发
- 性能优化
- 嵌入其他项目
MCP工具注册表(发布)
此软件包是为官方MCP工具注册表配置的,使用 npm包部署:
package.json宣布mcpName: "io.github.programinglive/dev-workflow-mcp-server".server.json描述服务器并将其链接到npm包@programinglive/dev-workflow-mcp-server.
要将新的服务器版本发布到注册表,请执行以下操作:
- 发布一个新的npm版本(例如):
- npm test - npm run release:patch (运行现有的发布管道并发布到npm)
- 验证npm上是否存在新版本:
- npm view @programinglive/dev-workflow-mcp-server version
- 安装MCP发布者CLI(每台机器一次):
- brew install mcp-publisher (或按照文档https://modelcontextprotocol.info/tools/registry/publishing/)
- 从该仓库根目录,进行身份验证并发布:
- mcp-publisher login github - mcp-publisher publish
- 在注册表中验证(可选):
- curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.programinglive/dev-workflow-mcp-server"
PowerShell CLI提示
从PowerShell调用轻量级CLI时,请使用 --% 为了防止PowerShell重写JSON参数,例如:
node --% index.js call start_task --args "{\"description\":\"Convert docs to HTML during build\",\"type\":\"feature\"}"这 --% 前缀和转义双引号确保JSON原封不动地到达MCP服务器。
📁 项目特定工作流状态
在项目中安装此软件包时 .state/workflow-state.json 文件会自动在项目根目录中创建。此文件:
- 存储工作流历史记录 特定于该项目
- 跟踪任务进度 每个项目独立
- 应该被忽视 (已在
.gitignore默认情况下) - 跨会话持续 因此,您的工作流状态得以保留
- 保持集中 即使您从嵌套的构建输出运行服务器,例如
dist/MCP服务器返回到项目根目录(查找.git或package.json)在读取或写入工作流状态之前,您永远不需要在构建目录下复制副本。
每个项目都有自己独立的工作流历史记录,因此您可以在不混合历史记录的情况下处理多个项目。其中 .state MCP服务器自动创建一个唯一的每个用户的子目录(例如。, .state/users/user-abc123/).生成的标识符在本地保持不变,因此共享同一存储库的多个开发人员永远不会破坏彼此的工作流文件。如果您更喜欢特定名称,请设置 DEV_WORKFLOW_USER_ID 在启动服务器之前,将使用该值而不是自动生成的ID。
选择用户ID
使用案例:
- 让服务器选择 –什么都不做,第一次运行服务器创建的任何MCP工具
.state/users//.仪表板User ID过滤器接受该值(在文件夹名称或工作流响应中可见)。
- 设置显式ID –启动服务器之前,导出
DEV_WORKFLOW_USER_ID:
# macOS/Linux
export DEV_WORKFLOW_USER_ID=alice
node index.js
# Windows PowerShell
$env:DEV_WORKFLOW_USER_ID = "alice"
node index.js现在,那次会议的所有历史都落在了 .state/users/alice/ 仪表板可以通过以下方式进行过滤 alice.
- 一台主机上有多个用户 –使用不同的进程(或MCP客户端)运行单独的进程
DEV_WORKFLOW_USER_ID价值观。每个用户的工作流状态保持隔离。
提示: web仪表板只是读取现有记录。在中键入新值User ID筛选器仅在工作流会话将历史记录写入后返回结果.state/users//.
添加到.gitignore
如果您正在使用此包,请将其添加到您的项目中 .gitignore:
.state/这使工作流状态保持在每个开发人员的机器本地。
需要覆盖位置吗? 集 DEV_WORKFLOW_STATE_FILE=/absolute/path/to/your/project/.state/workflow-state.json 在启动服务器之前(或在MCP客户端配置中)。服务器将遵循这条路径,让您在维护每个项目的工作流历史记录的同时,集中安装软件包。🛠️ 可用工具
start_task-开始新的编码任务mark_bug_fixed-将功能/错误标记为已修复(接下来需要测试)create_tests-标记测试已创建skip_tests-有理由跳过测试run_tests-记录测试结果(必须通过才能继续)create_documentation-将文档标记为已创建check_ready_to_commit-验证所有步骤是否完成commit_and_push-承诺并推动变革perform_release-记录发布细节(或使用skip_release当项目没有发布自动化时)complete_task-将任务标记为已完成并重置force_complete_task-有理由强制完成drop_task-放弃当前任务get_workflow_status-显示当前状态view_history-查看已完成的任务continue_workflow-获取下一步指导rerun_workflow-重置并从头开始重新启动当前任务run_full_workflow-使用单个命令按顺序执行每个工作流步骤(需要提供每个阶段的详细信息)
run_full_workflow
当您已经拥有每个工作流阶段所需的所有信息并希望一次性执行时,请使用此功能。
{
"summary": "Add payment webhooks",
"testCommand": "npm test",
"documentationType": "README",
"documentationSummary": "Document webhook configuration",
"commitMessage": "feat: add payment webhooks",
"releaseCommand": "npm run release:minor",
"releaseNotes": "Release webhook support",
"branch": "feature/payments",
"testsPassed": true,
"testDetails": "node --test; 42 tests",
"releaseType": "minor",
"preset": "minor"
}该工具将:
mark_bug_fixed使用summarycreate_testsrun_tests和testsPassed,testCommand,可选testDetailscreate_documentation和documentationType和documentationSummary
- 需要: docs/product/PRD.md 必须存在文档才能标记为完整
check_ready_to_commitcommit_and_push和commitMessage可选branchperform_release和releaseCommand,加上可选releaseNotes,releaseType,以及preset
- 或者致电 skip_release 当存储库没有基于节点的发布步骤时(例如,仅限Python或仅限文档的任务),有理由
complete_task重复使用commitMessage
除可选标志外的所有参数都是必需的,并且必须是非空字符串。
文件要求
这 create_documentation 该步骤强制要求PRD(产品需求文档)存在于 docs/product/PRD.md 在文档被标记为完整之前。这确保了所有项目都保持一个描述产品目标、功能和要求的最新PRD。
🚫 无需工作流步骤即可发布
包裹附带了一个释放警卫(release-wrapper.js)这支持了 npm run release:* 脚本。警卫拒绝逃跑,除非:
- 当前工作流阶段为 发布
check_ready_to_commit和commit_and_push已完成- 活动任务的发布尚未记录
如果缺少任何要求,防护装置将退出并指导返回MCP工具。这可以防止在托管工作流之外意外碰撞版本或标记版本。要正确释放:
- 使用
perform_release {"command":"patch"}(或minor/major)通过MCP客户端,或skip_release {"reason":""}如果没有发布。 - 保护程序会自动运行,验证工作流状态,并在让您完成之前记录发布情况
complete_task.
自动化npm发布
此存储库随附 .github/workflows/npm-publish.yml,每当git标签匹配时,它就会将包发布到npm v* 被推动(例如, v1.1.14).要启用工作流,请执行以下操作:
- 创建具有发布权限的npm自动化令牌(
npm token create --read-only false). - 在存储库设置中,添加一个名为
NPM_TOKEN包含该令牌。 - 确保您的发布流程在运行后推送标签
npm run release:因此工作流被触发。 - 确认
npm run build在当地取得成功;工作流在发布之前运行构建,因此损坏的捆绑包会阻止发布。 - GitHub出处是通过以下方式启用的
npm publish --provenance。启用GitHub Actions的默认OIDC权限,以便作业可以请求ID令牌。 - 保持
repository.url领域package.json指向这个GitHub仓库。如果来源验证与构建包的存储库不匹配,则来源验证失败。
工作流验证标记版本是否匹配 package.json 在出版之前,如果他们意见分歧,很快就会失败。
🛠️ 可用工具
工具参数要求
所有工具调用都会验证其 arguments 运行前的有效载荷:
- 字符串被解析为JSON,必须解析为对象(键/值对)。
- 传递非对象数据(数字、数组、纯文本)会触发引导错误。
- 缺失或格式错误的参数安全地默认为空输入,因此该工具可以用可操作的提醒进行响应。
示例(字符串化JSON对象):
{
"name": "start_task",
"arguments": "{\"description\":\"Add reporting endpoint\",\"type\":\"feature\"}"
}start_task
开始一个新的编码任务。这是你的第一步——意识到你在编码什么。
参数:
description(string,必填):清楚地描述要编写的代码type(枚举,必填):任务类型-“功能”、“错误修复”、“重构”或“其他”
例子:
Use the start_task tool with:
- description: "Add user authentication to the login page"
- type: "feature"mark_bug_fixed
标记错误/功能已修复。 提醒:现在你必须创建测试!
参数:
summary(string,必填):已修复/实施内容的简要总结
create_tests
确认您已经创建了涵盖更改的必要测试。在记录测试结果之前需要。
参数: _无_
skip_tests
当自动化测试不可行时,记录明确的理由。将测试标记为满意,以便您可以继续进行文档和验证,同时标记任务以进行手动QA。
参数:
reason(string,必填):为什么跳过自动化测试
run_tests
记录测试结果。 如果测试失败,永远不要承诺! 只有当所有测试都为绿色时才能继续。
参数:
passed(布尔值,必填):所有测试都通过了吗?testCommand(string,必填):运行的测试命令details(字符串,可选):测试结果详细信息
例子:
Use run_tests with:
- passed: true
- testCommand: "npm test"
- details: "All 15 tests passed"create_documentation
标记文档已创建/更新。在提交之前,这是必需的。
参数:
documentationType(enum,必需):“PRD”、“README”、“RELEASE_NOTES”、“inlinecomments”、“API-docs”、“changelog”或“other”summary(string,必填):记录了什么
check_ready_to_commit
检查是否已完成所有工作流步骤,并且您已准备好提交和推送。
commit_and_push
自动运行 git add, git commit,以及 git push 在就绪检查通过后。
主分支自动检测: 如果没有 branch 如果指定了,该工具会通过检查以下内容自动检测项目的主分支 origin/main 首先,然后回落到 origin/master这消除了为大多数项目指定分支参数的需要。
参数:
commitMessage(string,必填):要使用的常规提交消息branch(string,可选):要推送的目标分支。如果省略,则自动检测主分支(主分支或主分支)
perform_release
在您提交并推送后记录发布。在完成任务之前需要。
参数:
command(string,必填):释放已执行的命令(例如。,npm run release)notes(字符串,可选):其他发行说明
complete_task
成功提交和推送后,将任务标记为已完成。重置下一个任务的工作流。
参数:
commitMessage(string,必填):使用的提交消息
drop_task
放弃当前任务而不完成工作流。保留带有上下文的审核条目,然后重置状态,以便您可以重新开始。
参数:
reason(string,可选):关于任务被删除原因的更多详细信息
get_workflow_status
获取当前工作流状态以及下一步需要做什么。
view_history
查看已完成任务的工作流历史记录。
参数:
limit(number,可选):要显示的最近任务数(默认值:10)
📋 可用提示
workflow_reminder
获取开发工作流程规则的完整提醒。
pre_commit_checklist
获取一份提交前检查表,以确保在提交之前没有遗漏任何内容。
🔄 典型工作流程
以下是在典型的编码会话中如何使用此MCP服务器:
- 开始您的任务:
Ask Cascade to use start_task:
"Start a new task: implementing user profile page, type: feature"- 对功能/修复进行编码
- 像往常一样编写代码
- 标记为固定:
"Mark the feature as fixed: User profile page with avatar and bio completed"- 创建测试:
- 写你的测试 - 服务器会提醒您这是必须的!
- 运行测试:
"Record test results: passed=true, command='npm test'"- 如果测试失败,服务器将 块 你不要继续!
- 文件:
"Create documentation: type=README, summary='Added user profile section to docs'"- 检查准备情况:
"Check if I'm ready to commit"- 提交和推送:
"Commit and push: commitMessage='feat: add user profile page with tests and docs'"- 记录发布:
"Record release: command='npm run release', notes='v1.2.3'"- 完成:
"Complete the task with commit message: 'feat: add user profile page'"- 删除任务(可选):
"Drop task: reason='Switching to a different feature'"🎯 主要特点
- 执行纪律:不会让你跳过步骤的
- 测试驱动:如果测试失败,则阻止提交
- 文件提醒:确保您记录您的工作
- 状态跟踪:记住您在工作流程中的位置
- 历史:跟踪已完成的任务
- 提示:快速提醒最佳做法
🚫 此服务器防止什么
- ❌ 未经测试即提交
- ❌ 提交未通过的测试
- ❌ 在没有文件的情况下提交
- ❌ 忘记你在做什么
- ❌ 跳过重要的工作流程步骤
💡 提示
- 始终从以下内容开始
start_task-这设定了你的意图 - 切勿无故跳过测试 -使用
skip_tests仅在绝对必要时,记录手动QA的原因 - 使用
get_workflow_status-随时检查你在哪里 - 历史回顾 -从过去的任务中学习
- 按照提示操作 -它们包含最佳实践
🔧 定制
您可以在中修改工作流 index.js:
- 添加更多工作流阶段
- 自定义提醒
- 添加与测试运行器的集成
- 添加自定义验证规则
📝 状态管理
服务器在中维护状态 .state/workflow-state.json:
- 当前阶段
- 任务描述
- 每个步骤的完成状态
- 已完成任务的历史记录
此文件由服务器自动创建和管理。 它包含本地特定于机器的进度,git会忽略它,因此每个环境都可以管理自己的工作流历史,而不会造成交叉污染。
🤝 与您的规则集成
此MCP服务器符合您现有的开发规则:
- ✅ 执行测试优先原则
- ✅ 防止测试失败的提交
- ✅ 关于文档的提醒
- ✅ 跟踪工作流状态
- ✅ 维护历史记录
📄 许可证
麻省理工学院
🙏 贡献
请随意定制此服务器以满足您的特定工作流程需求!
