# Panella MCP server

> Provides a governed, self-hosted memory layer for AI agents where writes are proposed by agents and must be approved by an authorized human.

- Repository: https://github.com/panellatech/panella
- Page: https://hostedmcp.org/servers/panellatech/panella
- Transport: remote
- Stars: 0
- License: Apache-2.0
- Latest version: 0.2.1

## Install

### Claude Code

```sh
claude mcp add panella -- uvx panella
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "panella": {
      "command": "uvx",
      "args": [
        "panella"
      ]
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "panella": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "panella"
      ]
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"panella","type":"stdio","command":"uvx","args":["panella"]}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "panella": {
      "command": "uvx",
      "args": [
        "panella"
      ]
    }
  }
}
```

### Codex

```sh
codex mcp add panella -- uvx panella
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.panella]
command = "uvx"
args = ["panella"]
```

### Gemini CLI

```sh
gemini mcp add -s user panella uvx -- panella
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "panella": {
      "command": "uvx",
      "args": [
        "panella"
      ]
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `PANELLA_CONFIG_DIR` | no | no |  |

## FAQ

### How does Panella ensure agent writes are controlled?

Panella uses a default-deny policy where an agent's MCP write can only propose a memory, which then requires approval from a named person before it becomes durable.

### Can an AI agent approve its own memory entries?

No, Panella implements two-factor approval where the agent's credential is for routing admission only, and a separate operator-held token is required for approval.

### Where is the data stored?

Panella is designed to be self-hosted on your own hardware using Docker Compose and SQLite.

### How is the integrity of approved memories maintained?

Every approval decision is appended to a tamper-evident hash chain, and the system verifies this receipt before making any write durable.
