orquestra-core
An MCP control plane for OrquestraAI that lets an agent manage skills, MCP servers, master instructions, and harness fleet state.
Skills: list skills with token weights and scope projection, enable/disable them per harness or globally, create new skills (frontmatter, markdown, optional scripts), and archive skills safely (unlink then backup).
MCP servers: list registered servers with global/per-harness state, toggle them and redeploy the catalog, and create or delete servers across every harness config.
Instructions: read the master
AGENTS.mdevery harness inherits, and append mission rules to a section with a backup.Fleet: report link/bridge status for every harness in the OrquestraAI fleet.
Allows managing the Hermes harness by enabling or disabling skills, toggling MCP servers, and reading or editing master instructions through the OrquestraAI control plane.
Click on "Deploy 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., "@orquestra-core enable the code-review skill for all harnesses"
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.
orquestra-core-mcp
An MCP control plane for OrquestraAI. It lets
an agent change its own harness fleet instead of asking a human to click through a
desktop app: activate skills just in time, flip MCP servers on and off, read the
master AGENTS.md, append a mission rule, and check which harnesses are linked.
Why
Every harness — Codex, Claude Code, Antigravity, OpenCode, Kilo, Copilot, Grok,
Hermes, Freebuff — reads the same three projections under ~/.orquestra:
~/.orquestra/
├── skills-library/<id>/SKILL.md master vault of every skill
├── active/<scope>/<id> symlinks the harnesses actually read
├── mcps.json catalog compiled into each harness config
└── AGENTS.md master instructions, symlinked per harnessEditing that tree by hand is fragile: a half-written catalog or a real directory where a symlink belongs breaks a harness silently. This server performs the same operations OrquestraAI itself performs — atomic symlink swaps, catalog changes through the native binary, backed-up instruction edits — and exposes them as MCP tools with structured results.
Just-in-time skills — enable a skill for one harness, or globally, and it is projected into every harness scope immediately.
Fleet-aware — a global toggle fans out to all harness projections, so you never leave one harness reading a stale scope.
Native delegation — every catalog change ends in
orquestra --mcp-deploy, so this server cannot drift from OrquestraAI's own serializers and the returnedchangedlist is the deploy's real answer.Safe writes — symlinks are created at a temporary name and
os.replaced;AGENTS.mdis copied to~/.orquestra/backups/before an atomic replace.Readable estimates — each skill reports an approximate token weight so an agent can reason about context budget before loading it.
Related MCP server: walkie
Install
From this repository:
python3 -m venv .venv && .venv/bin/pip install .or with pipx / uv:
pipx install .
uv tool install .Installing exposes the orquestra-core console script. You can also run the
module directly: python3 -m orquestra_core.server.
Requirements: Python 3.10+, the official mcp SDK, and the native orquestra
binary on PATH for the catalog and fleet tools (~/.local/bin/orquestra is
found automatically, ORQUESTRA_BIN overrides it).
MCP client setup
The server speaks MCP over stdio and needs no arguments.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"orquestra-core": { "command": "orquestra-core", "args": [] }
}
}Codex (~/.codex/config.toml):
[mcp_servers.orquestra-core]
command = "orquestra-core"
args = []Cursor (~/.cursor/mcp.json or .cursor/mcp.json):
{
"mcpServers": {
"orquestra-core": { "command": "orquestra-core", "args": [] }
}
}Antigravity (~/.gemini/config/mcp_config.json):
{
"mcpServers": {
"orquestra-core": { "command": "orquestra-core", "args": [] }
}
}OrquestraAI (~/.orquestra/mcps.json, then orquestra --mcp-deploy):
"orquestra-core": {
"id": "orquestra-core",
"name": "Orquestra Core (Control Plane)",
"description": "Just-in-time skills, MCP toggles, fleet status and master rules.",
"command": "orquestra-core",
"args": [],
"env": {},
"globalEnabled": true,
"enabledHarnesses": []
}If orquestra-core is not on PATH, use
"command": "python3", "args": ["-m", "orquestra_core.server"] instead.
Tools
Tool | Inputs | Returns |
|
|
|
|
|
|
|
|
|
| — |
|
|
|
|
| — | master |
|
|
|
| — |
|
|
|
|
|
|
|
|
|
|
|
|
|
| — |
|
|
|
|
| — |
|
scope is global or a harness id discovered from ~/.orquestra/active
(antigravity, claude, codex, copilot, freebuff, grok, hermes,
kilo, opencode). enabled on a harness scope means "projected into that
harness"; is_inherited means the global scope also projects it.
Example prompts
List my skills and tell me which ones cost the most context.
Enable the "playwright" skill globally, then confirm every harness sees it.
Disable "kubernetes" for codex only.
Turn off the "puppeteer" MCP server and redeploy.
Append a rule under "Safety": never rewrite migration files without a backup.
Which harnesses are currently bridged?Mission Presets
List all available mission presets and tell me which one is active.
Apply the stealth preset to minimize my context footprint.
Switch to the rust-dev preset for this session.
Apply full-power and then list my active skills to confirm.
Run bridge deploy to sync all harness symlinks.Behavior notes
orquestra_list_skillsmemoizesSKILL.mdmetadata on(mtime, size); repeat calls over a 400-skill vault stay in the low milliseconds.Enabling a skill that is already projected is a no-op (
changed: []).A real directory where a skill symlink belongs is never deleted or replaced; the tool returns an explanatory error instead.
orquestra_append_mission_rulematches the section heading case-insensitively, prefixes bare lines with-, and creates the section when it is missing.orquestra_create_skillaccepts[A-Za-z0-9-]ids, quotes YAML values that need it, and removes the half-written folder if any script name is rejected.orquestra_delete_skillunlinks every scope first, then moves the vault folder tobackups/deleted-skills-<stamp>/; nothing is hard-deleted.orquestra_create_mcpwrites the entry and itsmanagedIdsmembership in one atomic catalog replace, then deploys, so a crash cannot leave half a server.orquestra_toggle_mcpedits the catalog in place and deploys; a harness cannot opt out of a globally enabled server, so disable it globally first, matching the desktop rule. Unknown harness scopes are rejected before any write.orquestra_delete_mcpdrops the entry but deliberately leaves its managed id for the deploy: that membership is what marks the block stale, so the serializers purge it from every harness config.ORQUESTRA_HOMErelocates the whole tree (used by the test suite).
Development
python3 -m venv .venv && .venv/bin/pip install -e . pytest
.venv/bin/python -m pytest tests/ -q
bash scripts/check-file-size.shTests build a throwaway ORQUESTRA_HOME under /var/tmp/testing/ with a fake
native binary, so they never touch a real ~/.orquestra.
License
MIT — see LICENSE.
Available Tools
12 toolsorquestra_append_mission_ruleB
Append a mission directive to a section of the master AGENTS.md, with a backup.
Inputs: rule_content (required), section_title (required). Returns: object
orquestra_create_mcpC
Register a new MCP server in the catalog, then deploy it to every harness.
Inputs: name (required), mcp_id (required), command (required), description (required), +3 more. Returns: object
orquestra_create_skillC
Create a skill in the vault with frontmatter, markdown body and optional scripts.
Inputs: name (required), skill_id (required), description (required), instructions_markdown (required), +1 more. Returns: object
orquestra_delete_mcpB
Remove an MCP server from the catalog and from every harness config.
Inputs: mcp_id (required). Returns: object
orquestra_delete_skillA
Archive a skill: unlink it from every scope, then move its vault folder to backups.
Inputs: skill_id (required). Returns: object
orquestra_disable_skillC
Deactivate a skill; 'global' removes its symlink from every harness projection.
Inputs: skill_id (required), scope. Returns: object
orquestra_enable_skillA
Activate a skill in a scope; 'global' propagates the symlink to every harness.
Inputs: skill_id (required), scope. Returns: object
orquestra_fleet_statusB
Report link state for every harness in the OrquestraAI fleet.
Inputs: no named parameters. Returns: object
orquestra_list_mcpsA
List registered MCP servers with their global and per-harness state.
Inputs: no named parameters. Returns: result
orquestra_list_skillsB
List every skill in the vault with token weight and whether a scope projects it.
Inputs: scope. Returns: result
orquestra_read_instructionsA
Return the master ~/.orquestra/AGENTS.md that every harness inherits.
Inputs: no named parameters. Returns: result
orquestra_toggle_mcpB
Enable or disable one MCP server, then redeploy the catalog to every harness.
Inputs: mcp_id (required), scope, enabled. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool targets a distinct resource (skills, MCPs, instructions, fleet) with clear actions, so misselection is unlikely. Minor overlap where toggle_mcp and create/delete_mcp both affect MCP activation, and enable/disable vs create for skills could blur slightly.
Consistent orquestra_ prefix with a verb_noun convention (list_skills, enable_skill, create_mcp, delete_mcp). Only deviation is fleet_status, which uses noun_noun rather than an action verb.
12 tools is well-scoped for a skill/MCP/instruction management server, with balanced CRUD sets for two resource types plus reading and status operations, each earning its place.
Skills and MCPs both have full lifecycle coverage (create/list/enable/delete) and instructions can be read and appended. Minor gaps: no update/edit for skill content or mission rules, only create/delete and append.
Related MCP Connectors
Fleet entry point: 22 hosted MCP servers, 160 tools, 110 free. Searches 138 agent skills.
Skills, agents and memory in the cloud, plus a gateway to your other MCP servers.
Run and manage H Company's Computer-Use Agents from any MCP client.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables Claude Code sessions to query fleet status, focus terminals, and manage sessions programmatically via MCP tools.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables remote monitoring and control of a local Claude Code agent fleet via MCP, with voice-friendly status summaries and strict command allowlisting.12 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables managing a canonical library of agent skills and MCP servers, syncing them across multiple development harnesses, and adding, importing, or configuring them through MCP tools.218 npmMIT
- AlicenseAqualityBmaintenanceEnables coding agents to discover, message, poll, cancel, and register remote A2A agents via MCP, with an optional read-only local activity dashboard.5MIT