关于 backburner
backburner 是一个 MCP 服务,可将耗时的 Shell 命令作为持久后台任务运行。它适合需要结束会话或重启设备、之后再查看任务状态和输出的 AI 助手用户。
主要功能
- 01将 Shell 命令作为后台任务启动
- 02跨重启保存任务状态和日志
- 03检查状态并读取实时输出
- 04取消进程树并设置超时
- 05按命令模式设置允许和拒绝规则
- 06原生支持 MCP Tasks
适用场景
- 01运行耗时测试套件而不阻塞聊天
- 02在后续会话中收集构建输出
- 03服务器或设备重启后恢复任务记录
- 04限制 Agent 可运行的 Shell 命令
MCP 相关
提供启动、检查、读取结果、取消和列出 Shell 任务的工具。它还支持 MCP Tasks 扩展,同时为其他客户端保留普通工具接口。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx backburner-mcpBACKBURNER_HOMEDirectory for the task database and log files (default: ~/.backburner)BACKBURNER_ALLOWComma-separated regexes; if set, only matching commands may runBACKBURNER_DENYComma-separated regexes; matching commands are always refused (deny wins over allow)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
5收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cwd | any | 否 | |
| command | string | 是 | |
| timeout_seconds | any | 否 |
详细介绍
把 AI Agent 的耗时工作放到后台,继续推进其他工作。
面向 可跨越对话持续运行 的 AI Agent 后台任务——启动一个长任务,关闭客户端,等你回来时,结果依然在等着你。
持久可靠,重启无忧 ◦ 零基础设施 ◦ MCP Tasks(2026-07-28) ◦ Windows 和 Unix
📦 PyPI • 🗂️ MCP Registry • 🐛 问题反馈 • 📄 MIT
📢 更新
- v1.0 — 实现官方 MCP Tasks 扩展
(SEP-2663,
io.modelcontextprotocol/tasks)。支持 Tasks 的客户端可以将start_task调用转为持久任务,并通过tasks/get、tasks/update和tasks/cancel驱动它——这是标准的异步作业协议;同时, 另外五个普通工具仍可供其他所有客户端使用。基于 2026-07-28 规范(mcp2.0)构建。 - v0.2.1 — 输出中包含非 ASCII 字符(✓、表情符号及任何非英语文本)时, 不再导致 Windows 上的任务崩溃。
- v0.2.0 — 已取消或超时的任务不再报告
exit_code(它是强制终止造成的产物, 并非真实结果);下方新增动画演示。 - v0.1.x — 首次发布:5 个工具、任务超时、命令允许/拒绝策略。
已以
io.github.RohitYajee8076/backburner的名称列入官方 MCP Registry。
backburner 是一个 MCP 服务,让任何 AI 助手——Claude、ChatGPT、
Gemini、GitHub Copilot、Cursor 以及其他所有 MCP 客户端——都能将长时间运行的
Shell 命令作为后台任务执行——启动测试套件、构建、抓取或批处理任务,然后继续工作,
之后再回来查看结果,无需一直等待任务完成。

