# Configuration

The settings KuraDB reads from `~/.config/kuradb/config.json` and the commands that change them.

## config.json

The file is optional; a missing file means all defaults. It is written with indentation by the CLI and read once when the daemon starts.

```json
{
  "port": 23456,
  "remote": true
}
```

| Key | Type | Default | Set by | Effect |
|---|---|---|---|---|
| `port` | integer | Omitted: random port 10000 to 65535 | `kura port set <port>` / `kura port clear` | Fixed HTTP port on `127.0.0.1` |
| `remote` | boolean | `false` | `kura remote enable` / `kura remote disable` | Mounts MCP over HTTP at `/mcp` |

Fields at their zero value are omitted from the file. If the file exists but cannot be parsed, the daemon logs a warning and uses the defaults.

## When Changes Apply

| Change | Applies |
|---|---|
| `kura port set <port>` | Immediately; the daemon is stopped and started again (started even if it was not running) |
| `kura port clear` | On the next manual restart (`kura stop`, then `kura`) |
| `kura remote enable` / `disable` | Immediately when a daemon is running; otherwise on the next start |
| `kura add <name>` | On the next daemon start; databases are not hot-loaded |

`kura mcp` processes read `db.json` when they start, so restart the MCP client after adding a database.

## Environment

KuraDB reads no environment variables. All state lives under `~/.config/kuradb/`, resolved from the user's home directory; see [Data Layout](/data-layout).

## Related Pages

- [Daemon Lifecycle](/daemon)
- [MCP Server](/mcp-server)
