Orchestrator Python MCP Server
It runs a machine-verified 4-phase workflow MCP server for AI coding assistants, enforcing DESIGN → PLAN → EXECUTE → VERIFY → COMPLETE with human approval gates.
Initialize sessions:
orchestrate_initstarts a new workflow with a task description, sets phase to DESIGN, and returns SOP instructions with HMAC anti-tamper security.Check status:
orchestrate_statusreports whether a session is active and its current phase.Approve deliverables:
orchestrate_approvegrants the required human gate before verification for DESIGN/PLAN phases.Verify and advance:
orchestrate_verifyvalidates phase deliverables (e.g., design.md headings, plan.md task schema, checked tasks, file sizes, test command) and advances to the next phase with SOP instructions.Plan execution:
orchestrate_get_dag_batchesparses plan.md tasks into ordered parallel batches with dependency/file-collision handling.List agents:
orchestrate_get_agentsreturns specialized agent personas usable as subagents.Archive:
orchestrate_archivemoves session deliverables to.orchestrator/archive/<session_id>/and releases the session lock.
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., "@Orchestrator Python MCP ServerStart a new orchestration session to build a user CRUD API"
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.
Orchestrate Python MCP Server
Machine-verified 4-phase workflow MCP server for AI coding assistants. Enforces DESIGN → PLAN → EXECUTE → VERIFY → COMPLETE with human approval gates, state integrity checks, and DAG task scheduling.
Quickstart
Installation & Run
# Sync environment
uv sync
# Run tests (Unit + 26 BDD Scenarios)
uv run pytest
# Start MCP server (stdio transport)
uv run python -m orchestrate_mcp.serverMCP Client Configuration
Example OpenCode config (opencode.json):
{
"mcp": {
"orchestrate": {
"type": "local",
"command": ["uv", "run", "--project", "/path/to/orchestrate", "python", "-m", "orchestrate_mcp.server"]
}
}
}The server runs in stdio mode; cwd resolves to the session directory where the client launched the server. See the distribution guide for other clients (Claude Desktop, Cursor, Windsurf).
Related MCP server: MIDAS
Table of Contents
Workflow Lifecycle
[Start] ──> orchestrate_init(task="...")
│
▼ (DESIGN Phase)
Write `.orchestrator/design.md`
│
▼
orchestrate_approve() ──> orchestrate_verify()
│
┌───────────────────────┘
▼ (PLAN Phase)
Write `.orchestrator/plan.md`
│
▼
orchestrate_approve() ──> orchestrate_verify()
│
┌───────────────────────┘
▼ (EXECUTE Phase)
orchestrate_get_dag_batches()
Subagents implement tasks & mark [x]
│
▼
orchestrate_verify()
│
▼ (VERIFY Phase)
orchestrate_verify() (runs automated test command)
│
▼ (COMPLETE Phase)
orchestrate_archive() ──> [Done]MCP Tools Reference
Tool Name | Parameters | Description |
|
| Initializes new session in |
| (none) | Returns |
| (none) | Human gate approval. Unlocks verification for |
| (none) | Validates phase deliverables. Advances to next phase on pass, returns next SOP prompt. |
| (none) | Parses |
|
| Releases lock and moves session files into |
Deliverable Requirements per Phase
DESIGN Phase:
Deliverable:
.orchestrator/design.mdRequired Headings:
## Requirements,## Architecture,## Self-Confidence Audit.Gate: Requires
orchestrate_approvebefore verification.
PLAN Phase:
Deliverable:
.orchestrator/plan.mdTasks Schema:
- [ ] **<id>**: <desc> (Agent: <role>, Target: <file>, blocked_by: [<deps>])Detailed Specs:
### <id>section for every task.Final Barrier: Final task MUST be assigned to
Agent: implementation-reviewerblocked by all prior tasks.Test Command: Valid executable
Test command: <cmd>under## Verification.Gate: Requires
orchestrate_approvebefore verification.
EXECUTE Phase:
Rule: All tasks in
.orchestrator/plan.mdmarked checked- [x].Rule: Target files must exist on disk and have size > 0 bytes.
VERIFY Phase:
Rule: Runs plan's test command via shell subprocess (120s timeout). Passes if exit code is 0.
Example Deliverables
Below are minimal, realistic examples demonstrating valid syntax and required structure for phase deliverables.
Example .orchestrator/design.md
# Design — Collinear-feature handling in corrected CFI estimators
## Goal
Fix `run_cfi_corrected` crash when input feature matrix contains near-collinear or duplicate pairs (`DatasetException: |rho|=1 is effectively 1`).
## Requirements
### Functional
| # | Requirement |
|---|---|
| F1 | `corrected_mutual_information(a, b)` returns `1.0` when pair is collinear (`rho**2 >= 1 - 1e-12`). |
| F2 | `corrected_variation_of_information(a, b)` returns `0.0` when pair is collinear. |
| F3 | `BaseCorrectedCfiConfig` gains opt-in `drop_collinear_features: bool = False`. |
### Non-Functional
- **No silent fallbacks**: Constant/NaN inputs still raise `DatasetException`.
- **Zero regression**: Unaffected estimator paths remain byte-identical.
## Architecture
```python
_EFFECTIVELY_COLLINEAR_RHO2 = 1 - 1e-12
def _is_effectively_collinear(rho: float) -> bool:
return rho**2 >= _EFFECTIVELY_COLLINEAR_RHO2
```
In `corrected_mutual_information`, short-circuit before histogram binning:
- If `np.isfinite(rho)` and `_is_effectively_collinear(rho)`: return `1.0`.
## Self-Confidence Audit
- Guessed paths: 0% (inspected `dependence.py`, `config.py`, `impl.py`)
- Unresolved assumptions: 0% (analytic limits Cover & Thomas Thm 2.4.1)
- Missed edge cases: 0% (constant inputs delegate to existing validation)
- Unchecked config: 0% (pydantic & numpy dependencies verified)
**Score: 97%** (>= 95% gate pass)Example .orchestrator/plan.md
# Implementation Plan — Collinear-feature handling in corrected CFI estimators
## Overview
Implement 2-layer collinear handling: (1) estimator analytic limit guard in `dependence.py`, (2) opt-in feature dedup in `config.py` / `impl.py`.
## Tasks
- [ ] **T1**: Estimator guard in dependence.py (Agent: coder, Target: src/research/cfi/dependence.py, blocked_by: [])
- [ ] **T2**: Add drop_collinear_features config field (Agent: coder, Target: src/research/cfi/config.py, blocked_by: [])
- [ ] **T3**: Unit tests for collinear limits & config (Agent: tester, Target: tests/test_cfi.py, blocked_by: [T1, T2])
- [ ] **T4**: Final Implementation Verification Audit (Agent: implementation-reviewer, Target: .orchestrator/plan.md, blocked_by: [T1, T2, T3])
## Detailed Task Specifications
### T1: Estimator guard in dependence.py
- **Target**: `src/research/cfi/dependence.py`
- **Signatures & Contracts**:
- Add `_EFFECTIVELY_COLLINEAR_RHO2: float = 1 - 1e-12`
- Add `_is_effectively_collinear(rho: float) -> bool`
- Update `corrected_mutual_information(a: ArrayLike, b: ArrayLike, n_bins: int | None = None) -> float`
- **Old → New Implementation**:
```python
# Before
x, y = _as_paired_arrays(a, b)
hx, hy, hxy = _binning_and_entropies(x, y, n_bins)
# After
x, y = _as_paired_arrays(a, b)
if n_bins is None:
rho = float(np.corrcoef(x, y)[0, 1])
if np.isfinite(rho) and _is_effectively_collinear(rho):
return 1.0
hx, hy, hxy = _binning_and_entropies(x, y, n_bins)
```
- **Acceptance Criteria**:
- `corrected_mutual_information(2*a+1, a) == 1.0` without raising `DatasetException`.
### T2: Add drop_collinear_features config field
- **Target**: `src/research/cfi/config.py`
- **Signatures & Contracts**:
- Extend `BaseCorrectedCfiConfig(BaseModel)` with new schema fields.
- **Old → New Implementation**:
```python
# Before
class BaseCorrectedCfiConfig(BaseModel):
scoring: Any = log_loss
seed: int = 42
# After
class BaseCorrectedCfiConfig(BaseModel):
scoring: Any = log_loss
seed: int = 42
drop_collinear_features: bool = False
collinear_threshold: float = Field(default=0.999, ge=0.0, lt=1.0)
```
### T3: Unit tests for collinear limits & config
- **Target Test File**: `tests/test_cfi.py`
- **Test Scenarios**: MI limit = 1.0, VI limit = 0.0, validation constraint `lt=1.0`.
- **Copy-Paste Implementation**:
```python
def test_mi_collinear_returns_one():
a = np.arange(100.0)
b = 2.0 * a + 1.0
assert corrected_mutual_information(b, a) == pytest.approx(1.0)
def test_vi_collinear_returns_zero():
a = np.arange(100.0)
b = 2.0 * a + 1.0
assert corrected_variation_of_information(b, a, normalize=True) == 0.0
def test_collinear_threshold_validation():
with pytest.raises(ValidationError):
cfi_config("onc_vi", collinear_threshold=1.5)
```
### T4: Final Implementation Verification Audit
- **Target**: `.orchestrator/plan.md`
- **Verification Specialist Duties**:
- Inspect `git diff` against specifications in T1–T3.
- Verify all unit tests pass with zero regressions.
## File Inventory
| File | Status | Purpose |
|---|---|---|
| `src/research/cfi/dependence.py` | Modified | Add collinear short-circuit |
| `src/research/cfi/config.py` | Modified | Add `drop_collinear_features` schema field |
| `tests/test_cfi.py` | Modified | Collinear regression test suite |
## Verification
Test command: uv run pytest tests/test_cfi.py -v
## Confidence Self-Audit
- Guessed paths: 0%
- Unresolved assumptions: 0%
- Missed edge cases: 0%
- Unchecked config: 0%
**Score: 98%** (>= 95% gate pass)Available Tools
7 toolsorchestrate_approveC
Grant human approval for the current phase deliverable.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_root | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| phase | No | |
| message | No | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosure. While 'Grant human approval' conveys the core action, it does not mention what changes as a result, whether the action is reversible, whether authentication/human-level context is required, or how approval affects the orchestration workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant filler or restatement of the tool name. It is short and easily parsed, which is appropriate for a tool with one optional parameter.
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?
Although an output schema exists and the tool has only one optional parameter, this is a workflow-changing approval action in an orchestration toolset. The description does not explain where approval fits in the orchestration lifecycle, what changes after approval, or what happens if workspace_root is omitted/a different workspace is selected, leaving the agent to infer critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description never mentions workspace_root or its role. The parameter name and schema type signal that it is an optional workspace path, but the description does not compensate for the missing schema documentation or clarify what happens when it is null versus set.
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 names a specific verb ('Grant') and resource ('human approval for the current phase deliverable'), making it distinguishable from siblings like orchestrate_init, orchestrate_verify, and orchestrate_archive. It is clear that this is an approval action rather than a status check or verification, though 'current phase deliverable' is not fully qualified.
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 gives no guidance on when to call this tool versus alternatives, such as after orchestrate_verify succeeds or before orchestrate_archive. It also does not state prerequisites for approving the current phase deliverable, so an agent has to infer the workflow context entirely from the tool name and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orchestrate_archiveC
Archive current orchestration deliverables and release session lock.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| workspace_root | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| message | No | |
| success | Yes | |
| archived_session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It states that deliverables are archived and the lock is released, but it does not explain whether archiving is reversible, what happens to in-progress work, how the lock is determined, or what side effects the operation has beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded, two-clause sentence with no filler. Every phrase adds behavioral information, and nothing needs to be removed.
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 two parameters, no annotations, and unclear side effects, yet the description provides only a high-level action. The agent is left without enough context to safely use 'force' or understand the impact of archiving. An output schema exists, but it does not compensate for the missing behavioral and parameter context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented parameters. It does not mention 'force' or 'workspace_root' at all; the agent cannot infer what 'force' controls or how 'workspace_root' changes behavior. This is a significant gap for a tool with a default force=true.
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 ('archive') and a specific resource ('current orchestration deliverables'), plus a secondary action ('release session lock'). This makes it distinct from sibling lifecycle tools like orchestrate_init or orchestrate_approve, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when this tool should be used versus ordinary_status, orchestrate_approve, or orchestrate_verify. The name implies it is a finalization step, but the description does not state prerequisites, sequencing, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orchestrate_get_agentsA
List all specialized orchestrator agent personas. Each name is a registered OpenCode subagent ID, spawnable by name via the subagent tool even if hidden from the advertised subagent catalog.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| agents | No | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well by disclosing that names are registered OpenCode subagent IDs, spawnable via the subagent tool even if hidden. It adds meaningful insight beyond 'list agents', though it omits non-critical details like pagination or ordering.
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 tight sentences with no filler. The first states the primary purpose, and the second adds high-value operational nuance about spawnability and catalog visibility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool with an output schema present, this description is fully sufficient. It tells the agent what is returned, that names are usable IDs, and that the list may include hidden agents, leaving no essential gap for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is effectively complete, so the baseline of 4 applies. No parameter documentation is needed, and the description correctly avoids inventing parameter details.
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?
Description clearly states a specific verb ('List') and resource ('all specialized orchestrator agent personas'). It also differentiates from siblings by explaining these are registered subagent IDs, distinct from tools like orchestrate_init or orchestrate_get_dag_batches.
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 gives clear functional context: the returned names are usable as subagent IDs even when hidden from the catalog, which implies when to use this tool. It does not explicitly name alternatives or exclusion criteria, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orchestrate_get_dag_batchesB
Compute topological execution batches from plan.md tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_root | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| batches | No | |
| success | Yes | |
| total_tasks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. 'Compute' suggests a read-only calculation, but the description does not explicitly state that it mutates nothing, does not execute tasks, or what happens when plan.md is missing or malformed.
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 one sentence, front-loaded with the action verb and resource, with no filler or redundant detail. Every word contributes to the core meaning.
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?
Although an output schema exists and the parameter count is low, the description still lacks important context: when to call the tool, how to supply the workspace root, and whether any state changes occur. It provides only the barest outline in what is otherwise a structured orchestration workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is zero parameter coverage in the schema, and the description does not explain the workspace_root parameter or what a null value means. The phrase 'from plan.md tasks' loosely connects to a workspace but does not compensate for the missing parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('compute topological execution batches') and identifies the source data ('plan.md tasks'). It is clearly a batch-planning/read-only computation tool, distinct from siblings like orchestrate_get_agents, though it doesn't explicitly name or differentiate sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies that a plan.md file must already exist and that the result is intended for execution sequencing, but it does not state prerequisites, when not to use it, or how it fits relative to approve/verify/status. The usage context is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orchestrate_initB
Initialize a new orchestration session with HMAC anti-tamper security.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_root | No | ||
| task_description | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| phase | No | |
| success | Yes | |
| session_id | No | |
| sop_instructions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only mentions 'HMAC anti-tamper security' and gives no details about what initialization does, what side effects occur, whether an existing session must be absent, or what happens on failure. This is thin disclosure for a state-creating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one clean front-loaded sentence with no wasted words. It is concise and scannable, though the brevity comes at the cost of missing useful usage and semantic guidance.
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 output schema does carry return-shape information, and the two parameters are simple, so the tool is minimally callable. However, the description does not explain the orchestration setup context, how workspace_root should be used, or how this tool fits in the orchestration lifecycle among six sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either task_description or workspace_root. The parameter names are somewhat self-explanatory, but the tool description itself contributes no meaning, and with a nullable workspace_root, the intended semantics and null behavior remain ambiguous.
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 phrase 'Initialize a new orchestration session' gives a specific verb and resource and clearly distinguishes it from lifecycle siblings like orchestrate_status and orchestrate_archive. The HMAC clause is a security qualifier rather than a purpose statement, so it does not help define intent.
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 word 'Initialize' and the qualifier 'new' imply when this should be used, but the description does not explicitly state when to use it versus alternatives, does not mention lifecycle ordering, and provides no exclusions or prerequisites. Absence of explicit routing leaves some interpretation to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orchestrate_statusB
Query current session status and active phase.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_root | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| phase | No | |
| message | Yes | |
| active_session | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The word 'Query' implies a read-only operation, which is helpful in a tool with no annotations. However, it does not explain what happens when there is no active session, whether the status is live or cached, or whether calling it has side effects. The description gives the basic safety signal but leaves important behavioral context uncovered.
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 one sentence and waste-free; it states the action and the object immediately. For a simple status-query tool with a single optional parameter, this level of conciseness is appropriate.
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?
An output schema exists so the return format is at least partially covered elsewhere, and the tool itself is simple. What is missing is the workflow context: when to call it relative to orchestrate_init or orchestrate_approve, and whether the workspace_root parameter is needed to distinguish statuses. The description is minimally adequate but not fully complete for the orchestration workflow.
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 0% schema description coverage, the description must compensate for the parameter, but it never mentions workspace_root or how it affects the query. The schema supplies only the name, type, default, and a title, leaving the agent uncertain what a null value means and whether the parameter is needed for the current session.
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 ('Query') and names the resource ('current session status' and 'active phase'), which makes the tool's core purpose clear and separates it from the action-oriented sibling tools like init, approve, and verify. It is not a 5 because 'active phase' is slightly ambiguous and there is no explicit statement distinguishing it from other status-like queries.
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?
There is no guidance on when to use this tool versus the sibling tools, no mention of prerequisites like orchestrate_init, and no indication of what conditions call for status checking. An agent must infer usage from the verb and name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orchestrate_verifyB
Run machine verification on current phase deliverables and advance phase on success.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_root | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| phase | Yes | |
| errors | No | |
| success | Yes | |
| previous_phase | No | |
| next_sop_instructions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the key side effect: it advances the phase on success. With no annotations provided, this is important and helpful. However, it does not clarify behavior on failure, whether verification is read-only, whether changes are reversible, or what 'deliverables' includes. It covers the most critical mutation but leaves behavioral details incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence. Every word earns its place, and the core action and conditional outcome are immediately clear. There is no fluff or redundant restatement of the tool name.
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 and only one optional parameter is present, the description covers the basic workflow and final state change. But with no annotations and no parameter guidance, the agent is left guessing about the meaning of workspace_root, failure behavior, and boundaries of 'current phase deliverables.' It is adequate but not complete for a tool that mutates phase state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the sole parameter workspace_root is not mentioned in the description at all. The schema only provides the name, null option, and default, which does not explain its role or whether/how it affects verification. The description fails to compensate for the total lack of parameter documentation.
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 names a specific action ('Run machine verification') on a specific target ('current phase deliverables') and the conditional outcome ('advance phase on success'). This clearly distinguishes orchestrate_verify from siblings like orchestrate_approve, orchestrate_status, and orchestrate_init without needing to inspect schemas.
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 the tool — when current phase deliverables need machine verification before advancing — but does not explicitly state when not to use it or call out alternative tools. Sibling tools exist for different purposes, but no direct comparison or exclusion is provided.
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.
7 tool updates
v0.1.0- First observed
orchestrate_approve - First observed
orchestrate_archive - First observed
orchestrate_get_agents - First observed
orchestrate_get_dag_batches - First observed
orchestrate_init - First observed
orchestrate_status - First observed
orchestrate_verify
TDQS
Each tool targets a distinct operation: session init, status, human approval, machine verification, archiving, DAG batch computation, and agent listing. There is no meaningful overlap, and the approve versus verify distinction is clear because one is human-driven and the other is machine-driven.
All tools share the orchestrate_ prefix and lowercase snake_case, which makes the set easy to predict. However, status reads as a noun rather than an action verb, and the get_* retrieval tools stand slightly apart from the other lifecycle verbs.
Seven tools is well-scoped for an orchestration lifecycle server, covering session creation, status, approval, verification, archival, DAG computation, and agent discovery without redundancy. The count feels appropriate for the domain.
The core lifecycle is present, but the human-in-the-loop workflow lacks explicit reject, cancel, or rollback paths, and verification only advances on success. Additionally, the DAG batch and agent listing tools are auxiliary and do not include an execution tool, leaving a notable gap in the orchestration loop.
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
AI work orchestration for plans, tasks, teams, and coding-agent dispatch.
Pre-execution governance for AI agents. Deterministic PASS/FAIL/REVIEW verdicts, replayable proof.
- ParleyOAuthdev.weldra
Coordination hub for AI coding agents: message teammates, ask humans, audit every event.
Connect, monitor, and control AI agents — tasks, approvals, schedules, and governance.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to execute formal, stateful workflows with typed contracts, postcondition enforcement, and structured retry logic.1Apache 2.0
- AlicenseNot gradedqualityAmaintenanceLocal-first AI agent for approval-gated automation and verifiable LLM workflows.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables evidence-gated, multi-session AI coding runs with plan-build-ship state management, coordinating Claude Code and Codex native agents.167MIT
- FlicenseAqualityCmaintenanceEnables AI agents to orchestrate tasks as a DAG with automated validation loops, executing validation commands, tracking statuses, and allowing iterative code fixes until tasks pass.16-
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/eustin/mcp-server-orchestrate'
If you have feedback or need assistance with the MCP directory API, please join our Discord server