Skip to main content
Glama

LightWorker is a lightweight, local-first multi-agent task runner with no third-party Python runtime dependencies. It provides dual worker harness execution for both OpenAI Codex and ZCode / GLM CLI, persists the task DAG in SQLite, and uses an isolated Git worktree for write tasks.

Current release: v0.7.1 hardens the native Dual Worker Harness architecture with reliable ZCode routing, whole-document result parsing, gateway-independent execution, provider status reporting, and cache-cohort isolation. It retains the v0.7.0 support for both CodexWorker (codex exec) and ZCodeWorker (node zcode.cjs) plus the Codex-native subagent bridge introduced in v0.6.0. By default, LightWorker listens only on the local loopback address and does not automatically commit, merge, push, or publish; write tasks require approval and run in an isolated Git worktree. See CODEX_NATIVE_BRIDGE.md and README_CN.md.

Core Capabilities

Capability

What it does

Dual Worker Harness

Native execution for both OpenAI Codex (CodexWorker) and ZCode / GLM CLI (ZCodeWorker) with dynamic routing

ZCode Auto-Detection

Zero-config discovery for standard ZCode installation paths: %ProgramFiles% / %LOCALAPPDATA% on Windows, /Applications/ZCode.app or ~/Applications/ZCode.app on macOS

Persistent task DAG

SQLite WAL stores tasks, dependencies, events, PIDs, results, and worktree information

Codex-native bridge

Durable native dispatch tickets, lease protection, native thread IDs, and host callbacks for spawn_agent / wait results

Automatic decomposition and parallelism

Lead Codex generates a directed acyclic task graph; independent read-only Workers can run in parallel

Reasoning-aware routing

Mechanical tasks go to DeepSeek V4 Flash by default; complex tasks use gpt-5.6-sol

Approval and isolation

auto_readonly runs read-only tasks automatically; write tasks wait for approval and enter an isolated Git worktree

Three control surfaces

CLI, Codex MCP, and the local Web Console share the same scheduler and state store

Measurable cache optimization

Prompt Protocol v5, strict Cache Cohort v2 isolation, explicit Context Packs, cache-affinity scheduling, and verified warm-cache metrics

Dual-gateway profiles

Named Planner, fast, deep, and review profiles can route through OpenCodex or CLIProxyAPI with explicit fallback and route audits

Capability-aware routing

Tasks declare required capabilities (e.g. web_search); gateways that lack them are excluded up front and fail closed instead of silently degrading

Scope-bound approvals

Each approval binds approval_id plus a SHA-256 scope digest; a task spec that changes after approval is refused

History management

The Web Console can purge terminated tasks with their events and usage records in one click

Local-first security

danger-full-access is prohibited; user MCP servers are isolated by default; no automatic commit, merge, push, or publish

Related MCP server: AgentBraid

Secure Defaults

Boundary

Default behavior

Web Console

Only the literal loopback addresses 127.0.0.1 / ::1 are allowed

Read-only tasks

Can run automatically under auto_readonly

Write tasks

Manual approval, using an isolated Git worktree

User Codex configuration

Ignored by Workers by default, avoiding inheritance of MCP servers with external write access

Git and external systems

Never automatically commits, merges, pushes, publishes, or grants danger-full-access

See SECURITY.md for the full threat model and how to report vulnerabilities.

Requirements

  • Python 3.11+

  • Git

  • Codex CLI or ZCode CLI (Auto-detected on Windows)

  • A working Codex / ZCode login or a configured model gateway

  • CLIProxyAPI/OpenCodex Proxy on the current machine (when using non-OpenAI models)

The local development verification environment is Python 3.13, Git 2.51, Codex CLI, ZCode CLI, and SQLite 3.51.

Installation

Install the CI-verified universal wheel directly from the v0.7.1 GitHub release:

python -m pip install https://github.com/ncepuee/LightWorker/releases/download/v0.7.1/lightworker-0.7.1-py3-none-any.whl
lightworker init
lightworker doctor

SHA-256 checksums for release assets are listed in SHA256SUMS-v0.7.1.txt. When developing or auditing the source, you can install from a pinned tag:

git clone --branch v0.7.1 --depth 1 https://github.com/ncepuee/LightWorker.git
cd LightWorker
python -m pip install -e .

Quick Start

You can run it directly after installation:

