Conductor について
Conductorはローカルのタスクスケジューラー兼ワーカーマネージャーです。会話を通じてClaudeが定期実行やスクリプト連携を設定し、実行ログを確認できます。ローカルのWebダッシュボードでは状態確認、停止、編集ができます。
主な機能
- 01時刻・間隔・cronによるスケジュール設定
- 02並列ステージに対応したスクリプト連携
- 03Python・バッチ・シェルスクリプトの実行
- 04メールでのレポートと通知
- 05実行履歴の保存とエラーログ確認
活用シーン
- 01指標スクリプトを定期実行してレポートをメール送信
- 02毎日のバックアップとクリーンアップを連携
- 03URLを監視して障害通知を送信
- 04失敗したタスクの実行記録を確認
MCP 対応
ConductorにはMCPサーバーが含まれ、初回起動時にClaude Desktopへ登録されます。ツールを通じてClaudeがワーカー、タスクチェーン、スケジュール、実行、ログを管理できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Conductor
ローカル自動化を支えるClaudeの手。状況を見守る人間向けのウェブダッシュボードも備えています。
Conductorを使うと、Claudeからローカルのタスクランナーを直接、継続的に制御できます。自動化したい内容をClaudeに伝えると、スケジュール実行するワーカーの作成、複数ステップのパイプラインの構築、メールレポートの設定、テスト実行の開始、エラー発生時のログの確認まで、すべて会話を通じて行います。ステータスを確認したり、一時停止をクリックしたり、ワーカーを手動で編集したりしたい人向けに、127.0.0.1:5000 でウェブダッシュボードも並行して動作します。
当初は倉庫のレポートワークフロー(ShipExecの毎日の指標取得)の自動化を目的に開発されましたが、現在は汎用的に使えます。あらゆるPython/バッチ/シェルスクリプト、あらゆるスケジュールや一連の処理に対応します。
MCP サーバーはこのリポジトリ内にあります(
server.py)。ConductorのREST APIをClaudeのツールとして公開する薄いレイヤーです。インストール時に同梱され、自動登録されるため、ほとんどのユーザーは直接操作する必要はありません。別のconductor-mcpリポジトリは非推奨です。自動起動時の競合を防ぐ仕組みがない古いコピーが含まれています。

Claudeとの連携
Conductorは初回起動時に、Claude Desktopへ自身をMCP サーバーとして登録します。Claude Desktopを一度再起動すると、Claudeからすべてを制御するための21個のツールが使えるようになります。
会話の例:
あなた: 毎晩午後8時30分に指標スクリプトを実行して、レポートをメールで送ってください
Claude: 「実行+メール」テンプレートを使って設定します。 (ワーカーを作成し、スケジュールを設定して、Gmailと連携し、テスト実行します) 完了しました。「毎日の指標レポート」ワーカーが稼働中です。テスト実行の結果をメールでご確認ください。
あなた: 稼働状況のチェックが何度も失敗しています。何が起きているのでしょうか?
Claude: (直近10回の実行を取得し、エラーログを確認します) この1時間でサイトが3回、503エラーを返しています。SSL証明書は昨日、有効期限が切れました。直近の実行で発生したエラーの全文はこちらです……
あなた: バックアップスクリプトとクリーンアップスクリプトをつないでください。まずバックアップを実行し、終わってからクリーンアップを実行してください。毎日午前2時にお願いします。
Claude: *(ステージ0をバックアップ、ステージ1をクリーンアップとしてチェーンを作成し、cronスケジュール「0 2 * * 」を設定します) 2つのステップからなる「夜間メンテナンス」チェーンを作成しました。まずバックアップを実行し、成功するとクリーンアップを実行します。
仕組み:
- Conductorをインストールします(Windowsインストーラー、またはソースから)。
- Conductorは初回起動時に、Claude Desktopの設定へMCPエントリを書き込みます。
- Claude Desktopを一度再起動します。
- これでClaudeから自然言語でConductorを制御できます。ワーカーの作成、チェーンの構築、タスクの実行、ログの確認、メールの送信が可能です。
機能
- Claude による制御 — 21 個の MCP ツールを使って、Claude がワーカー、チェーン、グループ、テンプレートなどを作成できます。技術的な知識がないユーザーも、会話を通じてあらゆる作業を自動化できます。
- 柔軟なスケジュール設定 — 固定時刻(
09:00, 14:30)、間隔(2h 30m)、または cron 式(平易な英語によるプレビュー付きの0 9 * * 1-5)を設定できます。 - タスクのサポート — Python(
.py)、バッチ(.bat、.cmd)、シェル(.sh)スクリプトに対応しています。Selenium と GUI のスクリプトは、new_consoleを使って表示されるターミナルウィンドウで実行されます。 - メール機能を内蔵 — Gmail を一度設定すれば、どのテンプレートやワーカーからでもメールを送信できます。自動レポートには Run + Email テンプレートを使用できます。Folder Watcher はファイルが到着するとメールを送信します。Uptime Check は DOWN アラートを送信します。ワーカーは成功時または失敗時に通知します。
- タスクチェーン — 並列実行に対応した複数ステップのパイプラインです。同じステージ番号のタスクは並列実行されます。失敗時に停止するかどうかを切り替えられます。
- ワーカーグループ — 整理に便利な、折りたたみ可能な名前付きグループです。グループごとに一括で一時停止または削除できます。
- 実行履歴 — ワーカー/チェーンごとの履歴を、ステータス、実行時間、エラーの詳細とともに表示します。色付きのドットで、直近の実行ステータスをひと目で確認できます。
- 組み込みテンプレート — Folder Backup、File Cleanup、Folder Watcher、Uptime Check、Open URL、Run + Email が用意されています。生成されるスクリプトは、標準ライブラリのみを使用した自己完結型です。
- ワーカーごとの環境変数 —
KEY=VALUEのペアをサブプロセスの環境に渡せます。 - ワーカーのタイムアウト — 設定した分数を超えて実行されるワーカーを停止し、ログに記録します。
- メール通知 — ワーカー/チェーンごとのメールアラートを、常時、失敗時、成功時から選べます。
- インポート/エクスポート — すべてのワーカー、チェーン、グループを含む、持ち運び可能な JSON スナップショットです。
- 保存済みプロファイル — 名前付きのワーカー設定を保存して読み込めます。
- ログイン時に自動起動 — ワンクリックでレジストリの Run キーをインストールできます。管理者権限は不要です。
- 自動更新チェック — 新しいリリースが利用可能になると、モーダルダイアログを表示します。
- システムトレイアイコン — 右クリックして「ダッシュボードを開く」または「停止」を選べます。
- AI によるエラー分析 — エラーログを Claude に送信し、ダッシュボードから直接診断できます。
- 状態の永続化 — SQLite データベースを使用します。再起動後もワーカーとチェーンが復元されます。
ワーカー追加フォーム

