内容
mcp-name: io.github.RohitYajee8076/backburner -->
<div align="center">
<img src="docs/banner.png" alt="backburner — 为 AI 代理提供后台任务支持" />
<br/>
<br/>
**将 AI 代理的耗时工作放到后台,保持运行。**
<b>后台任务 ◦ 零基础设施 ◦ 重启后仍可运行 ◦ Windows & Unix</b>
<br/>
📦 [PyPI](https://pypi.org/project/backburner-mcp/) • 🗂️ [MCP 注册中心](https://registry.modelcontextprotocol.io/v0/servers?search=backburner) • 🐛 [问题](https://github.com/RohitYajee8076/backburner/issues) • 📄 [MIT](LICENSE)
</div>
---
## 📢 更新日志
- **v0.2.1** — 输出包含非 ASCII 字符(✓,表情符号,非英文文本)时,不再导致 Windows 上的任务崩溃。
- **v0.2.0** — 已取消或超时任务不再报告 `exit_code`(这是终止任务的产物,而不是实际结果);新的动画演示如下。
- **v0.1.x** — 首次发布:5 个工具,任务超时,命令允许/拒绝策略。在官方 MCP 注册中心中列出为 `io.github.RohitYajee8076/backburner`。
---
`backburner` 是一个 MCP 服务器,为任何 AI 助手(Claude 和其他 MCP 客户端)提供运行长时间 shell 命令作为**后台任务**的能力 — 启动测试套件、构建、抓取、批处理作业 — 然后继续工作并检查结果,而不是等待任务完成。

## 🔥 为什么
AI 代理不擅长等待。需要 10 分钟的工具调用会阻塞整个对话 — 或者超时并完全丢失工作。MCP 规范正在为这个问题正式制定任务模式(该扩展于 2026-07-28 版本中完成);`backburner` 通过普通的工具将该工作流带给每个客户端,今天就开始使用,路线图上支持首选任务扩展。
## 🧰 工具
| 工具 | 功能 |
|------|--------------|
| `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 可以运行的内容(正则表达式,逗号分隔;拒绝始终优先):
```bash
BACKBURNER_ALLOW="^pytest,^npm (test|run build)" # 仅允许这些命令运行
BACKBURNER_DENY="rm -rf,shutdown,format" # 这些命令永远不会运行
```
- **零基础设施** — 仅限标准库(SQLite,子进程,线程)。无需 Redis,无需 Celery,无需 Docker。
- **经过测试** — pytest 套件涵盖了整个任务生命周期:完成,失败,取消,超时,崩溃恢复和命令策略。
## 🚀 安装
```bash
pip install backburner-mcp
```
### Claude 代码
```bash
claude mcp add backburner -- python -m backburner.server
```
### Claude 桌面版 / 其他客户端
```json
{
"mcpServers": {
"backburner": {
"command": "python",
"args": ["-m", "backburner.server"]
}
}
}
```
## 🔒 安全注意
`backburner` 执行 AI 发送的 shell 命令,具有您的用户权限。这是它的工作 — 但请像给予代理终端一样对待它。仅与您审查/批准的工具使用客户端,首选需要确认 `start_task` 的权限模式,并使用 `BACKBURNER_ALLOW` / `BACKBURNER_DENY` 来限制可以运行的内容。
## 🗺️ 路线图
- [x] 任务超时和最大运行时限制
- [x] 命令的允许/拒绝列表
- [x] PyPI 发布 — `pip install backburner-mcp [x] 在官方 MCP 注册中心列出
- [ ] MCP 任务扩展支持(规范 2026-07-28)— 原生 `tasks/get`,`tasks/cancel` 与普通工具并存
- [ ] 本地 Web 仪表盘 — 在浏览器中实时查看任务
- [ ] 结构化进度报告(从输出中解析 % / 步标记)
## 📄 许可证
MIT