agentic-orchestrator MCP server
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., "@agentic-orchestrator MCP serverAnalyze competitor pricing, compute average, and draft report."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
agentic-orchestrator
A multi-agent orchestration engine built from first principles — no agent framework — to show the machinery that frameworks hide: planner → specialists-with-tools → critic revision loop, a structural human-in-the-loop approval gate for sensitive actions, full JSONL traces with derived metrics, a deterministic offline mode, an eval harness with a safety invariant, and an MCP server so any MCP client (Claude Desktop / Claude Code) can drive the engine as a tool.
goal ─▶ Planner ─▶ Plan (validated DAG) ─▶ steps: [tool? ─▶ approval gate ─▶ specialist] ─▶ Critic ⇄ bounded revisions ─▶ TaskReport
│ │
└── 1 retry with validation └── sensitive tools HELD for a human by default
error fed back (DenyAll) — enforced in code, not in a prompt
every event ──▶ TraceRecorder (JSONL) ──▶ Metrics (derived, never hand-counted)See it run (offline, deterministic, no keys)
pip install -e ".[dev]"
orchestrate "Investiga el precio de una web y calcula el total con IVA 890 * 1.21 y envía un email al cliente"── PLAN ──
s1 (researcher) [kb_search]: Gather facts from the knowledge base about: ...
s2 (analyst) [calculator]: Compute the figures requested in: ... ← s1
s3 (writer) [send_email]: Draft and send the email ← s1,s2
s4 (writer): Write the final deliverable ← s1,s2,s3
── FINAL OUTPUT ──
Deliverable:
- Based on the tool result: Una página web básica cuesta desde 890 € ...
- Based on the tool result: 1076.9
- Based on the tool result: ACTION_HELD: awaiting human approval
── STATUS ──
critic approved: True | revisions: 0
⚠ held for human approval: ['s3:send_email']Note the last line: the email was not sent. Side-effecting tools are registered as sensitive and the engine routes them through an approval policy — DenyAll by default. --approve-all (or an AllowList / CallbackApproval policy in code) releases them. This gate lives in the execution path, not in a prompt, so no jailbreak can skip it.
Real model: ORCH_LLM=claude orchestrate "..." (needs pip install -e ".[anthropic]" + ANTHROPIC_API_KEY).
Related MCP server: MCP Server + LLM Agent
As an MCP server
orchestrator-mcp # stdio MCP server: tools run_task, get_trace, get_metrics// claude_desktop_config.json
{ "mcpServers": { "orchestrator": { "command": "orchestrator-mcp" } } }The MCP layer is ~150 lines of dependency-free JSON-RPC — implementing the handshake, tools/list and tools/call by hand — and it's unit-tested in-process, including parse errors and invalid params (tests/test_tools_mcp.py).
Evaluation with a safety invariant
python eval/run_eval.py runs 6 tasks offline and gates CI on three axes:
task | success | tool routing | safety | revisions |
t01–t06 | 6/6 | 6/6 | 6/6 | 0 |
success — expected facts/figures present in the final output;
tool routing — the planner used the tools each task needs (verified against the trace, not the plan);
safety — every sensitive action was held, plus the hard invariant checked on every run: under
DenyAll, no sensitive tool ever executes. A system that is 95% useful but 1% executes unapproved side effects is 0% deployable.
What's inside
module | what it demonstrates |
| Typed agent contracts ( |
| Orchestration loop, planner retry-with-feedback, bounded critic revisions, fail-open-but-visible critic policy |
| Tool registry with sensitivity flags; AST-walking calculator (code-injection-proof — tested) |
|
|
| Ordered JSONL traces; metrics derived from the trace, never counted ad hoc |
| MCP handshake + tool surface as plain JSON-RPC over stdio |
|
|
24 tests cover the failure modes that matter: planner produces garbage twice → PlanningError; plan references unknown tools or contains cycles → rejected pre-execution; critic rejects → bounded revisions with the hint in the prompt; critic emits invalid JSON → delivery proceeds, trace records it; approval callback crashes → HELD; calculator receives __import__('os')... → ERROR, not execution.
Full design rationale: docs/architecture.md.
Honest limitations
The offline
RuleBasedLLMis a demo brain — keyword planning, checklist critique. It makes the engine testable and the evals deterministic; it is not intelligent. Output quality withClaudeLLMis not evaluated here (deterministic gates only).Steps execute sequentially; independent DAG branches could parallelize (roadmap in
docs/architecture.md).No persistence/resume: held approvals must be re-run today, not released mid-flight.
Single-process, single-tenant. This is an engine study, not a hosted platform.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
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/Saul4432/agentic-orchestrator'
If you have feedback or need assistance with the MCP directory API, please join our Discord server