开发任务管理工具

一个通过YAML定义开发任务并将其暴露为MCP工具的服务,用于管理和自动化开发任务。

  • by LaunchCG
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 jarosser06/dev-toolkit-mcp

使用说明

运行手册

MCP服务器,将YAML中定义的开发任务作为MCP工具公开。

安装

curl -fsSL https://runbookproduction.z13.web.core.windows.net/install.sh | bash

构建

go build -o bin/runbook main.go

或者使用make:

make build

配置

服务器按以下顺序查找配置:

  1. 通过给出的路径 -config 标志(文件或目录)
  2. .runbook/ 目录--全部 *.yaml 文件会自动合并

创建一个 .runbook/ 包含一个或多个YAML文件的目录:

.runbook/
  tasks.yaml
  daemons.yaml
  prompts.yaml

每个文件都是一个标准清单。它们被合并在一起——任务名称、工作流名称和提示名称在文件中必须是唯一的。

覆盖文件

地点a .runbook.overrides.yaml 在项目根目录下,无需编辑配置文件即可控制任务可见性。任务名称支持全局模式。

# .runbook.overrides.yaml
tasks:
  deploy:
    disabled: true       # fully disable (CLI + MCP)
  ts-*:
    disable_mcp: true    # hide from AI, keep CLI access
workflows:
  ci:
    disabled: true

覆盖文件是可选的,如果它不存在,则会被忽略。

示例

.runbook/tasks.yaml:

version: "1.0"

tasks:
  test:
    description: "Run tests"
    command: "go test ./..."
    type: oneshot

  dev:
    description: "Start dev server"
    command: "npm run dev"
    type: daemon

命令行用法

直接从命令行运行任务:

runbook list                                    # List all available tasks
runbook run <task> [--param=value...]           # Run a oneshot task or workflow
runbook start <task> [--param=value...]         # Start a daemon
runbook stop <task>                             # Stop a daemon
runbook status <task>                           # Show daemon status
runbook logs <task> [--lines=N] [--filter=REGEX] [--session=ID]

所有子命令均接受 --config=path 指定自定义配置位置。

示例

# List tasks defined in your config
runbook list

# Run a task
runbook run build

# Run a parameterized task
runbook run go_test --flags="-v -race" --package="./..."

# Start/stop a daemon
runbook start dev
runbook stop dev
runbook status dev

# View logs
runbook logs dev --lines=50
runbook logs dev --filter="ERROR"

任务输出到stdout(管道)。状态和元数据将转到stderr。

提示模板

提示支持Go模板语法。使用 run_task 引用任务工具名称——这适用于任何任务名称,包括包含连字符的任务名称:

prompts:
  dev-workflow:
    description: "How to work on this project"
    content: |
      Run tests: {{run_task "my-tests"}}
      Start server: {{run_task "dev-server"}}

{{run_task "my-tests"}} 解析为 run_my-tests。对于没有连字符的任务名称,点访问也适用: {{.Tasks.build.Run}} → run_build.

使用MCP

添加到您的 .mcp.json:

{
  "mcpServers": {
    "runbook": {
      "command": "/path/to/runbook"
    }
  }
}

发展

make test    # Run tests
make lint    # Run linter
make build   # Build binary to bin/runbook
make install # Install to $HOME/.bin/runbook