mcpField
C
Conductor

Conductor

ローカル
github.com/jarmstrong158開発ツール013 週間前に更新

Conductor について

Conductorはローカルのタスクスケジューラー兼ワーカーマネージャーです。会話を通じてClaudeが定期実行やスクリプト連携を設定し、実行ログを確認できます。ローカルのWebダッシュボードでは状態確認、停止、編集ができます。

主な機能

  1. 01時刻・間隔・cronによるスケジュール設定
  2. 02並列ステージに対応したスクリプト連携
  3. 03Python・バッチ・シェルスクリプトの実行
  4. 04メールでのレポートと通知
  5. 05実行履歴の保存とエラーログ確認

活用シーン

  1. 01指標スクリプトを定期実行してレポートをメール送信
  2. 02毎日のバックアップとクリーンアップを連携
  3. 03URLを監視して障害通知を送信
  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の手。状況を見守る人間向けのウェブダッシュボードも備えています。

Conductorを使うと、Claudeからローカルのタスクランナーを直接、継続的に制御できます。自動化したい内容をClaudeに伝えると、スケジュール実行するワーカーの作成、複数ステップのパイプラインの構築、メールレポートの設定、テスト実行の開始、エラー発生時のログの確認まで、すべて会話を通じて行います。ステータスを確認したり、一時停止をクリックしたり、ワーカーを手動で編集したりしたい人向けに、127.0.0.1:5000 でウェブダッシュボードも並行して動作します。

当初は倉庫のレポートワークフロー(ShipExecの毎日の指標取得)の自動化を目的に開発されましたが、現在は汎用的に使えます。あらゆるPython/バッチ/シェルスクリプト、あらゆるスケジュールや一連の処理に対応します。

MCP サーバーはこのリポジトリ内にあります(server.py)。ConductorのREST APIをClaudeのツールとして公開する薄いレイヤーです。インストール時に同梱され、自動登録されるため、ほとんどのユーザーは直接操作する必要はありません。別のconductor-mcpリポジトリは非推奨です。自動起動時の競合を防ぐ仕組みがない古いコピーが含まれています。

Conductorダッシュボード

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つのステップからなる「夜間メンテナンス」チェーンを作成しました。まずバックアップを実行し、成功するとクリーンアップを実行します。

仕組み:

  1. Conductorをインストールします(Windowsインストーラー、またはソースから)。
  2. Conductorは初回起動時に、Claude Desktopの設定へMCPエントリを書き込みます。
  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)、シェル(.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:MM09:00, 14:30, 17:00
間隔Xh Ym2h 30m、1h、45m
Cron5フィールドのcrontab0 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つの修正方法があります。

  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アプリパスワードが必要です(事前に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/importJSON からインポート
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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。