omp-worker-mcp
This server lets an MCP host delegate coding/research tasks to local OMP CLI sub-agents running in the background, with DAG orchestration, ownership safety, structured results, and supervision.
Run single background tasks:
omp_run_compactsubmits a goal with workspace, acceptance criteria, attempts/timeouts, waits for completion, and returns a compact summary, artifacts, and verification results.Orchestrate multi-task DAG batches:
omp_run_batch_compactsubmits up to 50 interdependent tasks with dependency graphs, concurrency limits, ownership boundaries, and aggregated compact results.Wait on tasks/groups:
omp_waitandomp_wait_grouppoll for terminal status without tight-looping.Cancel tasks/groups:
omp_cancelandomp_cancel_groupsafely stop running OMP processes when the user requests interruption.Delegate low-level and inspect full results:
omp_delegateimmediately returns a job_id, whileomp_resultretrieves full terminal details, attempt logs, and final response when deeper inspection is needed.Send supervisory feedback:
omp_continueresumes the same OMP session with targeted corrections until acceptance is met.Enforce safety: write-path ownership is validated to prevent overlapping writes in batches, read-only tasks are supported, and structured verification/remaining-item results are returned for supervised acceptance.
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., "@omp-worker-mcpDelegate a DAG workflow to extract and summarize all API endpoints in the codebase"
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.
omp-worker-mcp
Durable Model Context Protocol (MCP) server for delegating background coding tasks and DAG workflows to local Oh My Pi (OMP) CLI sub-agents.
Quick Start • Entrypoints • Safety Contract • Platform Support • Docs Hub
Value & Operating Model
omp-worker-mcp implements an outcome-led Supervisor-Worker pattern that decouples high-level planning from concrete implementation:
Main Agent Remains in Control: The primary host harness (e.g., Codex, Claude Code) retains full authority over architecture, task decomposition, trade-off decisions, and final acceptance review.
Durable Local Background Execution: Concrete, long-running coding, refactoring, and exploratory tasks are offloaded to local OMP worker processes running in the background without blocking conversational turns.
Topological DAG Orchestration: Independent work units can be orchestrated as a directed acyclic graph (DAG) with automated dependency resolution, concurrency limits, and failure containment.
Explicit Path Ownership Boundaries: Write tasks must declare explicit write-path ownership. The server validates and rejects overlapping concurrent write scopes in batch DAGs, supplying declared boundaries as worker constraints to prevent write collisions.
Structured Results & Supervised Resumption: Workers report deliverables via the structured
OMP_WORKER_RESULTenvelope (status, summary, artifacts, verification checks, remaining items). Supervisors can inspect logs in real time and inject corrective guidance viaomp_continueto retry within the same session.
Related MCP server: deleg8
Installation & Quick Start
1. Install OMP
Install Oh My Pi (OMP) from its official project. (Note: running omp-worker-mcp requires local Node.js >= 22.0.0.)
2. Verify OMP Reachability
Verify that the OMP CLI is reachable in your environment:
omp --versionTroubleshooting: If omp is not on your PATH, set OMP_WORKER_OMP_COMMAND to its executable path in your MCP configuration.
3. Configure OMP & Default Worker Model
Run omp setup in your terminal to authenticate, configure your local OMP environment, and select your default worker model. This default model is what background OMP workers use during task execution.
(Optional advanced configuration): You can specify your default model via modelRoles.default: <provider>/<model> in ~/.omp/agent/config.yml. For upstream configuration options, see Oh My Pi.
4. Install / Register omp-worker-mcp from npm via npx & Restart Host
Add omp-worker-mcp to your host harness's stdio mcpServers configuration. The host runs the published npm package using npx -y omp-worker-mcp, which downloads and caches it on first use; ordinary users do not need git clone or npm install -g. Keep the JSON configuration below as the executable setup and restart your host harness:
{
"mcpServers": {
"omp-worker": {
"command": "npx",
"args": ["-y", "omp-worker-mcp"],
"env": {
"OMP_WORKER_OMP_COMMAND": "omp"
}
}
}
}For detailed client configurations covering Codex (config.toml), Claude Code, Cursor, VS Code / GitHub Copilot, Windsurf Cascade, and Continue, see Client Configurations.
5. Send Your First Prompt
After restarting your host harness, paste a read-only inspection prompt directly into your conversation to verify the full delegation chain:
Please use the configured omp-worker-mcp to perform a read-only inspection of the current workspace, review the project structure and dependencies, and provide a concise summary report. Do not modify any files.For Contributors / Local Development: Building from Source
git clone https://github.com/divenire990/omp-worker-mcp.git
cd omp-worker-mcp
npm ci
npm run build
npm testRecommended Entrypoints
While MCP registration and policy heuristics guide host harnesses to select high-level entrypoints based on task complexity, automatic invocation is not guaranteed. Users may also explicitly request omp-worker-mcp in prompts when delegation is critical or if the host falls back to direct execution:
omp_run_compact(Single Task): High-level single-task entrypoint selected by the host to delegate a discrete coding or research assignment, wait up towait_secondsfor execution, and return a compact structured summary and artifact list.omp_run_batch_compact(Multi-Task / DAG): High-level multi-task entrypoint selected by the host to dispatch interdependent tasks with explicit dependency graphs and concurrency limits, waiting for aggregated results.
For lower-level primitives (omp_delegate, omp_wait, omp_result, omp_continue, omp_cancel, omp_wait_group, omp_cancel_group) and complete schemas, consult the Tool Reference.
Task Safety & Ownership
Declared Write Ownership in Batch DAGs: In batch DAG tasks (
omp_run_batch_compact),writetask items must explicitly declare the workspace paths they own viaownership, whileread_onlytask items declare no write scope. For single-task execution (omp_run_compact), read-only and no-modification constraints are expressed directly ingoalandacceptance.DAG Overlap Validation: The server validates batch groups and rejects concurrent tasks with overlapping write scopes; tasks operating on shared paths must declare sequential
depends_ondependencies.Structured Verification Contract: Subagents deliver results using the structured
OMP_WORKER_RESULTenvelope (status, summary, artifacts, verification checks, remaining items).
High-impact operations (e.g., npm publish, git push, production deployments, secret modification) must always remain under direct host harness and human supervision.
Platform Support & Boundaries
Upstream Engine: Interfaces with the Oh My Pi (OMP) CLI (MIT License). The upstream binary is not bundled and must be installed separately in your local runtime
PATH.Runtime Requirement: Node.js >= 22.0.0 (native ECMAScript Modules and modern Node.js APIs).
Operating Systems:
Windows and macOS (Apple Silicon): Verified with Node.js 22+ and real OMP CLI end-to-end testing.
Linux: Supported by the architecture, but awaiting broader production verification.
Support Tiers:
Author-Verified: Codex (author's daily local workflow; not a cross-platform CI guarantee).
Documented / Reproducible: Claude Code, Cursor, VS Code / GitHub Copilot, Windsurf Cascade, Continue (not CI integration-tested).
Cloud / Remote Hosts: Conditional (requires complete runtime, OMP CLI in PATH, writable workspace, and process spawning permissions).
Documentation Hub
Detailed documentation is organized in the docs/ directory:
Documentation Index: Overview of documentation layout and responsibilities.
Author Workflow Enablement & Architecture: Enablement tutorial, policy templates, host-worker supervision loop, and authoring guidelines.
Client Configurations: Documented and reproducible configuration guidance for Codex, Claude Code, Cursor, VS Code / GitHub Copilot, Windsurf Cascade, and Continue.
Operations & State Lifecycle: Environment variables, state directory layout, retention policies, and recovery.
Tool Reference & Safety Contract: Full MCP tool specifications and safety boundaries.
Benchmark Protocol: Reproducible evaluation protocol comparing direct host execution against supervisor-worker delegation.
Official MCP Registry Publishing Guide: Step-by-step maintainer release workflow for npm and the Official MCP Registry.
Compatibility & Changelog
Public Contract & Deprecation: Review COMPATIBILITY.md for versioning guarantees.
Release History: Review CHANGELOG.md for notable updates.
License
This project is licensed under the MIT License.
Available Tools
9 toolsomp_cancelStop OMP TaskADestructiveIdempotent
Request immediate cancellation of one exact delegated OMP job. The detached runner owns the OMP child PID and terminates that process tree safely. Call this immediately when the user asks to stop; do not inspect PIDs or manually kill processes first.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| reason | No | Cancelled at the user's request |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| job_id | Yes | |
| status | Yes | |
| attempt | Yes | |
| summary | No | |
| artifacts | Yes | |
| remaining | Yes | |
| session_id | No | |
| details_path | No | |
| max_attempts | Yes | |
| verification | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true. The description adds valuable behavioral context: the cancellation is immediate, the 'detached runner owns the OMP child PID' and terminates the process tree safely. No contradiction with annotations. It could mention whether a cancelled job can be restarted, but otherwise 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?
Three crisp sentences with no wasted words. The key action verb is first, followed by the mechanism, then the usage imperative. Every sentence earns its place, and the critical usage guidance 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?
The tool has 2 parameters, an output schema, and sibling tools. The description clearly handles the core purpose and usage constraints. It lacks a note on the output schema (e.g., whether it returns success/failure), but with an output schema present, the description need not explain return values. It could mention what happens if the job_id doesn't exist or is already cancelled, but overall sufficiently 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?
Schema description coverage is 0%, so the description must compensate. It does not provide detailed parameter semantics but it adds that the operation is per 'one exact' job (implying the job_id parameter uniquely identifies it). The reason parameter is not described, but given the tool's focused purpose and the default value in the schema, the agent can infer it. A brief mention of reason's purpose would push to 5.
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 ('cancel') and resource ('delegated OMP job'), clearly distinguishing the tool from siblings like omp_cancel_group. It states exactly what the tool does (request immediate cancellation of one exact job) and how it works (the runner terminates the process tree safely).
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 explicit when-to-use guidance ('Call this immediately when the user asks to stop') and what not to do ('do not inspect PIDs or manually kill processes first'). This effectively differentiates from alternative approaches and sets clear guardrails for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omp_cancel_groupCancel Batch Task GroupADestructiveIdempotent
Request immediate cancellation of a running batch task group and its child tasks. Writes a cancellation request that the detached group coordinator handles safely. Call this immediately when the user asks to stop a batch.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Reason for cancellation | Cancelled at the user's request |
| group_id | Yes | The group_id of the batch task group to cancel |
Output Schema
| Name | Required | Description |
|---|---|---|
| tasks | No | |
| status | Yes | |
| summary | Yes | |
| group_id | Yes | |
| total_tasks | Yes | |
| failed_tasks | Yes | |
| max_parallel | Yes | |
| blocked_tasks | Yes | |
| cancelled_tasks | Yes | |
| completed_tasks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds valuable context: 'Writes a cancellation request that the detached group coordinator handles safely' – this explains that cancellation is asynchronous and not immediate, which is critical behavioral detail not in annotations. No contradictions with annotations.
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 sentences, all essential: action, mechanism, usage context. No wasted words. Could be slightly more concise by merging first two sentences, but overall excellent structure and front-loading.
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 complexity (2 parameters, output schema present), the description covers the core behavior and usage context well. It does not explain the output schema content or return values, but since an output schema exists, the description does not need to. The lack of details on edge cases (e.g., if group already done) is a minor 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?
Schema description coverage is 100% (both parameters have descriptions). The description does not elaborate on parameter details beyond what the schema already provides. With full coverage, baseline 3 is appropriate as the description adds no extra parameter meaning.
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 'immediate cancellation of a running batch task group and its child tasks'. It uses specific verbs ('cancel', 'stop') and resources ('batch task group', 'child tasks'), and distinguishes from siblings by referring to a 'group' context, which the sibling list includes 'omp_cancel' (likely single-task cancellation).
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 explicit guidance: 'Call this immediately when the user asks to stop a batch.' This sets clear when-to-use context. However, it does not mention when NOT to use it (e.g., if the group is already finished) or alternatives among siblings like 'omp_cancel' for single tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omp_continueSend Supervisory Feedback to Same OMP SessionADestructive
Resume the same OMP session with targeted supervisory feedback to correct specific acceptance defects without starting a fresh task from scratch. Bounded to remaining attempts within max_attempts.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| feedback | Yes | Specific defect, evidence, intended correction, and success check | |
| timeout_minutes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| job_id | Yes | |
| status | Yes | |
| attempt | Yes | |
| summary | No | |
| artifacts | Yes | |
| remaining | Yes | |
| session_id | No | |
| details_path | No | |
| max_attempts | Yes | |
| verification | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and openWorldHint=true, so the agent knows this tool mutates state. The description adds that it is 'bounded to remaining attempts within max_attempts', which is useful context about limits. However, it does not explain what gets destroyed (e.g., previous feedback? session progress?), nor does it clarify side effects or authorization needs. This adds some value but is 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 consists of two concise sentences. The first sentence front-loads the primary verb and resource, and the second adds a critical constraint. No redundant or irrelevant information is present. 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 that annotations and an output schema exist, the description covers the essential purpose and a key constraint. However, it does not mention prerequisites (e.g., the session must exist and be in a state that allows continuation) or what happens if remaining attempts are exceeded. For a tool that modifies state (destructiveHint=true), a note on reversibility or confirmation would improve completeness, but the description is nearly adequate.
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 33% (only the `feedback` parameter has a description in schema). The tool description clarifies that `job_id` identifies the session to resume, which adds meaning beyond the schema (which only has minLength). However, `timeout_minutes` is not mentioned in either the schema or the description, leaving its purpose implicit. The description partially compensates for low coverage but leaves a gap for one 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 tool resumes an OMP session with targeted feedback to correct defects, avoiding starting fresh. The verb 'Resume' and resource 'same OMP session' are specific, and the phrase 'bounded to remaining attempts within max_attempts' adds scope. This differentiates from siblings like omp_run_compact (which starts new tasks) and omp_cancel (which ends sessions).
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 explains the use case (correcting acceptance defects without starting fresh) and mentions a bounded constraint (remaining attempts). However, it does not explicitly state when NOT to use this tool or name alternatives (e.g., 'Use omp_run_compact for new tasks' or 'If the session has no remaining attempts, use omp_delegate instead'). The usage is implied but lacks direct exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omp_delegateDelegate Complete Task to OMP (Low-level)ADestructive
Low-level background delegation entrypoint. Transfers ownership of an execution task to OMP and returns immediately with job_id. Prefer omp_run_compact for standard workflows to avoid separate delegate/wait round trips.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | Absolute working directory OMP may inspect and modify | |
| goal | Yes | Complete natural-language outcome OMP must deliver | |
| acceptance | No | ||
| max_attempts | No | ||
| timeout_minutes | No | ||
| supervisor_brief | No | Decision-ready read-only findings, hypotheses, constraints, and recommended direction |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| job_id | Yes | |
| status | Yes | |
| attempt | Yes | |
| summary | No | |
| artifacts | Yes | |
| remaining | Yes | |
| session_id | No | |
| details_path | No | |
| max_attempts | Yes | |
| verification | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this tool as destructive (destructiveHint: true) and not read-only (readOnlyHint: false), and the description reinforces that by saying ownership is transferred. The description adds value by disclosing that it is a low-level delegation entrypoint and that it returns immediately, which helps the agent understand the async behavior. However, it does not elaborate on what destruction entails or if there are side effects beyond ownership transfer.
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 long, with the key verb and immediate behavior in the first sentence, and the alternative suggestion in the second. Every sentence earns its place with no 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?
Given the tool's relative complexity (6 parameters, async delegation, destructive, with an output schema for return value), the description covers the high-level intent but omits details about parameter semantics and what exactly is returned beyond 'job_id'. The output schema exists but is not referenced, and return behavior is only partially described.
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 50%, so the description should compensate but does not explicitly describe each parameter. The description only mentions 'goal' and 'cwd' contextually, while schema provides descriptions for most parameters. The description does not add meaning beyond the schema for parameters like 'acceptance', 'max_attempts', 'timeout_minutes', or 'supervisor_brief'. Baseline is acceptable but not exemplary.
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 explicitly states the tool's action ('delegate' an execution task to OMP), the resource ('execution task'), and the return value ('returns immediately with job_id'). It also clearly distinguishes itself from the sibling tool 'omp_run_compact' by calling it a low-level entrypoint.
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 direct guidance on when to use this tool and when to prefer an alternative. It says 'Prefer omp_run_compact for standard workflows to avoid separate delegate/wait round trips', explicitly naming the sibling and the trade-off. This is the highest level of usage guidance an agent could want.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omp_resultInspect Complete OMP Task ResultARead-onlyIdempotent
Retrieve full details of a terminal OMP job, including finalResponse and attempt logs. Call this only when minimal acceptance check fails, high-risk operations occurred, or the user explicitly asks for full inspection; do not call this after every successful compact run.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| cwd | Yes | |
| goal | Yes | |
| error | No | |
| job_id | Yes | |
| status | Yes | |
| attempt | Yes | |
| summary | No | |
| attempts | Yes | |
| artifacts | Yes | |
| remaining | Yes | |
| session_id | No | |
| details_path | Yes | |
| max_attempts | Yes | |
| verification | Yes | |
| final_response | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description does not need to re-state safety. It adds value by disclosing that the tool is for 'terminal' jobs and retrieves 'attempt logs,' which are behavioral details beyond the annotations. Score of 4 reflects strong transparency with minor room for additional context (e.g., what happens if the job is not terminal).
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 long, front-loads the purpose, and every sentence earns its place. The first sentence states the function, the second defines when to use it. No waste, no 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?
Given the tool has only one parameter and an output schema exists, the description does not need to explain return values. It covers the key context: what the tool retrieves, when to call it, and when not to. A slight gap is not specifying that the job must be terminal, but this is implied by 'terminal OMP job.' Score of 4 reflects strong completeness.
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%, meaning the tool description must compensate. The description does not add meaning to the 'job_id' parameter beyond what the schema provides (required string with minLength). However, the parameter is simple and self-explanatory. Baseline 3 is appropriate as the description does not actively add value but the parameter is trivial.
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 retrieves full details of a terminal OMP job, specifically 'finalResponse and attempt logs.' The verb 'retrieve' is specific, and the resource 'terminal OMP job' is well-defined. This distinguishes it from siblings like 'omp_run_compact' or 'omp_cancel' which have different purposes.
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 explicit usage guidance: 'call this only when minimal acceptance check fails, high-risk operations occurred, or the user explicitly asks for full inspection; do not call this after every successful compact run.' This clearly tells the agent when and when not to use this tool, differentiating it from routine monitoring tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omp_run_batch_compactRun Batch OMP Tasks with DAG and Compact Aggregated Result (Preferred for Multi-task)ADestructive
Submits a decomposed group of OMP tasks to execute concurrently in the server-side bounded rolling pool (max_parallel 1-10) using a detached group runner. Enforces dependency DAG and write-ownership safety, waits up to wait_seconds (0-240, default 60s) for batch completion, and returns stable compact aggregated results. If still running when deadline elapses, returns group_id and minimal progress counts for subsequent omp_wait_group.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | Absolute working directory OMP may inspect and modify | |
| tasks | Yes | Array of decomposed tasks to execute concurrently according to dependency DAG and ownership safety | |
| max_parallel | No | Maximum concurrent active OMP runners (1-10, default 4) | |
| wait_seconds | No | Maximum seconds to wait for batch completion inside this call (0-240, default 60) | |
| supervisor_brief | No | Shared decision-ready read-only findings, hypotheses, and constraints for the task group | |
| default_max_attempts | No | Default per-task attempt limit if not specified in task (1-5, default 3) | |
| group_timeout_minutes | No | Hard overall group deadline in minutes (1-120, default 60) | |
| default_timeout_minutes | No | Default per-task timeout in minutes if not specified in task (1-120, default 30) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tasks | No | |
| status | Yes | |
| summary | Yes | |
| group_id | Yes | |
| total_tasks | Yes | |
| failed_tasks | Yes | |
| max_parallel | Yes | |
| blocked_tasks | Yes | |
| cancelled_tasks | Yes | |
| completed_tasks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond what annotations provide: it reveals the bounded rolling pool (max_parallel 1-10), dependency DAG enforcement, write-ownership safety, wait timeout with completion or partial result handling, and return of group_id for follow-up. Annotations only indicate destructive and open-world hints, so the description significantly enhances 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 three sentences long, front-loaded with the core action, and contains no redundant information. Every sentence adds value, describing the submission, execution constraints, and timeout behavior. It is optimally concise.
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 (8 parameters, DAG, safety, timeout) and the presence of an output schema, the description covers the main behavior thoroughly. It explains the batch submission, concurrent execution, dependency enforcement, and timeout handling. Minor gaps exist (e.g., error handling for failed tasks), but the output schema likely addresses return values, making the description largely 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?
All 8 parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The description mentions max_parallel and wait_seconds ranges but mainly provides behavioral context rather than new parameter-level meaning. It does not add insight 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 tool submits a decomposed group of OMP tasks with dependency DAG and write-ownership safety, and returns compact aggregated results. The verb 'submits' and resource 'batch of OMP tasks' are specific. However, it does not explicitly differentiate from sibling tools like omp_run_compact, relying on the title's 'Preferred for Multi-task' which is not part of the description.
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 multi-task batches by mentioning 'decomposed group' and a 'detached group runner', and suggests follow-up with omp_wait_group if incomplete. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., omp_run_compact for single tasks) or 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.
omp_run_compactRun OMP Task with Compact Result (Preferred for Single Task)ADestructive
Preferred entrypoint for single substantive execution tasks. Creates a delegated OMP task, launches the detached runner, and waits up to wait_seconds (default 60s) for completion in a single MCP call. If finished, returns a compact summary, artifacts, verification, and details_path without dumping the full final response. If still running at the deadline, returns job_id and status running for subsequent omp_wait.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | Absolute working directory OMP may inspect and modify | |
| goal | Yes | Complete natural-language outcome OMP must deliver | |
| acceptance | No | ||
| max_attempts | No | ||
| wait_seconds | No | Maximum seconds to wait for terminal status inside this call (0-60, default 60) | |
| timeout_minutes | No | ||
| supervisor_brief | No | Decision-ready read-only findings, hypotheses, constraints, and recommended direction |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| job_id | Yes | |
| status | Yes | |
| attempt | Yes | |
| summary | No | |
| artifacts | Yes | |
| remaining | Yes | |
| session_id | No | |
| details_path | No | |
| max_attempts | Yes | |
| verification | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the creation, waiting, and return behavior (compact summary vs. job_id/status running) beyond what annotations provide. Annotations indicate destructiveHint=true (mutation), and the description corroborates and elaborates on the lifecycle. No contradiction with annotations.
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 four sentences, front-loads purpose, and every sentence adds value: preferred entrypoint, process, success return, timeout case. No extraneous 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 covers the core behavior and return values, which is sufficient given the output schema. However, it omits important behavioral details like retry logic (max_attempts), overall timeout (timeout_minutes), and the role of acceptance/supervisor_brief. For a tool with 7 parameters, a more complete description would address these.
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?
With 57% schema coverage, the schema already describes four parameters. The description only mentions wait_seconds default (60s) and does not explain goal, cwd, acceptance, max_attempts, timeout_minutes, or supervisor_brief. It misses the opportunity to add meaning beyond the schema, particularly for the less-documented 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 tool is the 'preferred entrypoint for single substantive execution tasks,' specifies the action (creates a delegated OMP task, launches runner, waits), and differentiates itself from siblings like omp_run_batch_compact by focusing on single tasks.
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 positions this tool as the preferred choice for single tasks and references subsequent polling with omp_wait for running jobs. It does not explicitly list when not to use it or contrast with sibling tools like omp_delegate or omp_run_batch_compact, but the context is clear enough for an agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omp_waitWait for OMP TaskARead-onlyIdempotent
Wait for an existing OMP job to reach a terminal status, polling up to wait_seconds (default 30s, max 60s). Returns the current status and summary once terminal or when the wait deadline elapses. Avoid polling in a tight loop.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| wait_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| job_id | Yes | |
| status | Yes | |
| attempt | Yes | |
| summary | No | |
| artifacts | Yes | |
| remaining | Yes | |
| session_id | No | |
| details_path | No | |
| max_attempts | Yes | |
| verification | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive. Description adds value: polling behavior, timeout defaults and max, and that it returns status only at terminality or deadline. No contradiction with annotations.
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?
Very concise: two sentences that cover purpose, behavior, parameters, and usage guidance. No 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?
Given the tool is a polling wait with only two parameters, the description is largely complete. The output schema exists, so return value is covered. Minor gap: doesn't specify that the job must already exist (vs. being started elsewhere).
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 description explains both parameters: job_id (required, implicit), wait_seconds (with default 30s, max 60s). It adds meaning beyond schema types and constraints, but the parameter names are 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?
Describes a specific action: waiting for an OMP job to reach terminal status. It clearly distinguishes itself from siblings by mentioning polling with configurable timeout and return of status/summary.
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?
Explicitly states the use case: waiting for an existing job to completion. The description includes a behavioral guideline ('Avoid polling in a tight loop'), but does not explicitly contrast with siblings like omp_wait_group or omp_cancel.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omp_wait_groupWait for Batch Task GroupARead-onlyIdempotent
Wait for an existing OMP task group to reach a terminal status, polling up to wait_seconds (0-240, default 60s). If completed, returns full aggregated compact results in original input order. If still running when deadline elapses, returns minimal progress counts without leaking task summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | The unique group_id returned by omp_run_batch_compact | |
| wait_seconds | No | Maximum seconds to wait inside this call (0-240, default 60) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tasks | No | |
| status | Yes | |
| summary | Yes | |
| group_id | Yes | |
| total_tasks | Yes | |
| failed_tasks | Yes | |
| max_parallel | Yes | |
| blocked_tasks | Yes | |
| cancelled_tasks | Yes | |
| completed_tasks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only (readOnlyHint: true), idempotent, and non-destructive. The description adds critical behavioral details beyond annotations: it explains two possible outcomes (full results on completion, minimal progress counts on timeout), clarifies the poll-up-to pattern, and confirms no task summaries leak on timeout. This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, both front-loaded with the core action and outcome. No wasted words; every sentence adds value about behavior or return conditions.
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 output schema exists (not shown but noted in signals), the description does not need to document return fields. It covers the key behavioral scenarios (success and timeout), parameter constraints, and source of group_id. Slight deduction for not mentioning whether the call can be re-invoked after timeout to continue waiting, but annotations imply idempotency.
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 100%, but the description adds meaning beyond the schema: it explains that wait_seconds controls polling duration with a clear range and default, and that group_id must come from omp_run_batch_compact. The description does not describe format or validation beyond schema, but it effectively contextualizes both 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 uses a specific verb ('Wait for'), identifies the resource ('OMP task group'), and clearly defines the scope (terminal status, polling behavior). Distinguished from siblings like omp_wait by specifying 'Batch Task Group' and referencing omp_run_batch_compact.
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 when to use this tool (after omp_run_batch_compact) by requiring group_id, but does not explicitly state when not to use it or name alternative tools for other cases. The context of sibling tools provides partial guidance.
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.
9 tool updates
v0.1.0- First observed
omp_cancel - First observed
omp_cancel_group - First observed
omp_continue - First observed
omp_delegate - First observed
omp_result - First observed
omp_run_batch_compact - First observed
omp_run_compact - First observed
omp_wait - First observed
omp_wait_group
TDQS
Each tool has a clearly distinct purpose: batch vs single, delegate vs wait vs cancel vs result retrieval vs continue. No two tools overlap in function—omp_run_compact and omp_delegate differ by synchronous vs asynchronous, and omp_wait_group vs omp_wait serve batch vs single jobs.
All tools follow a consistent `omp_<verb>[_<noun>]` pattern where the verb describes the action (run, wait, cancel, result, continue) and optional noun specifies the target (batch, group, compact). Perfectly predictable and uniform.
9 tools precisely cover the lifecycle of both single and batch task execution: submission, waiting, cancellation, result retrieval, and continuation. No tool is superfluous, and the count is tight for the complexity of the domain.
The tool surface covers every stage of task management: submission (run/delegate), monitoring (wait), cancellation (cancel), post-hoc inspection (result), and iterative correction (continue). No obvious gaps—both single and batch workflows are fully supported.
Maintenance
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
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
AI work orchestration for plans, tasks, teams, and coding-agent dispatch.
Hosted runtime for persistent agent teams, durable workflows, memory, schedules, and goals.
- AgentdaOAuthcom.myagentda
Agent-native task management: your AI agent is the interface. Delegate to anyone by email.
Related MCP Servers
- AlicenseAqualityAmaintenanceLocal-first multi-agent delegation and approval control for Codex via MCP, with persistent task DAG, isolated worktrees, and a web console.141MIT
- FlicenseNot gradedqualityBmaintenanceEnables Claude Code to delegate work to persistent oh-my-pi (omp) subagents via an MCP server with 7 tools (spawn, send, output, status, list, stop, prune), wrapping omp RPC mode with enforcement hooks for descriptive agent naming, model configuration, denylists, write-scope ownership, and cooperative locking.-
- AlicenseNot gradedqualityBmaintenanceEnables Hermes agents to delegate bounded coding tasks to persistent oh-my-pi sessions with isolated git worktrees, live steering, and durable follow-ups, requiring explicit user confirmation before each task.AGPL 3.0
- AlicenseAqualityBmaintenanceEnables delegating coding tasks to a pi agent as a steerable background worker, allowing mid-run redirection, follow-ups, and keeping the delegate's context isolated from your main conversation.1216015MIT
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/divenire990/omp-worker-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server