$env:LIGHTWORKER_HOME = "$env:LOCALAPPDATA\LightWorker"
lightworker init
lightworker doctor

macOS / Linux:

export LIGHTWORKER_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/lightworker"
lightworker init
lightworker doctor

For a local CLIProxyAPI/OpenCodex setup, we recommend initializing LightWorker with an isolated Codex configuration:

lightworker init --force --isolated-codex `
  --codex-base-url "http://127.0.0.1:10100/v1" `
  --model-catalog "$env:USERPROFILE\.codex\opencodex-catalog.json"

Submit a read-only DeepSeek V4 Flash investigation:

lightworker submit `
  --workspace "/path/to/project" `
  --kind explore `
  --model "deepseek/deepseek-v4-flash" `
  --run `
  "Analyze the project structure and list the three modules that most need tests."

Let Lead Codex decompose the task automatically:

lightworker orchestrate `
  --workspace "/path/to/project" `
  --mode auto_readonly `
  --run `
  "Find the cause of intermittent HTTP 500 errors in the login endpoint and provide an evidence-backed remediation plan."

Example default routing in v0.7.1:

Task type

Default model

Planner / design / review / debugging / complex coding

gpt-5.6-sol

Mechanical execution, formatting, and simple retrieval at low reasoning effort

deepseek/deepseek-v4-flash

Executor

gpt-5.6-sol

When a single task does not specify a model explicitly, routing is automatic based on reasoning effort: low uses deepseek/deepseek-v4-flash; medium/high/xhigh use gpt-5.6-sol. In other words, mechanical execution, formatting, and simple retrieval go to Flash, while design, planning, review, debugging, and complex coding go to OpenAI agents.

Model names and the allowlist can be configured in %LOCALAPPDATA%\LightWorker\config.toml.

Web Console

Run this in the project directory:

lightworker web

This starts the local dashboard at http://127.0.0.1:8765/.

Available Tools

14 tools
approve_taskA

Release one task that is awaiting approval into the execution queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate it is a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds the precondition and state transition, but does not disclose reversibility, side effects, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that states the core function without redundancy. It is front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description covers the essence. However, it omits behavior when the task is not awaiting approval and any return values, leaving minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and no parameter info in the description, the agent receives no guidance on task_id format or where to obtain it. The description fails to compensate for this gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'release' and clearly identifies the resource (a task awaiting approval) and the target state (execution queue). This distinguishes it from sibling tools like cancel_task or delegate_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly implies usage for tasks in the 'awaiting approval' state, which is the appropriate context. However, it does not explicitly mention when not to use it or suggest alternatives for other states.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_taskA
Destructive

Cancel a queued or active task and terminate its worker process tree.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, the description adds specific behavioral detail: it terminates the worker process tree. This informs the agent of the full scope of destruction, which is valuable context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 12 words, with no fluff. It front-loads the core action and appends the important detail about the worker process tree.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter cancel tool, the description covers the action, applicable states, and the destructive effect. It does not mention return values or error behavior, but given the lack of output schema and annotations, this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention the task_id parameter or any semantics beyond its name. With 0% schema description coverage, the description fails to compensate by explaining where the ID comes from or any format requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Cancel') and resource ('task') with additional scope ('queued or active') and effect ('terminate its worker process tree'). It clearly distinguishes from sibling tools like get_task, list_tasks, and approve_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'queued or active task' provides clear context on when to use the tool, implying it is not for completed tasks. However, it does not explicitly name alternatives or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delegate_batchB

Queue up to the configured limit of already-decomposed worker tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this is not read-only and not destructive, and the description adds that it 'queues' tasks, which implies a non-destructive write. However, it leaves key behaviors undisclosed, such as what happens when the configured limit is exceeded, whether the operation is atomic, and how errors are surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant content. It efficiently communicates the core action and a key constraint ('up to the configured limit').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a batch mutation tool with no output schema and minimal annotations, the description is too sparse. It omits return behavior, error handling, limit semantics, and any relationship to the decomposition process, leaving the agent to guess important operational details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides no descriptions for the 'tasks' parameter, and the description does not compensate by explaining the structure or expected contents of each task object. Saying 'already-decomposed worker tasks' offers vague context but not enough to understand what fields or format the tasks require.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queues worker tasks, using a specific verb ('Queue') and resource ('decomposed worker tasks'). It hints at a batch context via the name and differentiates from the sibling delegate_task by implying a multi-task operation, though it does not explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives like delegate_task. The phrase 'already-decomposed worker tasks' implies a prerequisite, but there are no exclusions, alternatives, or contextual cues to help the agent choose appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delegate_taskA

Queue one bounded worker task. Explore/review are read-only; execute uses an isolated git worktree and may require approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
modeNo
nameNo
modelNo
budgetNo
gatewayNo
profileNo
root_idNo
objectiveYes
parent_idNo
workspaceYes
context_packNo
dependenciesNo
allowed_pathsNo
timeout_secondsNo
reasoning_effortNo
success_criteriaNo
prohibited_actionsNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond the annotations: it reveals that explore/review are read-only while execute uses an isolated git worktree and may require approval. This goes beyond the annotation flags (readOnlyHint: false, destructiveHint: false) by explaining the mode-dependent safety profile. However, it does not disclose other behaviors like queueing semantics or what 'bounded' entails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, highly concise and front-loaded with the core purpose. Every clause adds value: it defines the tool (queue bounded task), clarifies the read-only modes, and flags the approval requirement for execute. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (18 parameters, no output schema), the description is significantly incomplete. It offers no explanation of return values, queue behavior, what 'bounded' means, how approval works, or how the many parameters interact. The description captures the essential distinction between modes but leaves substantial gaps for an agent to safely invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no information about any of the 18 parameters. Schema description coverage is 0%, and the description does not even mention the required parameters (objective, workspace) or the enums (kind, mode, reasoning_effort). With a complex parameter set and no guidance, the description fails to aid in parameter selection or construction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Queue one bounded worker task.' It specifies the action (queue), the object (worker task), and the scope (one, bounded). It also distinguishes between the read-only modes (explore/review) and execute, which helps differentiate it from sibling tools like delegate_batch (batch) and get_task (retrieval).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a single bounded worker task and notes that execute may require approval, but it does not explicitly state when to use this tool versus alternatives like delegate_batch or orchestrate. There are no exclusions or explicit 'when not to use' instructions, leaving the guideline somewhat implied rather than clearly articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

doctorA
Read-only

Check local Codex, proxy ports, state paths, model allowlist, and concurrency.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds valuable context by listing the specific areas checked (ports, paths, allowlist, concurrency), which goes beyond the annotations and clarifies the tool's scope without contradicting its read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that lists key checks without filler. Every element adds informational value, making it appropriately concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description clearly states what is checked, it does not describe the output format or return value. Since there is no output schema, this omission leaves the agent uncertain about what to expect from the invocation, which is a notable gap for a diagnostic tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema fully documents this with no properties. Since there are no parameters to describe, the description cannot add parameter-specific semantics, so the baseline score of 4 for zero-parameter tools applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Check' and enumerates concrete resources (local Codex, proxy ports, state paths, model allowlist, concurrency), making its purpose unambiguous. It clearly distinguishes from sibling task-management tools like list_tasks or wait_tasks, which focus on orchestration rather than health inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a diagnostic use case but does not explicitly state when to use this tool versus alternatives. No sibling tools are mentioned, and there is no guidance on when not to use it, leaving the usage context somewhat implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

escalate_taskA

Create one budgeted read-only retry using a deeper worker profile. The original task remains unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNo
task_idYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond the annotations: the retry is read-only, budgeted, and the original task remains unchanged. This provides valuable context about side effects and scope, going beyond the readOnlyHint=false and destructiveHint=false annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action, no unnecessary words. Every word earns its place, and the key details (budgeted, read-only, deeper profile, original unchanged) are efficiently packed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 2 parameters and annotations present, the description covers the core behavior: it creates a retry, uses a deeper profile, is budgeted, read-only, and leaves the original task untouched. It lacks details on return values or explicit usage guidance, but the tool's simplicity and schema annotations make it reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains that 'profile' refers to a 'deeper worker profile', giving it some meaning. 'task_id' is self-explanatory. However, with 0% schema coverage, the description only partially compensates; it does not elaborate on allowed profile values or what 'budgeted' means.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('one budgeted read-only retry'), with a distinguishing feature ('deeper worker profile'). It differentiates from siblings like retry_fallback and delegate_task by emphasizing the read-only, budgeted nature and that the original task remains unchanged.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case: when you need a retry with a deeper worker profile. However, it does not explicitly state when to use this tool over alternatives like retry_fallback or delegate_task, nor does it mention exclusions or prerequisites. Context is clear but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cache_metricsA
Read-only

Return materialized cold/warm cache telemetry and target status without scanning event JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
gatewayNo
window_secondsNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose read-only and non-destructive behavior. The description adds valuable context about the implementation: data is 'materialized' and the operation avoids scanning event JSON, indicating a fast, constrained read path. This goes beyond annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 redundant information. Every phrase adds context about the tool's purpose and efficiency, 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should clarify the return value structure. It mentions 'cold/warm cache telemetry and target status' but does not detail the specific metrics or formatting. Parameter semantics are also left to the schema, leaving some gaps, though the simple scope and annotations make it adequate for basic selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero description coverage for its 3 parameters, and the tool description does not explain what 'model', 'gateway', or 'window_seconds' mean or how they affect the query. The property names are somewhat self-explanatory in a cache metrics context, but the description adds no semantic value and fails to compensate for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Return' and identifies the resource as 'materialized cold/warm cache telemetry and target status'. It distinguishes the tool from others by explicitly stating 'without scanning event JSON', which differentiates it clearly from sibling tools like get_events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for efficiently retrieving pre-aggregated telemetry rather than scanning raw events, which gives a clear context for when to use it. However, it does not explicitly name alternatives or state when not to use it, so it lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_eventsA
Read-only

Read append-only task events after an event cursor.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
task_idYes
after_idNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context by stating events are 'append-only' and reads occur 'after an event cursor,' which clarifies pagination semantics and immutability beyond the annotations. However, it does not detail response 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that communicates the core behavior with no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only event-pagination tool with good annotations, the description captures the essential semantics: append-only events, cursor-based reading, and task association. It does not describe the return shape, but the description is functional for an agent to select and invoke the tool correctly, given the schema fills in parameter details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain the parameters. It relates 'after an event cursor' to the after_id parameter and 'task events' to task_id, but it omits any mention of the limit parameter, leaving its semantics unexplained. The description only partially compensates for the schema's lack of parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Read' with a clear resource 'task events' and scoping phrase 'after an event cursor,' which differentiates it from sibling tools like list_tasks or get_task. The append-only note further clarifies the tool's specific niche.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for consuming events incrementally after a cursor, but it does not explicitly state when to prefer this over alternatives or provide exclusions. Sibling tools like list_tasks are not mentioned, so the guidance is inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_taskB
Read-only

Get one task, its dependencies, and structured result when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to restate these. The phrase 'when available' adds a minor behavioral nuance (structured result may be absent), but it does not disclose other traits like error handling, permissions, or what happens when the task is not found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the core purpose without waste. It is concise and structured clearly, earning a perfect score for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must explain the return format, but it only vaguely mentions 'structured result when available' without specifying fields or structure. It also omits error behavior and additional context about dependencies, making it incomplete for a tool that provides complex nested data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the description does not compensate by explaining the 'task_id' parameter beyond its name. It does not state that the parameter identifies the task to retrieve nor its expected format, leaving the agent without additional semantic information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get one task') and resources ('dependencies', 'structured result'), distinguishing it from siblings like list_tasks and get_task_tree. It precisely defines the tool's scope as fetching a single task with associated data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or compare with sibling tools such as get_task_tree or list_tasks, leaving the agent to infer appropriate usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_task_treeB
Read-only

List every task belonging to an orchestration root.

ParametersJSON Schema
NameRequiredDescriptionDefault
root_idYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that it lists tasks tied to a root, but it doesn't clarify return structure, pagination, or recursion depth. Consistent with annotations, but adds limited behavioral context beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tight sentence that is front-loaded with the verb 'List'. Every word earns its place with no fluff or redundancy, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having only one parameter and no output schema, the description leaves out critical details: it says 'List' but the name says 'tree', raising ambiguity about whether it returns a flat list or a hierarchy. It doesn't disclose recursive behavior or response format, which is significant for a task tree tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate for root_id semantics. It only mentions 'orchestration root' indirectly, providing no detail on what constitutes a root, how to obtain its ID, or expected value format. The connection is implied but not explicit enough to guide correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists every task belonging to an orchestration root, which is a specific verb+resource+scope combination. It distinguishes from siblings like list_tasks (which might list tasks generally) and get_task (single task), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no context about when to use this tool versus alternatives like list_tasks or wait_tasks. There is no mention of exclusions, prerequisites, or specific scenarios where this tool shines, leaving the AI to infer from naming alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksA
Read-only

List recent tasks, optionally filtered by status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds the scoping constraint of 'recent' tasks and optional status filtering, which provides useful context about the data returned, similar to date-range scoping in the TDQS example.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no filler. It front-loads the verb and resource and conveys both the default behavior and optional filtering clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter list tool with read-only annotations, the description is adequately complete. It covers the core functionality and the optional filter, and the lack of an output schema does not hurt because 'list' implies an array return. However, it does not specify ordering details or default limit, which might require the agent to rely on schema defaults.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It explicitly mentions the 'status' parameter as an optional filter, giving semantic meaning. However, the 'limit' parameter is not discussed in the description, though its schema constraints (min/max) provide some self-explanatory information, leaving partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists recent tasks with an optional status filter, using a specific verb and resource. It distinguishes itself from sibling tools like get_task (single task) and get_task_tree (hierarchical view) by focusing on a flat list of recent tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a list of tasks but does not explicitly state when to prefer this tool over alternatives like get_task or get_task_tree. There are no exclusions or alternative references, leaving the agent to infer based on the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

orchestrateC

Queue a bounded Lead Codex planning run. It creates a dependency-aware task graph and automatically dispatches allowed child tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoauto_readonly
modelNo
budgetNo
gatewayNo
profileNo
max_tasksNo
objectiveYes
workspaceYes
context_packNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds minimal behavioral detail beyond annotations: it says it creates a task graph and dispatches tasks, but doesn't disclose side effects, asynchronicity, approval requirements, or how 'bounded' works. Since annotations only offer generic safety flags, the description should carry more. It doesn't contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The two-sentence description is short and free of fluff, and the second sentence adds useful detail about task graph creation and dispatching. However, the conciseness comes at the cost of missing essential information, though structure itself is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 9 parameters, nested objects, and no output schema, the description fails to explain mode behavior, monitoring via sibling tools, or what happens after queuing. It is incomplete for an agent to safely invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not explain any of the 9 parameters, including the critical 'mode' enum (plan_only, auto_readonly, auto_execute) and budget structure. This is a significant gap 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a planning/orchestration tool that queues a bounded run, creates a task graph, and dispatches child tasks. Specific verbs (Queue, creates, dispatches) and resource (Lead Codex planning run) are present. However, it does not explicitly differentiate from sibling tools like delegate_task or delegate_batch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use orchestrate versus alternatives. The description implies a high-level planning scenario but never mentions exclusions or alternative tools. The sibling list includes delegate_task and delegate_batch, but the description doesn't position orchestrate against them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retry_fallbackA

Clone a failed read-only task onto its configured fallback gateway. Never falls back automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not read-only and not destructive. The description adds valuable behavioral context by clarifying that the task must be failed and read-only, and that fallback is not automatic—this is beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no wasted words. The first sentence states the core action, and the second provides an important behavioral caveat. Every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description covers the essential action and prerequisites, but it omits any indication of the return value or post-condition. The agent knows what it does and when to use it, but not what to expect after invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description compensates somewhat by specifying that the task must be 'failed' and 'read-only', which gives semantic meaning to the task_id parameter. However, it does not explicitly map task_id to this description, so the connection is implied rather than direct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action with a specific verb ('Clone') and resource ('a failed read-only task onto its configured fallback gateway'). This distinguishes it from sibling tools like delegate_task or escalate_task by focusing on the fallback clone mechanism.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Never falls back automatically' provides context that this is a manual fallback action, which helps the agent know when to invoke it. However, it does not explicitly name alternatives or exclusion criteria, so it's clear context without exhaustive guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_tasksA
Read-only

Wait up to 55 seconds for tasks to reach a terminal or approval state.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idsYes
timeout_secondsNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds useful behavioral context: a 55-second timeout and the terminal/approval state criterion. It does not, however, explain what happens on timeout (e.g., whether it returns partial statuses or throws an error), which would be a small additional gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence with no redundancy. It front-loads the key verb and resource, then specifies the constraint and target state efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The core behavior is clearly stated, and annotations cover the read-only nature. Yet, with no output schema and no mention of return values or timeout error semantics, the agent may not know what to expect after the call. For a simple wait tool, this is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no parameter descriptions (0% coverage). The description indirectly clarifies task_ids as the tasks to wait for and timeout_seconds as the maximum wait (matching the schema's 55 maximum). However, it does not explain the default timeout behavior when timeout_seconds is omitted, leaving a semantic gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Wait') with a clear resource ('tasks') and an explicit target state ('terminal or approval state'). This distinguishes it from siblings like get_task or list_tasks, which fetch current status rather than block until a condition is met.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied: one would call this after delegating tasks when they need to block until tasks complete or require approval. However, it does not explicitly contrast with alternatives such as get_task or list_tasks, nor does it state when not to use it.

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.

  1. 5 tool updatesv0.2.0
    • Changeddelegate_task5 fields changed
      • addedInput schema / properties / budget
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "max_attempts": {
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "max_concurrency": {
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "max_escalations": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "max_retries": {
        +      "minimum": 0,
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / context_pack
        Added value: +{
        +  "oneOf": [
        +    {
        +      "maxLength": 32768,
        +      "type": "string"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "content": {
        +          "maxLength": 32768,
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        },
        +        "version": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "name",
        +        "version",
        +        "content"
        +      ],
        +      "type": "object"
        +    }
        +  ]
        +}
      • addedInput schema / properties / gateway
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / profile
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / properties / reasoning_effort / enum
        Previous value: -[
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh"
        -]New value: +[
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max"
        +]
    • Addedescalate_task
    • Addedget_cache_metrics
    • Changedorchestrate4 fields changed
      • addedInput schema / properties / budget
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "max_attempts": {
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "max_concurrency": {
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "max_escalations": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "max_retries": {
        +      "minimum": 0,
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / context_pack
        Added value: +{
        +  "oneOf": [
        +    {
        +      "maxLength": 32768,
        +      "type": "string"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "content": {
        +          "maxLength": 32768,
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        },
        +        "version": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "name",
        +        "version",
        +        "content"
        +      ],
        +      "type": "object"
        +    }
        +  ]
        +}
      • addedInput schema / properties / gateway
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / profile
        Added value: +{
        +  "type": "string"
        +}
    • Addedretry_fallback
  2. 11 tool updatesv0.1.1
    • First observedapprove_task
    • First observedcancel_task
    • First observeddelegate_batch
    • First observeddelegate_task
    • First observeddoctor
    • First observedget_events
    • First observedget_task
    • First observedget_task_tree
    • First observedlist_tasks
    • First observedorchestrate
    • First observedwait_tasks

TDQS

A3.7/5.0
Disambiguation4/5

Most tools are clearly distinct (queue, inspect, wait, approve, cancel, retry), but retry_fallback and escalate_task both handle failed read-only tasks with overlapping semantics, potentially causing misselection.

Naming Consistency4/5

Predominantly follows a lowercase verb_noun pattern (delegate_task, get_task, list_tasks), with a few deviations like 'orchestrate' and 'doctor' that are still readable but break the pattern.

Tool Count5/5

14 tools cover a complex orchestration lifecycle (planning, delegation, monitoring, control, retry) without redundancy; each tool serves a distinct operational need.

Completeness5/5

Covers the full task lifecycle: creation, retrieval, monitoring, approval, cancellation, retry strategies, plus diagnostics and telemetry. No obvious dead ends or missing core operations.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to delegate scoped tasks across multiple providers like Codex, Claude Code, and Antigravity through a single local MCP server, with quota monitoring, notifications, and remote control via messaging apps.
    13
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    A local-first MCP orchestration server that uses Codex as lead planner and Antigravity as host to delegate and review bounded tasks with Git integration and persistent SQLite state.
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    A local MCP control plane for Codex that manages task queues, dynamic roles, and side-panel team collaboration with persistence, dependency gating, and structured reporting.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A local-first MCP server for AI coding agents that shares structured execution state, routes context deltas, and provides preflight nudges to prevent conflicts and stale decisions.
    MIT

Latest Blog Posts

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/ncepuee/LightWorker'

If you have feedback or need assistance with the MCP directory API, please join our Discord server