組み込みテンプレート

タスクチェーン

デバッグログ

インストール(Windows)
最新リリースから Conductor_Setup.exe をダウンロードして実行します。
- マシンに Python 3 が必要です(下記の注を参照)— Conductor は Python 3 を使って
.pyワーカーを実行します %AppData%\Conductorにインストールされます — 管理者権限/UAC は不要です- スタートメニューのショートカットと、任意でデスクトップのショートカットを追加します
- ログイン時の自動起動を設定できます
- アンインストーラーが付属します
Python ワーカーには Python が必要です。 Conductor 自体は自己完結型の実行ファイルとして提供されますが、システム上で検出された実際のインタープリター(
pyランチャー、PATH、または Windows レジストリ)を使って.pyスクリプトを実行します。見つからない場合、ワーカーは成功として報告されず、エラーと手順が明確に表示されます。 特定のインタープリターを指定するには、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!")
バッチ/シェル(.bat、.sh、.cmd)
サブプロセスとして実行されます。設定されている場合、ワーカーの出力ディレクトリが作業ディレクトリとして使用されます。
スケジュール形式
| 種類 | 形式 | 例 |
|---|---|---|
| 固定 | HH:MM または HH:MM,HH:MM | 09:00, 14:30, 17:00 |
| 間隔 | Xh Ym | 2h 30m、1h、45m |
| Cron | 5フィールドのcrontab | 0 9 * * 1-5(平日の午前9時) |
タスクチェーン
チェーンでは複数のスクリプトを順番に実行します。各ステップには stage 番号があり、同じステージのステップは並列に実行され、ステージは順番に実行されます。失敗時に停止を有効にすると、いずれかのステップが失敗した時点でチェーンを停止します。
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モード) |
| フロントエンド | Vanilla 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の完了後にレンダリングされます。優先度順に、次の2つの修正方法があります。
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "report-table")))で検索処理を囲み、要素が存在するまでポーリングします。- 待機用ヘルパーをインポートしたくない場合は、クリック前に
time.sleep(2)を入れても機能しますが、堅牢ではありません。 トレースバックによると、昨日のShipExec UI変更後、最初の実行時に発生しています。要素名も変更された可能性があります。待機処理を追加する前に、DevToolsでIDがまだreport-tableであることを確認してください。
メールの設定
ヘッダーの 📧 メール をクリックして、Gmailの認証情報を設定します。Gmailアプリパスワードが必要です(事前に2段階認証を有効にしてください)。認証情報はローカルの .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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。