🔥 为什么不直接使用客户端内置的后台模式?
因为它存在于对话内部——会话一结束,它也就消失了。关闭聊天、重启客户端、 重启笔记本电脑,任何会话内的后台工作(及其输出)都会消失。
backburner 会将每个任务及其完整输出保存在磁盘上(SQLite +
~/.backburner/ 下每个任务各自的日志文件),因此你的工作不会随着启动它的会话结束:
- 现在启动,之后再收取——甚至可以在另一个聊天中。 你今天启动的任务, 明天在全新会话中仍会连同结果一起列出。
- 重启无忧。 状态在服务、客户端和机器重启后依然保留。已完成的任务会保留输出;
因崩溃而中断的任务会如实标记为
interrupted,绝不会悄无声息地丢失。 - 无需等待,也不会阻塞。 10 分钟的工具调用不再冻结对话,也不会因超时而丢失工作。
亲眼看看——真实的双进程验证(并非模拟演示):
python docs/demo_restart.py
它会在一个进程中启动作业,然后退出;接着,由一个独立进程——它从未见过任务 ID—— 找到仍保存在磁盘上、已经完成的任务。
它基于 MCP Tasks 模式构建,该模式在 2026-07-28 发布的规范中正式确立
(SEP-2663):
backburner 原生支持该模式(tasks/get / tasks/update / tasks/cancel),
并且将同一引擎作为普通工具提供,因此如今可以配合所有客户端使用。
🧰 工具
| 工具 | 功能 |
|---|---|
start_task(command, cwd?, timeout_seconds?) | 在后台运行 shell 命令,并立即返回任务 ID |
task_status(task_id) | working / completed / failed / cancelled / timed_out / interrupted |
task_result(task_id, tail_lines?) | 捕获的输出——运行期间也可查看进度 |
cancel_task(task_id) | 终止任务及其整个进程树 |
list_tasks(limit?) | 最近的任务,按时间从新到旧排列 |
✨ 功能
-
重启后仍可恢复——任务会在
~/.backburner/下记录到 SQLite; 输出会捕获到每个任务对应的日志文件。如果服务在任务运行期间崩溃, 孤立任务会如实标记为interrupted,绝不会悄无声息地丢失。 -
真正取消——终止整个进程树(包括工作进程),支持 Windows 和 Unix。
-
查看实时进度——对正在运行的任务调用
task_result,即可返回当前输出。 -
超时控制——传入
timeout_seconds,超时任务会被终止并如实标记为timed_out,而不是永远挂起。 -
命令策略——通过环境变量限制 AI 可运行的命令 (使用正则表达式,以逗号分隔;拒绝规则始终优先):
BACKBURNER_ALLOW="^pytest,^npm (test|run build)" # only these may run BACKBURNER_DENY="rm -rf,shutdown,format" # these never run -
无需任何基础设施——仅使用标准库(SQLite、subprocess、threads)。 无需 Redis、Celery 或 Docker。
-
经过测试——pytest 测试套件覆盖完整的任务生命周期:完成、 失败、取消、超时、崩溃恢复和命令策略。
🚀 安装
backburner 是标准的 stdio MCP 服务,适用于任何兼容 MCP 的
客户端,包括:
Claude Code · Claude Desktop · OpenAI(ChatGPT 桌面版 / Agents SDK)· Google Gemini(Gemini CLI)· GitHub Copilot(VS Code)· Cursor · Windsurf · Cline · Zed——以及任何其他支持 MCP 的客户端。
首先安装软件包:
pip install backburner-mcp
Claude Code
claude mcp add backburner -- python -m backburner.server
其他客户端(Claude Desktop、Cursor、VS Code / Copilot、Windsurf、Gemini CLI 等)
大多数客户端使用相同的标准配置块——将 backburner 添加到客户端的
MCP 配置中(有关配置文件的位置,请参阅客户端文档):
{
"mcpServers": {
"backburner": {
"command": "python",
"args": ["-m", "backburner.server"]
}
}
}
🔒 安全说明
backburner 会以你的用户权限执行 AI 发送给它的 shell 命令。这就是它的用途——但请把它视为让 Agent 使用终端。仅在你会审核或批准工具调用的客户端中运行它;尽量使用要求确认后才能执行 start_task 的权限模式,并使用 BACKBURNER_ALLOW / BACKBURNER_DENY 限定允许运行的命令。
🗺️ 路线图
- 任务超时和最长运行时间限制
- 命令允许列表 / 拒绝列表
- 发布到 PyPI——
pip install backburner-mcp - 收录于官方 MCP Registry
- MCP Tasks 扩展(规范 2026-07-28,SEP-2663)——除普通工具外,还支持原生的
tasks/get/tasks/update/tasks/cancel - 任务推送更新(
notifications/tasks)——无需轮询即可获取实时状态 - 本地 Web 仪表板——在浏览器中实时查看任务
- 结构化进度报告(从输出中解析百分比 / 步骤标记)
📄 许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。