io.github.jarmstrong158/Conductor
Allows sending emails via Gmail, including automated reports, notifications, and file attachments from workers and templates.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.jarmstrong158/ConductorRun my metrics script every night at 8:30 PM and email me the report"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Conductor
Claude's hands for local automation — with a web dashboard for the humans who watch it.
Conductor gives Claude direct, persistent control of a local task runner. Tell Claude what you want automated; it creates the scheduled workers, builds multi-step pipelines, wires up email reports, fires test runs, and reads back the logs when something fails — all through conversation. A web dashboard at 127.0.0.1:5000 runs alongside it for humans who want to peek at status, click pause, or hand-edit a worker.
Originally built to automate warehouse reporting workflows (the daily ShipExec metrics pull) and now general-purpose: any Python / batch / shell script, any schedule, any chain.
The MCP server lives in this repo (
server.py) — the thin layer that exposes Conductor's REST API as Claude tools. It's bundled and auto-registered on install, so most users won't need to touch it directly. The separate conductor-mcp repo is deprecated — it holds an older copy without the auto-launch race protection.

Claude Integration
Conductor registers itself as an MCP server in Claude Desktop on first launch. After restarting Claude Desktop once, Claude has 21 tools for full control:
Example conversation:
You: Run my metrics script every night at 8:30 PM and email me the report
Claude: I'll set that up using the Run + Email template. (creates the worker, configures the schedule, wires up Gmail, fires it to test) Done — worker "Daily Metrics Report" is live. Check your email for the test run.
You: That uptime check keeps failing. What's going on?
Claude: (pulls the last 10 runs, reads the error logs) The site returned a 503 three times in the last hour. The SSL certificate expired yesterday. Here's the full error from the last run...
You: Chain my backup script and cleanup script together. Run backup first, then cleanup after it finishes. Every day at 2 AM.
Claude: *(creates a chain with stage 0 = backup, stage 1 = cleanup, cron schedule "0 2 * * ") Chain "Nightly Maintenance" created with 2 steps. Backup runs first, cleanup runs after it succeeds.
How it works:
Install Conductor (Windows installer or from source)
Conductor writes its MCP entry to Claude Desktop's config on first launch
Restart Claude Desktop once
Claude now controls Conductor through natural language — create workers, build chains, fire tasks, check logs, send emails
Related MCP server: Universal Dev MCP
Features
Claude-Controlled — 21 MCP tools let Claude create workers, chains, groups, templates, and more. Non-technical users can automate anything through conversation.
Flexible Scheduling — Fixed times (
09:00, 14:30), intervals (2h 30m), or cron expressions (0 9 * * 1-5with plain-English preview).Task Support — Python (
.py), batch (.bat,.cmd), and shell (.sh) scripts. Selenium and GUI scripts run in a visible terminal window vianew_console.Built-in Email — configure Gmail once, then any template or worker can send emails. Run + Email template for automated reports. Folder Watcher emails files on arrival. Uptime Check sends DOWN alerts. Worker notifications on success/failure.
Task Chains — multi-step pipelines with parallel execution. Same stage number = run in parallel. Stop-on-failure toggle.
Worker Groups — collapsible named groups for organization. Bulk pause/delete per group.
Run History — per-worker/chain history with status, duration, and error details. Colored dots show last run status at a glance.
Built-in Templates — Folder Backup, File Cleanup, Folder Watcher, Uptime Check, Open URL, Run + Email. Generated scripts are stdlib-only and self-contained.
Per-worker Environment Variables — inject
KEY=VALUEpairs into subprocess environments.Worker Timeout — kill and log workers that run over a set number of minutes.
Email Notifications — per-worker/chain email alerts: Always, On Failure, or On Success.
Import / Export — portable JSON snapshot of all workers, chains, and groups.
Saved Profiles — save and load named worker configurations.
Auto-start on Login — one-click Registry Run key install. No admin required.
Auto-update Check — modal dialog when a newer release is available.
System Tray Icon — right-click for Open Dashboard or Stop.
AI Error Analysis — send error logs to Claude for diagnosis directly in the dashboard.
Persistent State — SQLite database. Workers and chains restore on restart.
Add Workers Form

Built-in Templates

Task Chains

Debug Log

