Browse documentation

Keep · alpha

Run Keep with Docker

Keep gives your agents one shared store for documents, decisions, and reusable notes.

Run one service and connect your MCP clients to it. Documents remain in a persistent Docker volume.

Install and connect

Check the requirements

Use an x64 computer with Docker Engine and Compose, or Docker Desktop in Linux container mode.

  • The image supports linux/amd64. It includes its Linux runtime and needs no Node.js installation on the host.
  • Use sacrorum/keep:0.1.0-alpha.3-ubuntu26.04 from Docker Hub. This image includes Ubuntu 26.04.
  • For native executables or npm, use the native installation guide.

Get the Compose files

Download the public configuration and keep it for later updates.

git clone https://github.com/glidermcp/keep.git
cd keep/docker

Create your private token

Generate the token once and save it in secrets/keep_http_token.

  • Follow the Linux or PowerShell commands to create the file without displaying its value.
  • The token grants full access to the store. Keep it outside chat, source control, and shared logs.
  • The Compose secret supplies KEEP_HTTP_TOKEN_FILE. Keep the file readable by the container user, UID 10001.
  • Reuse this token after a restart or update. Each client uses the same value.

Start the service

Start Keep and wait for the service to become healthy.

  • The supplied configuration exposes http://127.0.0.1:7340/mcp only on this computer.
  • Docker restarts the service unless you stop it explicitly. Docker Desktop must itself start before the service can return.
  • The named data volume contains /data/documents. Container replacement preserves this volume.
docker compose up -d
docker compose ps

Connect your clients

Configure one HTTP connection in each MCP client.

  • This example uses the common mcpServers format. Use your client’s equivalent URL and Bearer-token fields.
  • Replace <token> with the saved value. Prefer the client’s secret storage when available.
  • Remove a previous stdio registration that starts another process for the same store.
  • Ask your agent: “Show the spaces and collections in Keep. Do not change any documents.”
  • After the connection works, install the Keep skill. It starts no server.
{
  "mcpServers": {
    "keep": {
      "url": "http://127.0.0.1:7340/mcp",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

Preserve your documents

Back up the store before you change the image version.

  • Use the backup and update procedure. Its optional helper requires Python 3.
  • The helper stops Keep before it copies the store. It can restore into a separate, empty volume.
  • Preserve the Compose project name, data volume, and token. Never use docker compose down -v for an update.
  • The backup excludes secrets, configuration, and the separate model cache. Preserve your configuration and secrets separately.

Optional setup

Use your domain through Tailscale

Connect from your other computers through a private HTTPS address.

  • Follow the private-domain guide for Tailscale, Caddy, and Cloudflare DNS.
  • Your clients can retain the same domain when you move Keep to another server.

Enable local semantic search

Full-text search works without a model. Semantic search is optional.

  • Follow the semantic setup to enable it and select /models/snowflake-arctic-embed-xs.
  • The first enabled start can download about 86 MiB. The separate model volume retains the downloaded files.

Alpha limits

  • Only one process can open a store. Every connected client with the token can access the same documents.
  • Keep has no account or shared-license integration in this alpha. A mounted license directory does not activate a subscription.
  • Keep rejects browser Origin headers. Use an MCP client rather than browser JavaScript.
  • See the technical reference for HTTP rules, document limits, and recovery.