
The Docker Companion generates a `docker-compose.yml` that bridges local MCP servers (designed for stdio) to HTTP/SSE endpoints that Daneel can connect to — alongside optional Ollama for local LLM inference.

## Prerequisites

- [Docker Desktop](https://www.docker.com/products/docker-desktop/) installed and running
- Basic familiarity with Docker Compose

## Configure presets

Open **Settings > Docker** in Daneel. The configuration is organized as presets:

### Companion sidecar (always included)

The Companion sidecar provides service discovery and health checks by monitoring the Docker socket. It's always included in the generated compose file.

- **Port:** 8809 (default)
- **Image:** `ghcr.io/daneel-ai/companion:latest`

### Ollama (optional)

Enable the Ollama preset to include a local Ollama container:

- **Port:** 11434 (default)
- **Image:** `ollama/ollama:latest`
- CORS is pre-configured for Chrome extension access

### MCP Servers (optional, beta)

Add local MCP servers from the template catalog:

| Template | Description |
|----------|-------------|
| Filesystem | Browse and search local files |
| GitHub | Repository operations |
| SQLite | Query local databases |
| PostgreSQL | Query PostgreSQL databases |
| Brave Search | Web search |
| Puppeteer | Browser automation |
| Everything | Local file search (Windows) |
| Memory | Persistent knowledge store |

You can also add custom servers by entering the command (e.g., `npx -y my-mcp-server`).

Each MCP server runs in a `supercorp/supergateway` container that bridges stdio to SSE. Ports are assigned sequentially starting from 8810.

## Export and run

1. Review the YAML preview in the settings panel.
2. Click **Export**. Daneel:
   - Downloads the `daneel.compose.yml` file
   - Auto-registers each MCP server as `http://localhost:{port}/sse` in Daneel's MCP server list
3. Run the stack:

```bash
docker compose -f daneel.compose.yml up -d
```

4. Daneel detects the running containers via the Companion sidecar's service discovery endpoint.

## How it works

The `supercorp/supergateway` image wraps any stdio-based MCP server as an HTTP/SSE endpoint:

```
Your MCP server (stdio) → supergateway container → HTTP/SSE on localhost:{port}
    ↑                                                      ↓
    └── Daneel connects here, just like any remote MCP server
```

Each container runs: `--stdio "<command>" --port 8000 --cors`

For Python-based servers, the `:uvx` variant of supergateway is used automatically.

## Next steps

- [Connect MCP servers](/how-to/mcp-server/) once your stack is running
- See the [AI Providers reference](/reference/providers/) for Ollama configuration details
