# Attestor MCP server

> Provides a governed memory layer for multi-agent systems featuring role-based access, provenance, and temporal replay.

- Repository: https://github.com/bolnet/agent-memory
- Page: https://hostedmcp.org/servers/bolnet/agent-memory
- Transport: stdio
- Stars: 14
- License: MIT
- Latest version: 0.1.3

## Install

### Claude Code

```sh
claude mcp add --env 'NEO4J_PASSWORD=<YOUR_NEO4J_PASSWORD>' --env 'OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>' --env 'OPENROUTER_API_KEY=<YOUR_OPENROUTER_API_KEY>' agent-memory -- uvx memwright
```

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

```json
{
  "mcpServers": {
    "agent-memory": {
      "command": "uvx",
      "args": [
        "memwright"
      ],
      "env": {
        "NEO4J_PASSWORD": "<YOUR_NEO4J_PASSWORD>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>"
      }
    }
  }
}
```

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

```json
{
  "servers": {
    "agent-memory": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "memwright"
      ],
      "env": {
        "NEO4J_PASSWORD": "<YOUR_NEO4J_PASSWORD>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>"
      }
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"agent-memory","type":"stdio","command":"uvx","args":["memwright"],"env":{"NEO4J_PASSWORD":"<YOUR_NEO4J_PASSWORD>","OPENAI_API_KEY":"<YOUR_OPENAI_API_KEY>","OPENROUTER_API_KEY":"<YOUR_OPENROUTER_API_KEY>"}}'
```

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

```json
{
  "mcpServers": {
    "agent-memory": {
      "command": "uvx",
      "args": [
        "memwright"
      ],
      "env": {
        "NEO4J_PASSWORD": "<YOUR_NEO4J_PASSWORD>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>"
      }
    }
  }
}
```

### Codex

```sh
codex mcp add agent-memory --env 'NEO4J_PASSWORD=<YOUR_NEO4J_PASSWORD>' --env 'OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>' --env 'OPENROUTER_API_KEY=<YOUR_OPENROUTER_API_KEY>' -- uvx memwright
```

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

```toml
[mcp_servers.agent-memory]
command = "uvx"
args = ["memwright"]

[mcp_servers.agent-memory.env]
NEO4J_PASSWORD = "<YOUR_NEO4J_PASSWORD>"
OPENAI_API_KEY = "<YOUR_OPENAI_API_KEY>"
OPENROUTER_API_KEY = "<YOUR_OPENROUTER_API_KEY>"
```

### Gemini CLI

```sh
gemini mcp add -s user -e 'NEO4J_PASSWORD=<YOUR_NEO4J_PASSWORD>' -e 'OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>' -e 'OPENROUTER_API_KEY=<YOUR_OPENROUTER_API_KEY>' agent-memory uvx -- memwright
```

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

```json
{
  "mcpServers": {
    "agent-memory": {
      "command": "uvx",
      "args": [
        "memwright"
      ],
      "env": {
        "NEO4J_PASSWORD": "<YOUR_NEO4J_PASSWORD>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `NEO4J_PASSWORD` | no | yes | Neo4j database password (default: memwright) |
| `OPENAI_API_KEY` | no | yes | OpenAI API key for embeddings (alternative to OpenRouter) |
| `OPENROUTER_API_KEY` | no | yes | OpenRouter API key for embeddings (required for semantic search) |
| `ATTESTOR_DISABLE_LOCAL_EMBED` | no | no |  |
| `ATTESTOR_EMBEDDING_MODEL` | no | no |  |
| `ATTESTOR_EMBEDDING_PROVIDER` | no | no |  |
| `ATTESTOR_LIVE_PG` | no | no |  |
| `PG_CONNECTION_STRING` | no | no | PostgreSQL connection string for pgvector (default: postgresql://memwright:memwright@localhost:5432/memwright) |

## FAQ

### What is Attestor?

Attestor is a self-hosted memory service designed for multi-agent production meshes that enforces role-based access, provenance, and auditable deletion.
