mcpField
C
Conductor

Conductor

本地服务
github.com/jarmstrong158开发工具013 周前更新

关于 Conductor

Conductor 是本地任务调度器和工作器管理工具,Claude 可通过对话创建计划任务、串联脚本并查看运行日志。它还提供本地 Web 仪表板,供用户查看状态、暂停任务和编辑工作器。

主要功能

  1. 01按固定时间、间隔或 cron 调度
  2. 02串联脚本并支持并行阶段
  3. 03运行 Python、批处理和 Shell 脚本
  4. 04通过邮件发送报告与通知
  5. 05保存运行历史并查看错误日志

适用场景

  1. 01定时运行指标脚本并邮件发送报告
  2. 02串联每日备份与清理任务
  3. 03监控 URL 并发送故障提醒
  4. 04查看失败任务的运行记录

MCP 相关

Conductor 内置 MCP 服务,并在首次启动时注册到 Claude Desktop。其工具允许 Claude 管理工作器、任务链、调度、运行和日志。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jarmstrong158-conductor": {
"command": "uvx",
"args": [
"conductor-mcpserver"
],
"env": {
"GMAIL_USER": "<GMAIL_USER>",
"GMAIL_APP_PASSWORD": "<GMAIL_APP_PASSWORD>"
}
}
}
}
启动命令uvx conductor-mcpserver
需要配置的环境变量
GMAIL_USERGmail address for sending email notifications
GMAIL_APP_PASSWORD密钥Gmail App Password for sending email notifications

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiconductor-mcpserver4.0.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

测试 许可证:MIT

Conductor

Claude 的本地自动化助手之手 — 配有供监督者查看的 Web 面板。

Conductor 让 Claude 能够直接、持续地控制本地任务运行器。告诉 Claude 你想要自动化什么;它会创建计划任务,构建多步骤流水线,配置电子邮件报告,触发测试运行,并在发生故障时读取日志 — 全程通过对话完成。与此同时,127.0.0.1:5000 上还会运行一个 Web 面板,方便用户查看状态、点击暂停,或手动编辑任务。

Conductor 最初是为自动化仓库报告工作流(每日 ShipExec 指标拉取)而构建的,现在已适用于各种用途:任何 Python / 批处理 / shell 脚本、任何计划安排、任何执行链。

MCP 服务位于此仓库中(server.py)— 这是将 Conductor REST API 暴露为 Claude 工具的轻量层。安装时会一并打包并自动注册,因此大多数用户无需直接操作它。单独的 conductor-mcp 仓库已弃用 — 其中包含的是较早的副本,没有自动启动竞态保护。

Conductor 仪表板

Claude 集成

Conductor 会在首次启动时将自身注册为 Claude Desktop 中的 MCP 服务。重启一次 Claude Desktop 后,Claude 就能使用 21 个工具进行全面控制:

对话示例:

你: 每天晚上 8:30 运行我的指标脚本,并通过电子邮件给我发送报告

Claude: 我会使用“运行 + 发送邮件”模板进行设置。 (创建任务、配置计划、接入 Gmail,并触发测试) 完成 — “Daily Metrics Report”任务已启用。请查收测试运行的邮件。

你: 那个正常运行时间检查一直失败。怎么回事?

Claude: (调取最近 10 次运行记录,读取错误日志) 该网站在过去一小时内三次返回 503。SSL 证书昨天过期了。以下是最近一次运行的完整错误信息……

你: 把我的备份脚本和清理脚本串联起来。先运行备份,完成后再运行清理。每天凌晨 2 点运行。

Claude: *(创建一个链:阶段 0 = 备份,阶段 1 = 清理,cron 计划为 "0 2 * * ") “Nightly Maintenance”链已创建,包含 2 个步骤。备份先运行,成功后再运行清理。

工作原理:

  1. 安装 Conductor(Windows 安装程序或从源代码安装)
  2. Conductor 首次启动时会将 MCP 配置项写入 Claude Desktop 的配置文件
  3. 重启一次 Claude Desktop
  4. Claude 现在可以通过自然语言控制 Conductor — 创建任务、构建执行链、触发任务、查看日志、发送电子邮件

