Skip to main content

Prerequisites

Download & run

mkdir cyrnel
cd cyrnel
curl -O https://raw.githubusercontent.com/actelos/cyrnel/main/docker-compose.yml
docker compose up
This pulls pre-built images from GitHub Container Registry and starts three services:
ServicePortPurpose
API9371Core HTTP server
Web UI9372Dashboard for managing cyrnel
MCP9373MCP server for AI agent integration
First pull may take a minute. Subsequent starts are instant.

Configuration

Set environment variables by creating a .env file alongside docker-compose.yml:
CYRNEL_API_KEY=sk-your-key-here
CYRNEL_SECRETS_KEY=your-base64-32-byte-key

Key variables

VariableDefaultWhat it does
CYRNEL_API_KEY(unauthenticated)Bearer token required on every API request
CYRNEL_SECRETS_KEY(required)AES-256-GCM key for encrypting service secrets
CYRNEL_DB_URLfile:/data/cyrnel.dbDatabase connection (SQLite by default)
LOG_LEVELinfotrace, debug, info, warn, error, fatal, silent
You must set CYRNEL_SECRETS_KEY before storing any service secrets. The shipped default is a block of zero bytes, equivalent to no encryption. Generate a real key:
openssl rand -base64 32

Full reference

All available variables are documented in the per-service example env files:

Using the MCP Server

The MCP server exposes cyrnel’s tools so your AI agent can discover services, inspect tool schemas, create and run processes, and read results. Each agent below shows two connection methods:
  • HTTP: point the agent at the Docker MCP server (localhost:9373)
  • stdio: run the MCP server as a Docker child process
Open claude_desktop_config.json (Claude → Settings → Developer → Edit Config).HTTP:
{
  "mcpServers": {
    "cyrnel": {
      "type": "url",
      "url": "http://localhost:9373"
    }
  }
}
For Docker Desktop on macOS/Windows, use host.docker.internal:
{
  "mcpServers": {
    "cyrnel": {
      "type": "url",
      "url": "http://host.docker.internal:9373"
    }
  }
}
stdio:
{
  "mcpServers": {
    "cyrnel": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT=stdio", "-e", "CYRNEL_API_URL=http://host.docker.internal:9371", "ghcr.io/actelos/cyrnel/mcp:latest"]
    }
  }
}
The MCP server requires the API to be running and reachable. In the Docker setup this is handled automatically, the MCP container connects to the API container over the internal Docker network.
Last modified on June 25, 2026