Install the Python MCP sidecars
Install the Kumiho and Operator Python MCP sidecars that power graph memory and orchestration.
Revka ships as a single revka binary, but two of its core capabilities — persistent graph memory and multi-agent workflow orchestration — are delivered by Python MCP (Model Context Protocol) sidecars that run alongside the binary:
| Sidecar | Launcher path | Config key | What it powers |
|---|---|---|---|
| Kumiho MCP | ~/.revka/kumiho/run_kumiho_mcp.py | [kumiho].mcp_path | Persistent graph memory (kumiho_memory_* tools) |
| Operator MCP | ~/.revka/operator_mcp/run_operator_mcp.py | [operator].mcp_path | Workflow execution, teams, and orchestration tools |
revka onboard installs both sidecars automatically at the end of the wizard, so most users never run anything on this page by hand. Use this page when you need to (re)install the sidecars on their own, install from a source checkout, point at a specific Python interpreter, or fix a partial install that revka doctor flagged.
Prerequisites
Section titled “Prerequisites”- Python 3.11+ on
PATH. The installer warns (but does not abort) if it detects an older interpreter. - Network access to PyPI — the installer runs
pip installinto isolated per-sidecar virtualenvs. - A reachable Kumiho control-plane URL and auth token for actual persistence. These are collected by
revka onboardand written to~/.revka/.env. Without them the Kumiho MCP process still starts but degrades to stateless operation. - (Optional) Node.js 18+ / npm — only needed for the
--with-session-managerSession Manager sidecar.
Install with the binary (recommended)
Section titled “Install with the binary (recommended)”If revka is already on your PATH, the cross-platform installer is a single command:
revka install --sidecars-onlyThis provisions both sidecars: it detects Python, creates isolated venvs at ~/.revka/kumiho/venv/ and ~/.revka/operator_mcp/venv/, pip-installs the packages, materializes the launcher scripts, and syncs the Operator’s orchestration skills into ~/.revka/skills/. The Operator MCP package source is embedded in the revka binary at compile time, so nothing is downloaded for it at runtime.
The command is idempotent — re-running it is safe and never overwrites your config.toml, .env, or a user-authored launcher.
| Flag | Effect |
|---|---|
--sidecars-only | Required. Installs only the sidecars (the full install flow is handled by install.sh). |
--skip-kumiho | Skip the Kumiho MCP sidecar. |
--skip-operator | Skip the Operator MCP sidecar. |
--with-session-manager | Also install the Node.js Session Manager sidecar (requires npm). See below. |
--dry-run | Print the planned actions without executing anything. |
--python <path> | Use an explicit Python interpreter, e.g. --python /usr/bin/python3.11. |
--from-source <repo> | Dev mode: install the Operator MCP from a local Revka checkout. See below. |
# Preview the plan without changing anythingrevka install --sidecars-only --dry-run
# Force a specific interpreterrevka install --sidecars-only --python /usr/bin/python3.11Install from a source checkout
Section titled “Install from a source checkout”If you do not have the revka binary yet (for example, you cloned the repo to build from source), run the bundled installer scripts directly:
./scripts/install-sidecars.shscripts\install-sidecars.batThese scripts produce the same ~/.revka/ layout as revka install --sidecars-only and are also idempotent. They accept --skip-kumiho, --skip-operator, --dry-run, and --python <path>. The same logic runs automatically from ./install.sh and setup.bat when a checkout contains the Operator source and the launchers are missing; disable it with ./install.sh --skip-sidecars.
The Operator install prefers the canonical operator-mcp/Makefile (make install) when make is available, and falls back to a minimal python -m venv + pip install + copy otherwise. Windows always uses the fallback path (with robocopy in place of rsync).
Kumiho MCP install detail
Section titled “Kumiho MCP install detail”The Kumiho sidecar install does the following:
-
Creates the venv at
~/.revka/kumiho/venv/. -
Installs the Kumiho package with the MCP extra:
Terminal window ~/.revka/kumiho/venv/bin/pip install 'kumiho[mcp]>=0.9.20'The
[mcp]extra pulls inmcp>=1.0.0andhttpx>=0.27.0, which the stdio server inkumiho.mcp_serverrequires. -
Writes
~/.revka/kumiho/run_kumiho_mcp.py— a thin shim that re-executespython -m kumiho.mcp_serverout of that venv. (The binary installer also writes thekumiho_sdk_bridge.pyhelper used for low-latency loopback reads.)
kumiho[mcp] pin
Section titled “kumiho[mcp] pin”The version pin is kumiho[mcp]>=0.9.20 and is kept in sync with operator-mcp/requirements.txt. The pin is fixed in the binary, so re-running revka install --sidecars-only after a revka update is the simplest way to pick up a newer compatible Kumiho release.
Manual install
Section titled “Manual install”If you prefer to set up the Kumiho venv by hand:
mkdir -p ~/.revka/kumihopython3 -m venv ~/.revka/kumiho/venv~/.revka/kumiho/venv/bin/pip install --upgrade pip~/.revka/kumiho/venv/bin/pip install 'kumiho[mcp]>=0.9.20'Then point [kumiho].mcp_path in ~/.revka/config.toml at your launcher (or leave it unset to use the default location).
The kumiho_memory upgrade gap
Section titled “The kumiho_memory upgrade gap”There are two Python packages involved in graph memory:
kumiho— low-level CRUD plusmemory_store/memory_retrieve.kumiho_memory— the high-level memory reflexes the agent’s session bootstrap actually calls:kumiho_memory_engage,kumiho_memory_reflect,kumiho_memory_recall,kumiho_memory_consolidate, andkumiho_memory_dream_state.kumiho.mcp_serverauto-discovers and merges these tools in when the package is importable.
The source script install-sidecars.sh installs both packages:
~/.revka/kumiho/venv/bin/pip install 'kumiho[mcp]>=0.9.20' 'kumiho_memory>=0.5.0'Older installs (and the binary’s kumiho[mcp] pin path) may have only kumiho, not kumiho_memory. When that happens, the agent fires high-level memory tool calls that don’t exist, and advanced memory reflexes are disabled. revka doctor reports this in its sidecars category with a warning. Close the gap with:
~/.revka/kumiho/venv/bin/python -m pip install 'kumiho_memory>=0.5.0'On Windows, the venv interpreter is at ~/.revka/kumiho/venv/Scripts/python.exe.
Operator MCP install detail
Section titled “Operator MCP install detail”The Operator sidecar creates ~/.revka/operator_mcp/venv/, pip-installs the Operator package, syncs the flat package tree (used by the dashboard and scheduler readers) into ~/.revka/operator_mcp/, copies orchestration skills into ~/.revka/skills/, and writes the launcher ~/.revka/operator_mcp/run_operator_mcp.py.
Updates preserve runtime state — the sync step keeps existing .json, .jsonl, .db, venv/, session-manager/, and runlogs/ files in place, so re-running the installer does not wipe your workflow checkpoints or run history.
--from-source dev mode
Section titled “--from-source dev mode”For iterating on the Python side without rebuilding the Rust binary (whose embedded Operator snapshot is fixed at compile time), point the installer at a local Revka repo root:
revka install --sidecars-only --from-source /path/to/RevkaThe installer uses <path>/operator-mcp/ as the pip install source instead of the embedded copy. It validates the path by checking for operator-mcp/pyproject.toml and errors out if that file is missing.
Node Session Manager
Section titled “Node Session Manager”The Session Manager is an opt-in Node.js sidecar that relays live DAG / timeline overlay events during workflow runs:
revka install --sidecars-only --with-session-managerIt is off by default on purpose. The Session Manager drives spawned agents through the Claude Agent SDK, which accepts only ANTHROPIC_API_KEY (pay-per-token) and cannot use a Claude Pro/Max subscription. The default path uses direct subprocess spawning (claude --print + codex exec), which routes spawned-agent calls through each CLI’s own OAuth — typically much cheaper. The Operator runs fine without the Session Manager; you just won’t get the streaming live-execution overlay.
A Session Manager install failure (missing npm, network blip) is non-fatal — the Operator falls back to subprocess mode and the rest of the sidecar install still succeeds.
Verify the install
Section titled “Verify the install”The end-to-end check is revka doctor, whose sidecars category confirms the Kumiho venv Python exists, that kumiho is importable, and that kumiho_memory is importable (warning if missing):
revka doctorSidecar status check (manual)
Section titled “Sidecar status check (manual)”Internally, Revka checks each sidecar by confirming that both its venv interpreter and its launcher script exist. You can reproduce that check directly:
ls ~/.revka/kumiho/venv/bin/python3ls ~/.revka/kumiho/run_kumiho_mcp.pyls ~/.revka/operator_mcp/venv/bin/python3ls ~/.revka/operator_mcp/run_operator_mcp.py
# Package import smoke tests~/.revka/kumiho/venv/bin/python3 -c 'import kumiho; print(kumiho.__version__)'~/.revka/operator_mcp/venv/bin/python3 -c 'import operator_mcp; print("ok")'Get-Item ~\.revka\kumiho\venv\Scripts\python.exeGet-Item ~\.revka\kumiho\run_kumiho_mcp.pyGet-Item ~\.revka\operator_mcp\venv\Scripts\python.exeGet-Item ~\.revka\operator_mcp\run_operator_mcp.pyYou can also confirm the MCP tools loaded by visiting the gateway’s tools endpoint (http://127.0.0.1:42617/tools) and checking that kumiho_memory_* and the Operator workflow tools appear.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Fix |
|---|---|
Logs show Kumiho MCP script not found: ~/.revka/kumiho/run_kumiho_mcp.py | Run revka install --sidecars-only (or ./scripts/install-sidecars.sh). |
ModuleNotFoundError: kumiho.mcp_server or ModuleNotFoundError: mcp | Reinstall with the extra: ~/.revka/kumiho/venv/bin/pip install -U 'kumiho[mcp]'. |
revka doctor warns that kumiho_memory is missing | ~/.revka/kumiho/venv/bin/python -m pip install 'kumiho_memory>=0.5.0'. |
| MCP tools list is empty in the dashboard | Check ~/.revka/logs/ for a stderr trail; confirm the Kumiho auth token and control-plane URL are present in ~/.revka/.env (written by revka onboard). |
| Kumiho control plane unreachable | Verify [kumiho].api_url in ~/.revka/config.toml points at a reachable endpoint. |
run_operator_mcp.py crashes with ModuleNotFoundError: operator_mcp | Re-run the installer — the package tree likely failed to copy. |
| Live DAG overlay empty during workflow runs | Session Manager not installed — re-run with --with-session-manager (needs npm). |
| No working Python interpreter found | Install Python 3.11+, or pass --python /path/to/python. |