功能

  • 由 Claude 控制 — 21 个 MCP 工具让 Claude 创建工作进程、任务链、组、模板等。非技术用户也可以通过对话自动化任何任务。
  • 灵活调度 — 固定时间(09:00, 14:30)、间隔(2h 30m)或 cron 表达式(0 9 * * 1-5,并提供通俗易懂的预览)。
  • 任务支持 — Python(.py)、批处理(.bat、.cmd)和 shell(.sh)脚本。Selenium 和 GUI 脚本通过 new_console 在可见的终端窗口中运行。
  • 内置邮件功能 — 配置一次 Gmail 后,任何模板或工作进程都可以发送邮件。使用 Run + Email 模板生成自动报告。Folder Watcher 会在文件到达时发送邮件。Uptime Check 会在服务不可用时发送警报。工作进程会在成功或失败时发送通知。
  • 任务链 — 支持并行执行的多步骤流水线。相同的阶段编号表示并行运行。可切换失败时停止。
  • 工作进程组 — 可折叠的命名组,便于整理。可按组批量暂停或删除。
  • 运行历史 — 按工作进程/任务链记录历史,包含状态、耗时和错误详情。彩色圆点可一目了然地显示上次运行状态。
  • 内置模板 — Folder Backup、File Cleanup、Folder Watcher、Uptime Check、Open URL、Run + Email。生成的脚本仅依赖标准库且自包含。
  • 每个工作进程的环境变量 — 将 KEY=VALUE 键值对注入子进程环境。
  • 工作进程超时 — 终止并记录运行时间超过指定分钟数的工作进程。
  • 邮件通知 — 按工作进程/任务链发送邮件提醒:始终、失败时或成功时。
  • 导入 / 导出 — 可移植的 JSON 快照,包含所有工作进程、任务链和组。
  • 已保存的配置 — 保存并加载命名的工作进程配置。
  • 登录时自动启动 — 一键安装 Registry Run 项。无需管理员权限。
  • 自动更新检查 — 有更新版本时显示模态对话框。
  • 系统托盘图标 — 右键单击可选择 Open Dashboard 或 Stop。
  • AI 错误分析 — 直接在仪表板中将错误日志发送给 Claude 进行诊断。
  • 持久化状态 — 使用 SQLite 数据库。重启后会恢复工作进程和任务链。
添加工作进程表单

添加工作进程表单

内置模板

模板选择器模态窗口

任务链

新建任务链模态窗口

调试日志

调试日志面板

安装(Windows)

从最新版本下载并运行 Conductor_Setup.exe。

  • 计算机上需要安装 Python 3(见下方说明)——Conductor 使用它运行 .py 工作进程
  • 安装到 %AppData%\Conductor — 无需管理员权限/UAC
  • 添加“开始”菜单快捷方式和可选的桌面快捷方式
  • 可选登录时自动启动
  • 包含卸载程序

Python 工作进程需要 Python。 Conductor 本身以独立可执行文件的形式提供, 但它会使用系统上找到的真实解释器运行你的 .py 脚本 (py 启动器、PATH 或 Windows 注册表)。如果找不到解释器,工作进程会明确报错 并提供说明——绝不会被报告为成功。 将 CONDUCTOR_PYTHON 设置为完整路径,可指定使用某个解释器。 .bat / .cmd / .sh 工作进程不需要 Python。

从源代码设置

要求
  • Python 3.10+
git clone https://github.com/jarmstrong158/conductor.git
cd conductor
pip install -r requirements.txt
python launch.py

仪表板会在 http://127.0.0.1:5000 打开。按 Ctrl+C 停止。

构建安装程序

.\build.bat

强制完整重建:

.\build.bat --rebuild

输出:Output\Conductor_Setup.exe。需要 Inno Setup。

任务文件格式

Python(.py)

脚本以子进程的形式运行:

if __name__ == "__main__":
    print("Task executed!")
批处理 / Shell(.bat、.sh、.cmd)

以子进程的形式执行。如果已设置工作进程的输出目录,则将其用作工作目录。

计划格式

类型格式示例
固定时间HH:MM 或 HH:MM,HH:MM09:00, 14:30, 17:00
间隔Xh Ym2h 30m、1h、45m
Cron5 字段 crontab0 9 * * 1-5(工作日早上 9 点)

任务链

任务链会按顺序运行多个脚本。每个步骤都有一个阶段编号——相同阶段的步骤会并行运行,各阶段按顺序执行。失败时停止会在任意步骤失败时终止任务链。

Stage 0: backup.py  ──┐
Stage 0: cleanup.py ──┤  (both run at once)
                      ↓
Stage 1: report.py    (runs after both finish)

模板

模板功能邮件功能
文件夹备份复制文件夹,保留 N 个备份发送摘要邮件
文件清理按模式删除旧文件发送摘要邮件
文件夹监视器按扩展名移动/发送文件每条规则可选择:移动、发送邮件或两者兼有
正常运行时间检查监控 URL,记录状态状态为 DOWN 时发送提醒邮件
打开 URL在浏览器中打开 URL—
运行并发送邮件运行脚本,并通过邮件发送输出文件将输出作为附件发送