Installation (Windows)
Download and run Conductor_Setup.exe from the latest release.
Requires Python 3 on the machine (see note below) — Conductor runs your
.pyworkers with itInstalls to
%AppData%\Conductor— no admin/UAC requiredAdds Start Menu shortcut and optional desktop shortcut
Optional auto-start at login
Uninstaller included
Python is required for Python workers. Conductor itself ships as a self-contained executable, but it runs your
.pyscripts with a real interpreter found on your system (thepylauncher,PATH, or the Windows registry). If none is found, workers fail loudly with instructions — they are never reported as successful. SetCONDUCTOR_PYTHONto a full path to pin a specific interpreter..bat/.cmd/.shworkers do not need Python.
Setup from Source
Requirements
Python 3.10+
git clone https://github.com/jarmstrong158/conductor.git
cd conductor
pip install -r requirements.txt
python launch.pyThe dashboard opens at http://127.0.0.1:5000. Press Ctrl+C to stop.
Building the Installer
.\build.batForces a full rebuild:
.\build.bat --rebuildOutput: Output\Conductor_Setup.exe. Requires Inno Setup.
Task File Format
Python (.py)
Scripts run as subprocesses:
if __name__ == "__main__":
print("Task executed!")Batch / Shell (.bat, .sh, .cmd)
Executed as subprocesses. The worker's output directory (if set) is used as the working directory.
Schedule Formats
Type | Format | Example |
Fixed |
|
|
Interval |
|
|
Cron | 5-field crontab |
|
Task Chains
Chains run multiple scripts in sequence. Each step has a stage number — steps with the same stage run in parallel, stages execute in order. Stop on failure halts the chain when any step fails.
Stage 0: backup.py ──┐
Stage 0: cleanup.py ──┤ (both run at once)
↓
Stage 1: report.py (runs after both finish)Templates
Template | What it does | Email capability |
Folder Backup | Copy folder, keep N backups | Summary email |
File Cleanup | Delete old files by pattern | Summary email |
Folder Watcher | Move/email files by extension | Per-rule: move, email, or both |
Uptime Check | Monitor URL, log status | Alert email on DOWN |
Open URL | Open URL in browser | — |
Run + Email | Run script, email output file | Sends output as attachment |
All generated scripts use Python stdlib only.
Architecture
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)Layer | Technology |
Backend | Python 3, Flask |
Scheduling | APScheduler (BackgroundScheduler + MemoryJobStore) |
Persistence | SQLite (WAL mode) |
Frontend | Vanilla JS, single HTML file |
AI Integration | Claude via MCP (21 tools) + Anthropic API (error analysis) |
AI Error Analysis
The debug log includes an Analyze Errors button. When ERROR entries are present, click it to send them to Claude for diagnosis. Requires an Anthropic API key in .env:
ANTHROPIC_API_KEY=sk-ant-...Example — before / after:
Raw error in the debug log:
[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's diagnosis (one click later):
The script is failing on a
find_elementcall before the page has finished loading — Selenium is racing the DOM. The element#report-tableis rendered after an XHR completes. Two fixes, in order of preference:
Wrap the lookup in a
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "report-table")))so it polls until the element exists.If you don't want to import the wait helpers, a
time.sleep(2)before the click will work but is brittle. The traceback shows this happened on the first run after a ShipExec UI change yesterday — they may have also renamed the element. Verify the ID is stillreport-tablein DevTools before adding the wait.
Email Setup
Click 📧 Email in the header to configure Gmail credentials. Requires a Gmail App Password (2-Step Verification must be enabled first). Credentials are stored locally in .env and never transmitted except to Gmail's SMTP server.
Once configured, all templates and worker notifications can send email.
API
Method | Path | Purpose |
|
| List all workers |
|
| Register worker(s) |
|
| Update worker |
|
| Toggle pause/resume |
|
| Fire immediately |
|
| Run history |
|
| Assign to group |
|
| Delete worker |
|
| Pause all workers |
|
| Delete all workers |
|
| List all chains |
|
| Create chain |
|
| Update chain |
|
| Toggle pause/resume |
|
| Fire immediately |
|
| Run history |
|
| Delete chain |
|
| List groups |
|
| Create group |
|
| Delete group |
|
| List profiles |
|
| Save profile |
|
| Load profile |
|
| Delete profile |
|
| Create from template |
|
| Export all as JSON |
|
| Import from JSON |
|
| Email configuration |
|
| Auto-start status |
|
| Install auto-start |
|
| Remove auto-start |
|
| Check for updates |
|
| Log entries |
|
| Scheduler + database status |
|
| Native file picker |
License
MIT
Available Tools
24 toolscheck_for_updateA
Check GitHub for a newer version of Conductor.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'Check' implies a read-only operation, but there's no mention of network dependency, rate limits, or what the tool does with the result. The description is too sparse to fully inform the agent of behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence without any wasted words. It is front-loaded and to the point, making it easy to parse and act upon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless tool, the description covers the core purpose. However, it lacks any mention of the return value or expected output (e.g., a boolean or version number), which could be important for an agent deciding how to act. Given no output schema, this is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is trivially complete. Per the rubric, a baseline of 4 applies when there are no parameters to describe. The description adds minimal value here but doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Check GitHub for a newer version of Conductor.' It uses a specific verb ('check') and identifies the resource (GitHub, Conductor version), making it distinct from sibling tools focused on workers, chains, and groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose inherently implies when to use the tool (to see if an update is available), but no explicit context, exclusions, or alternatives are mentioned. With no similar sibling tools, the lack of explicit guidance is not critical, but it remains minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_chainB
Create a new task chain. Steps run sequentially by default. Assign same stage number to multiple steps to run them in parallel. Stage numbers are integers 0-99.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| steps | Yes | List of steps. Each step needs task_path and stage. Same stage = parallel execution. | |
| notify_on | No | always | |
| sched_type | Yes | ||
| sched_value | Yes | ||
| notify_email | No | Email address for run notifications (optional) | |
| stop_on_failure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It adds value by explaining that steps run sequentially by default and that same stage numbers trigger parallel execution, plus the stage integer range. However, it does not disclose side effects, required scheduling behavior, or error handling. It is not misleading but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the core purpose, and adds necessary detail without fluff. Every sentence adds information about behavior or constraints, making it appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters, 4 required, including scheduling and notification fields. The description only covers step execution order and stage constraints. It does not explain sched_type, sched_value, notify_on, stop_on_failure, or the requirement of scheduling parameters. No output schema or annotations exist to fill these gaps, leaving the description incomplete for a complex creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% (steps and notify_email have descriptions). The description compensates for the 'steps' parameter by elaborating on stage semantics (sequential vs parallel, range 0-99). However, it adds no explanation for sched_type, sched_value, notify_on, or stop_on_failure, which are undocumented in the schema. It partially adds meaning but does not fully compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the function: 'Create a new task chain.' It uses a specific verb+resource and is distinct from sibling tools like delete_chain or run_chain_now. It also adds key behavioral context about step execution order and parallelism, which clarifies what the tool does beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives. It does not mention exclusions or alternatives (e.g., using create_worker for single tasks). The only implicit usage context is that it creates chains, but this is tautological. No prerequisites or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_groupC
Create a new worker group.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry full behavioral disclosure. It only states that a new group is created, but does not mention idempotency, permissions, response behavior, or error cases. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It is appropriately front-loaded, though it could be slightly expanded to include more useful context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a minimal description, the tool is far from complete. An agent cannot infer expected return values, default behaviors, or edge cases, making the description inadequate for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the 'name' parameter, and the description does not clarify what 'name' means (e.g., format, uniqueness, length). The description adds no value to parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new worker group' uses a specific verb ('create') and resource ('worker group'), clearly distinguishing it from siblings like create_worker, which creates a worker. It is unambiguous and directly reflects the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as list_groups or delete_group. It does not mention prerequisites, context, or exclusions, leaving the agent without direction on appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_workerA
Register a new scheduled worker. sched_type: 'fixed' (comma-separated times like '09:00,14:30'), 'interval' (like '2h 30m' or '1h'), or 'cron' (like '0 9 * * 1-5'). timeout_minutes=0 means no timeout. env_vars is KEY=VALUE lines.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| env_vars | No | KEY=VALUE lines injected into subprocess env | |
| notify_on | No | When to send notification: always, failure, or success | always |
| task_path | Yes | Absolute path to .py, .bat, .sh, or .cmd file | |
| output_dir | No | ||
| sched_type | Yes | ||
| new_console | No | ||
| sched_value | Yes | ||
| notify_email | No | Email address for run notifications (optional) | |
| requirements | No | Comma-separated pip packages to install | |
| timeout_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses important behavioral details like the meaning of timeout_minutes=0 and the expected format for env_vars, which goes beyond the schema. However, it omits other behavioral aspects such as return values, side effects (e.g., whether the worker starts immediately), error handling, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences) and front-loaded with the core purpose. Each sentence adds specific, non-redundant information about schema types and value formats. No filler or repetition, achieving high information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, no output schema, no annotations), the description covers only the scheduling and env-var aspects but fails to mention return values, creation behavior, or validation rules. It is adequate for simple use cases but incomplete for predictable invocation in all scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 45%, so the description adds value by explaining sched_type formats, timeout_minutes semantics, and env_vars syntax. However, it ignores several parameters (output_dir, new_console, notify_on, etc.) that lack sufficient schema descriptions, leaving gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Register') and resource ('new scheduled worker'), which is specific and distinct from sibling tools like list_workers or update_worker. The additional scheduling format details reinforce the purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use it (creating a new scheduled worker) but does not explicitly contrast with alternatives like update_worker or create_worker_from_template. No exclusions or conditional guidance is provided, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_worker_from_templateA
Create a worker using a built-in template. Template types: folder_backup (source, dest, keep, summary_email), file_cleanup (folder, pattern, days, summary_email), folder_watcher (watch, rules as [{ext, dest, email_to}]), uptime_check (url, log_file, alert_email), open_url (url), run_and_email (script_path, output_file, email_to). Generated scripts use stdlib only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| config | Yes | Template-specific config fields | |
| sched_type | Yes | ||
| sched_value | Yes | ||
| template_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds 'Generated scripts use stdlib only' and lists config fields, but does not disclose default worker state, email side effects, or permissions. It provides some behavioral context but not full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concisely listing template types and configs without extraneous information. It is front-loaded with the purpose and efficiently organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 template types and nested config, the description provides enough context to construct a valid invocation. It omits return value and post-creation behavior, but the critical template-config mapping is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps each template_type to its required config fields (e.g., folder_backup: source, dest, keep, summary_email), which is essential since the schema only provides a vague 'Template-specific config fields' description for config.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a worker using a built-in template' and enumerates specific template types, making the tool's purpose explicit and distinguishing it from the generic create_worker sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for template-based workers by listing available template types, but does not explicitly contrast with create_worker or state when not to use it. Clear context is present without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_all_workersA
Delete ALL workers and chains. Irreversible. Use with caution.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the critical behavioral trait of irreversibility ('Irreversible') and the broad scope ('ALL workers and chains'). It does not mention auth requirements or post-deletion effects, but the most important destructive aspects are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: 'Delete ALL workers and chains. Irreversible. Use with caution.' Every sentence provides essential information: what it does, its irreversibility, and a warning. No words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema) and the destructive nature, the description covers the key points: scope and irreversibility. It could mention prerequisites or what exactly happens to related data, but for a zero-parameter tool, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty. Per the rubric, the baseline for 0 params is 4. The description adds no parameter-specific information, but none is needed since there are no arguments to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Delete ALL workers and chains.' This is a specific verb+resource+scope, and it distinguishes itself from sibling tools like delete_worker and delete_chain by explicitly covering all workers and chains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a caution ('Use with caution') but lacks explicit guidance on when to use this tool versus alternatives like delete_worker or delete_chain. The intended use (bulk deletion of everything) is implied rather than stated, and no exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_chainA
Delete a chain and all its steps by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that deletion cascades to steps, which is important, but it does not mention permanence, permissions, or error behavior, leaving moderate transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action, and contains no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete tool, the description covers the core action and cascade scope. It lacks edge-case or permission details but is reasonably complete given the low complexity and lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description's 'by ID' clarifies that chain_id is the identifier used for deletion. It does not elaborate on type or format, though chain_id is fairly self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Delete' and identifies the resource 'chain' plus the cascading scope 'all its steps', clearly distinguishing it from sibling tools like delete_worker and delete_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting a chain by ID, which is sufficient for a simple delete operation, but it provides no explicit when/when-not guidance or alternatives such as delete_all_workers or run_chain_now.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_groupA
Delete a group by ID. Unassigns all members but does not delete them.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly discloses a critical side effect: unassigning all members without deleting them. However, it does not mention whether deletion is irreversible or what happens to related groups/chains, leaving a moderate gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action, then the key side effect. Every word earns its place; no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with one parameter, the description covers the core purpose and the most important side effect. It lacks explicit guidance on when to use it, but that is captured under usage guidelines. Overall, it is reasonably complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no value beyond the schema's 'group_id' name and integer type. The phrase 'by ID' merely restates the parameter name without explaining format, semantics, or how to obtain the ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete a group') and the specific resource ('by ID'), and adds a key distinguishing detail: it unassigns members without deleting them. This separates it from sibling tools like delete_worker or delete_chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any direct guidance on when to use this tool versus alternatives such as delete_worker or delete_chain. The side effect about members is helpful but does not address usage context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_workerA
Delete a worker by ID. Removes from scheduler and database.
| Name | Required | Description | Default |
|---|---|---|---|
| worker_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It discloses the key behavioral trait that deletion is permanent and affects both scheduler and database, which goes beyond a simple 'delete' statement. However, it doesn't mention reversibility, required permissions, or side effects on associated history.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences, front-loaded with the action and resource, followed by a clarifying effect. Every word earns its place, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with a single parameter and no output schema, the description provides enough context: what it does, the scope (worker), and the effect (scheduler + database). It could mention return values or cascading effects, but these are not essential for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter (worker_id) and description coverage is 0%. The description adds minimal value by saying 'by ID,' which clarifies the parameter's role as an identifier, but it doesn't explain the type or where to obtain the ID beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and the resource (worker by ID), and specifies the scope by noting it 'Removes from scheduler and database.' This distinguishes it from sibling tools like pause_worker or delete_all_workers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for deleting a single worker by ID, but it doesn't explicitly mention when not to use it or provide alternatives (e.g., pause_worker for temporary suspension). The context is clear but lacks explicit exclusions or comparison with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_allA
Export all workers, chains, chain steps, and groups as a JSON snapshot. Use for backup or migration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It states what is exported and the output format (JSON snapshot), which implies a read-only operation. However, it does not mention potential side effects, size limitations, or whether sensitive data (e.g., credentials) is included. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the action and scope, the second states the use cases. It is front-loaded and every sentence provides value. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters, no annotations, and no output schema, the description is mostly complete. It identifies the resources exported and the output format, and gives common use cases. It could briefly mention the result or any limitations, but the information is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema coverage is trivially 100%. The description adds no parameter specifics because none exist, which is appropriate. The baseline for 0 params is 4, and the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Export' and the specific resources (workers, chains, chain steps, groups) with an explicit output format (JSON snapshot). This distinguishes it from sibling tools like list_workers or delete_all_workers by describing a distinct bulk export action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly identifies use cases: 'Use for backup or migration.' This gives clear context for when this tool is appropriate. It doesn't explicitly exclude alternatives, but the export-all nature is distinct enough from list/delete operations to make misuse unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chain_historyA
Get the last 10 run history entries for a chain.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the read-only nature via 'Get' and the behavior of returning exactly the last 10 entries, which is useful. However, it does not mention ordering, return format, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys all essential information without any unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one required parameter and no output schema, the description covers the core aspects: what is retrieved and the limit of 10. It lacks explicit return structure details, but the low complexity and the phrase 'run history entries' provide adequate guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 0%, the sole parameter chain_id is self-explanatory from the tool name and the mention of 'a chain' in the description. The description adds minimal but sufficient context for a single, obvious parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get', the resource 'run history entries', and the scope 'for a chain'. It effectively distinguishes from sibling tools like get_worker_history by specifying the chain context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: retrieving recent run history for a specific chain. It does not explicitly contrast with alternatives like get_worker_history, but the purpose is clear enough that an agent would know when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_email_settingsA
Check if email credentials are configured. Returns has_credentials (bool) and the sender email address. Use this before any email-related operation to verify setup. If not configured, prompt the user for their Gmail address and App Password.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return values (has_credentials, sender email) and provides an actionable instruction if not configured. This gives the agent a clear understanding of the tool's behavior and expected follow-up, even without explicitly stating it is read-only, which the verb 'check' implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose. Every sentence earns its place: purpose, return values, and usage guidance. There is no fluff or repetition, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description is complete. It explains what the tool returns, when to use it, and what to do based on the result. This is sufficient for an agent to select and invoke the tool correctly in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema description coverage is 100% (empty schema). The baseline for 0 params is 4, and the description correctly focuses on the output rather than parameters, which adds appropriate value without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Check if email credentials are configured.' It distinguishes itself from sibling tools like save_email_settings, which is the setter companion, and from unrelated tools like get_status. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'Use this before any email-related operation to verify setup.' This is clear context, but it does not mention explicit alternatives or when not to use the tool, as the 'when-not' is inferred by its role. Still, the usage direction is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logsA
Get debug log entries. Returns entries since a given offset (use 0 for all). Log levels: INFO, OK, FIRE, MANUAL, ERROR, PAUSE, DELETE. Max 500 entries in buffer (oldest drop off).
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Return entries after this offset index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses a key behavioral trait: the 500-entry ring buffer with oldest entries dropping off. It also lists log levels, which helps the agent know what types of entries may appear. However, it does not mention whether the buffer is persistent in memory, whether any side effects occur on read, or authentication requirements—minor gaps given the simplicity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each conveying necessary information: purpose, offset usage, and buffer/log-level details. There is no fluff or repetition, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless (or single optional parameter) log retrieval tool, the description is quite complete. It explains the parameter semantics, the log levels, and the buffer limit. With no output schema, it could have described the structure of returned entries, but the context is sufficient for an agent to understand what this tool does and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a clear description for the 'since' parameter ('Return entries after this offset index') with a default of 0, so schema coverage is 100%. The description adds only a minor clarification ('use 0 for all'), which is redundant given the schema's default. It does not add significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Get debug log entries') and a clear resource (logs). It is immediately distinguishable from all sibling tools, which focus on workers, chains, groups, and settings. The additional details about offset and log levels reinforce the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving debug logs and explains the offset behavior, but it does not explicitly state when to use this tool versus alternatives or mention any exclusions. It is clear enough from context, but no explicit guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusA
Check Conductor's scheduler and database status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It states that it checks status, implying a read-only operation, but does not describe what 'status' means, what the return format is, whether network calls are made, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the action and resource. No filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no params, no output schema), but the description could still explain what status information is returned (e.g., running state, database connectivity). As is, it is minimal but adequate for a straightforward health-check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly adds nothing about parameters, and the empty schema fully covers the parameter space.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Check' and clearly identifies the resource as 'Conductor's scheduler and database status.' It is distinct from sibling tools like get_logs or list_workers, which deal with different concerns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs to know scheduler or database status, but it provides no explicit guidance on when to choose this tool over alternatives, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_worker_historyA
Get the last 10 run history entries for a worker. Returns triggered_at, trigger_type, success, duration_ms, error_msg.
| Name | Required | Description | Default |
|---|---|---|---|
| worker_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses the result limit (last 10) and the exact fields returned, which is valuable for a read operation. It doesn't mention error behavior or prerequisites, but for a simple get tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the action and object, making it immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the lack of an output schema, the description covers the essential return fields and the limit, making it complete for this simple tool. No other context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, worker_id, is a simple integer and its meaning is self-evident. The description's phrase 'for a worker' reinforces the parameter's purpose. No additional description is needed for this trivial parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('last 10 run history entries for a worker'). It distinguishes this tool from siblings like get_chain_history by explicitly targeting worker history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: this tool is for retrieving a worker's run history. It does not explicitly mention when not to use it or name alternatives, but the sibling tools list makes its scope obvious. The 'last 10' limitation further clarifies usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chainsA
List all task chains. Returns id, name, schedule, steps with stage numbers, stop_on_failure, paused state, next trigger, last run status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although no annotations are provided, the description signals a read-only operation via 'List' and enumerates the return fields, giving a transparent view of expected output without hidden side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action, then a compact enumeration of output fields. Zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's purpose and return value structure in the absence of an output schema. It explains what the user will receive, making it complete for a parameterless list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters; the schema is empty with 100% coverage. The description need not add parameter details, so the baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List all task chains' – a specific verb+resource scope. Distinct from sibling list_workers and list_groups, and from chain mutation tools like create_chain or run_chain_now.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the use case: to retrieve all task chains. It does not explicitly mention alternatives, but the context is unambiguous for a listing operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_groupsA
List all worker groups. Groups are collapsible collections of workers and chains in the dashboard.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It correctly implies a read-only listing operation and adds conceptual context ('collapsible collections of workers and chains'), but it doesn't elaborate on return format, pagination, or any edge cases. For a simple list, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two crisp sentences: the first states the action, the second clarifies the domain concept. No filler, front-loaded, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a zero-parameter read-only list and there is no output schema, the description fully covers what the agent needs to know: what it does and what a 'group' is. 'List all' clearly implies the return value. Nothing significant is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and the schema is empty, so the description has no parameter burden. The baseline for 0 params is 4, and the description doesn't need to compensate for any missing schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all worker groups' with a specific verb and resource. It distinguishes from sibling tools like list_workers and list_chains by clarifying what a group is. This is a textbook example of clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context for when to use this tool is clear: to retrieve all worker groups. It doesn't explicitly mention alternatives or exclusions, but the sibling tool names provide natural differentiation (e.g., list_workers for workers, create_group/delete_group for management). No ambiguity for a zero-parameter read-only operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workersA
List all workers and chains in Conductor. Returns id, name, task_path, schedule, paused state, next trigger time, remaining runs today, last run status, and group assignment for each.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does disclose the output fields and the 'all' scope, but does not mention pagination, ordering, or any operational constraints. This is useful but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that covers the purpose and output fields without waste. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 0-parameter list tool with no output schema, the description is complete: it names the resources (workers and chains) and lists all return fields. It could mention pagination or limits, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (trivially). Per the rubric, a 0-parameter tool gets a baseline of 4. The description adds no parameter details because none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all workers and chains, and enumerates the exact fields returned. This is a specific verb+resource+scope, and the explicit list of output attributes distinguishes it from generic list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like list_chains or get_worker_history. Since a sibling list_chains exists, the lack of differentiation is a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_all_workersA
Pause all workers at once.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It only states the action ('pause all workers') but fails to mention side effects, reversibility, impact on running tasks, or whether confirmation is needed. This is a significant gap for a bulk mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It efficiently conveys the core action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and no output schema, the description is minimally viable. However, because this is a bulk operation with potentially disruptive effects, additional context about return values or confirmation behavior would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the baseline for such cases is 4. The description doesn't need to explain parameter semantics, and there is no schema coverage issue to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Pause' with a clear resource scope 'all workers', instantly distinguishing it from the sibling tool 'pause_worker' which targets individual workers. The phrase 'at once' clarifies the bulk nature of the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'pause_worker'. The description does not mention trade-offs, prerequisites, or scenarios where pausing all workers is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_workerA
Toggle pause/resume for a worker by ID. If paused, resumes it. If running, pauses it.
| Name | Required | Description | Default |
|---|---|---|---|
| worker_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the core toggle behavior (resumes if paused, pauses if running), which is useful. However, it does not mention prerequisites, side effects, error handling, or definitions of 'running' vs 'paused', leaving gaps in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, direct, and front-loaded with the action. Every sentence adds necessary detail, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple toggle action, the description covers the central behavior. However, given the absence of an output schema and annotations, it would benefit from mentioning return values, error scenarios, or state definitions. The simplicity reduces the impact of these omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines worker_id as an integer with no description, and the description only adds 'by ID', which minimally clarifies that it identifies the worker. With 0% schema coverage, this is insufficient to fully understand the parameter's origin or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Toggle pause/resume') and the specific resource ('a worker by ID'). It also explains the toggle semantics, distinguishing it from simple pause/resume and from sibling tools like pause_all_workers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to flip the pause state of a specific worker, but does not explicitly mention alternatives or when to use this versus other worker management tools. Usage guidance is only implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_chain_nowA
Fire a chain immediately outside its schedule. Logged as MANUAL trigger.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It reveals the manual trigger logging and scheduling override, which is useful, but it does not disclose potential side effects, required permissions, or return behavior. More detail would be needed for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded, with no extraneous words. Every word adds value: 'immediately', 'outside its schedule', and 'logged as MANUAL trigger' are all meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter trigger, the description covers the core behavior, but given the absence of annotations and output schema, it omits return values, error conditions, and any preconditions. It is minimally viable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter (chain_id) and 0% description coverage. The description does not explain the parameter's purpose or format; it only references 'a chain'. While the parameter name is fairly self-explanatory, the low coverage demands compensation that is absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fire a chain'), the resource ('chain'), and the specific context ('outside its schedule'), effectively distinguishing it from sibling tools like run_worker_now. The verb 'fire' is specific enough in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: immediate execution outside the normal schedule, and mentions it is logged as MANUAL. However, it does not explicitly state alternatives or exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_worker_nowA
Fire a worker immediately outside its schedule. Logged as MANUAL trigger type.
| Name | Required | Description | Default |
|---|---|---|---|
| worker_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It only adds 'Logged as MANUAL trigger type,' which gives a minor behavioral detail but fails to disclose potential side effects such as whether the scheduled run will still occur, concurrency handling, permission requirements, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with the action verb first, no redundant wording, and no filler. Every word contributes to the core purpose and a single behavioral note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description is too sparse. It doesn't indicate whether the firing is synchronous or asynchronous, what the function returns (e.g., a run ID, status), or error conditions. For a triggering action, this leaves critical operational context missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not add any meaning beyond the parameter name 'worker_id'—no explanation of how to identify the worker, no source for the ID, no format examples. The sole parameter is obvious from context, but the description doesn't enhance the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('fire') and a clear resource ('worker') with an explicit scope ('immediately outside its schedule'). It distinguishes itself from sibling tools like pause_worker, delete_worker, and run_chain_now by focusing on immediate manual execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'outside its schedule' clearly indicates the intended use case: triggering a worker manually outside its normal schedule. There is no competing sibling tool for running a worker, so no explicit alternatives are needed, but the context is well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_email_settingsA
Save Gmail credentials for email notifications and templates. Requires a Gmail address and a Gmail App Password (not the regular password). The user must have 2-Step Verification enabled on their Google account first, then generate an App Password at myaccount.google.com/apppasswords.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Gmail address (e.g. user@gmail.com) | ||
| password | Yes | Gmail App Password (16-character code from myaccount.google.com/apppasswords) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It usefully explains the credential type (App Password, not regular) and the 2-Step Verification prerequisite. However, it does not mention potential side effects such as overwriting existing settings, which would be expected for a save/mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with the purpose front-loaded. The second sentence adds essential prerequisite and setup information, including a direct link, without any redundant or wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter settings tool, the description covers the operation and prerequisites well. It lacks explicit mention of whether saving overwrites existing credentials, but this is a minor omission given the tool's seemingly straightforward save behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (email and password) with 100% coverage. The description adds context about the App Password generation link and the 2-Step Verification requirement, but this supplemental information does not significantly change how to use the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Save') and the resource ('Gmail credentials for email notifications and templates'), which is specific and distinguishes it from the sibling tool get_email_settings. It conveys exactly what the tool does without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when saving Gmail credentials for notifications/templates, and it explains the necessary prerequisites (2-Step Verification, App Password). It does not explicitly contrast with alternatives or state when not to use it, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workerB
Update an existing worker by ID. All fields optional except name and task_path which are required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| env_vars | No | ||
| group_id | No | ||
| notify_on | No | ||
| task_path | Yes | ||
| worker_id | Yes | ||
| output_dir | No | ||
| sched_type | No | ||
| new_console | No | ||
| sched_value | No | ||
| notify_email | No | Email address for run notifications | |
| requirements | No | ||
| timeout_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only mentions parameter optionality, but doesn't state side effects, permissions, whether it's a partial update or full replacement, or what the response contains. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that is front-loaded with the main action. It avoids unnecessary words and is appropriately sized for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters, no output schema, and no annotations, this description is severely under-specified. It provides no information about return values, side effects, or field-specific semantics, making it inadequate for an agent to confidently invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 8%, so the description must compensate. It clarifies that all fields are optional except name and task_path, but it doesn't explain any of the other 12 parameters or their purposes. The statement about required fields is helpful but insufficient for an agent to correctly set parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('existing worker by ID'). It distinguishes itself from sibling tools like create_worker or delete_worker by focusing on modification of existing entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'existing worker' implies this tool is for modifying already-created workers, not for creation or deletion. However, it doesn't explicitly mention alternatives or when not to use it, so guidance is only implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
24 tool updates
v1.0.0- First observed
check_for_update - First observed
create_chain - First observed
create_group - First observed
create_worker - First observed
create_worker_from_template - First observed
delete_all_workers - First observed
delete_chain - First observed
delete_group - First observed
delete_worker - First observed
export_all - First observed
get_chain_history - First observed
get_email_settings - First observed
get_logs - First observed
get_status - First observed
get_worker_history - First observed
list_chains - First observed
list_groups - First observed
list_workers - First observed
pause_all_workers - First observed
pause_worker - First observed
run_chain_now - First observed
run_worker_now - First observed
save_email_settings - First observed
update_worker
TDQS
Each tool has a clearly distinct purpose, with worker, chain, group, and system operations cleanly separated. Parallel tools for workers vs chains are explicitly named (e.g., run_worker_now vs run_chain_now), preventing misselection.
Most tools follow a consistent verb_noun pattern in snake_case, with verbs like list, create, delete, get, run. Minor deviations: 'delete_all_workers' actually deletes chains too (misleading name), and 'run_worker_now' includes a 'now' suffix not present in 'run_chain_now' (though that is also used). Overall predictable.
At 24 tools, this sits in the borderline range (16-25) and feels somewhat heavy. The domain is complex (workers, chains, groups, settings, admin), so each tool has a purpose, but the count could be streamlined by combining some operations (e.g., pause_all_workers and delete_all_workers).
Worker lifecycle is fully covered with list, create, update, delete, pause, run, history, and bulk operations. However, chains lack an update operation and an individual pause/resume toggle, which is a notable gap. Groups also lack update, but that is less critical. Agents can create and run chains but cannot modify them without deleting and recreating.
Maintenance
Related MCP Connectors
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Build agents to automate any background task. Works with your ChatGPT/Claude subscription.
Your AI Agent's Infrastructure Layer. Connect Claude, Copilot, Codex, or ChatGPT to 200+ managed open source services. Start databases, pipelines, and applications through natural language.
Claude makes real phone calls for you — in many languages, with transcript and outcome back in chat.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceBridges Claude Code to a Cloud Orchestrator API, providing access to multi-AI consensus, web search, code execution sandboxes, long-term memory, knowledge graphs, deployment management, and 20+ integrated AI and developer tools.28-
- FlicenseNot gradedqualityCmaintenanceConnects Claude AI to any development project (Django, Next.js, Laravel, etc.) with 15+ universal tools for shell, file, git, logs, Docker, tests, and more.1-
- AlicenseNot gradedqualityCmaintenanceGive Claude direct access to your AWS account, SSH into your servers, run shell commands on your laptop, query your databases, and manage PM2 processes — all from a Claude chat. No Claude Code subscription needed. Your keys never leave your machine.2MIT
- AlicenseNot gradedqualityDmaintenanceProvides unified control over personal automation ecosystem, enabling Claude to act as an operator orchestrating downloads, Notion sync, tax document OCR, financial data, and system health monitoring.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jarmstrong158/Conductor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server