所有生成的脚本仅使用 Python 标准库。

架构

conductor/
├── launch.py          # Entry point — Flask, browser, tray, MCP registration
├── app.py             # Flask backend + APScheduler + SQLite
├── server.py          # MCP server for Claude Desktop
├── CLAUDE.md          # Context file for Claude Code / Desktop
├── static/
│   └── index.html     # Frontend — HTML + CSS + JS (no frameworks)
├── tasks/
│   └── example_task.py
├── templates/
│   └── generated/     # Auto-generated template scripts
├── build.bat          # One-click installer build
├── build_icon.py      # Generates conductor.ico
├── conductor.spec     # PyInstaller spec
├── installer.iss      # Inno Setup script
└── conductor.db       # SQLite database (auto-created)
层技术
后端Python 3、Flask
调度APScheduler(BackgroundScheduler + MemoryJobStore)
持久化SQLite(WAL 模式)
前端原生 JS,单个 HTML 文件
AI 集成通过 MCP 使用 Claude(21 个工具)+ Anthropic API(错误分析)

AI 错误分析

调试日志中包含一个分析错误按钮。当存在 ERROR 条目时,点击该按钮即可将它们发送给 Claude 进行诊断。需要在 .env 中配置 Anthropic API 密钥:

ANTHROPIC_API_KEY=sk-ant-...

示例——分析前/后:

调试日志中的原始错误:

[ERROR] worker "Daily Metrics Report" exit code 1
Traceback (most recent call last):
  File "C:\scripts\metrics.py", line 142, in <module>
    driver.find_element(By.ID, "report-table").click()
  File ".../selenium/.../webdriver.py", line 830, in find_element
    raise NoSuchElementException(message)
selenium.common.exceptions.NoSuchElementException: Message: no such element:
Unable to locate element: {"method":"css selector","selector":"[id="report-table"]"}

Claude 的诊断(点击后即可获得):

脚本在页面加载完成前就调用了 find_element,因此失败了——Selenium 与 DOM 的加载发生了竞争。#report-table 元素要等到 XHR 完成后才会渲染。以下两种修复方法按优先级排序:

  1. 使用 WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "report-table"))) 包装元素查找,使其持续轮询,直到元素出现。
  2. 如果不想导入等待辅助工具,可以在点击前添加 time.sleep(2),但这种做法不够可靠。 回溯信息显示,此问题发生在昨天 ShipExec 更改 UI 后的首次运行中——他们也可能重命名了该元素。添加等待逻辑前,请在 DevTools 中确认 ID 仍为 report-table。

邮件设置

点击标题栏中的 📧 邮件,配置 Gmail 凭据。需要 Gmail 应用专用密码(必须先启用两步验证)。凭据保存在本地 .env 文件中,除发送到 Gmail 的 SMTP 服务器外,不会传输到其他地方。

配置完成后,所有模板和工作进程通知都可以发送邮件。

API

方法路径用途
GET/api/workers列出所有工作器
POST/api/workers注册工作器
PUT/api/workers/<id>更新工作器
POST/api/workers/<id>/pause切换暂停/恢复状态
POST/api/workers/<id>/run-now立即触发
GET/api/workers/<id>/history运行历史
POST/api/workers/<id>/assign-group分配到组
DELETE/api/workers/<id>删除工作器
POST/api/workers/pause-all暂停所有工作器
DELETE/api/workers/all删除所有工作器
GET/api/chains列出所有链
POST/api/chains创建链
PUT/api/chains/<id>更新链
POST/api/chains/<id>/pause切换暂停/恢复状态
POST/api/chains/<id>/run-now立即触发
GET/api/chains/<id>/history运行历史
DELETE/api/chains/<id>删除链
GET/api/groups列出组
POST/api/groups创建组
DELETE/api/groups/<id>删除组
GET/api/profiles列出配置文件
POST/api/profiles保存配置文件
GET/api/profiles/<id>加载配置文件
DELETE/api/profiles/<id>删除配置文件
POST/api/templates根据模板创建
GET/api/export将全部内容导出为 JSON
POST/api/import从 JSON 导入
GET/POST/api/email-settings电子邮件配置
GET/api/service/status自动启动状态
POST/api/service/install安装自动启动
POST/api/service/uninstall移除自动启动
GET/api/update-check检查更新
GET/api/logs?since=N日志条目
GET/api/status调度器和数据库状态
GET/api/browse?mode=file|dir原生文件选择器

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。