Palace Server evaluation brief

Shared memory for AI coding agents, self-hosted on your infrastructure. Describes Palace Server v0.6.0.

What it is

Palace Server gives a team's AI coding tools (Cursor, Claude Code, Codex, Claude Desktop) a shared, persistent memory over MCP. It is a single Rust service (Docker image or binary) backed by your own PostgreSQL with pgvector. Nothing is hosted by us.

Network connections

DirectionToWhenData sent
InboundPalace Server, port 8080 (HTTP)Developers' AI tools (MCP) and the admin UIMemory reads and writes, with a bearer API token
Outboundhuggingface.coNever with the Docker image, which includes the embedding model. Binary installs fetch it once unless pointed at a local copyNone of your data; a plain file download
Outboundapi.palacememory.comOff by default. If enabled, once a day to renew the licenseThe license key only
OutboundYour OIDC identity providerOnly if SSO is configured, during sign-inStandard OIDC sign-in requests

Nothing else: no telemetry, no analytics, no update checks. Logs go to stdout. Serve port 8080 behind your reverse proxy, which terminates TLS.

Identity & access

  • AI tools authenticate with per-user API tokens, stored hashed (Argon2id), revocable and expiring.
  • SSO sign-in via OIDC (authorization code + PKCE), with identity-token signatures checked against your provider's published keys.
  • Roles: owner, admin, security auditor, maintainer, developer, read-only agent.
  • Postgres row-level security separates organizations. The starter kit connects as a dedicated non-superuser role so it is always enforced.

Data handling

  • All data lives in your Postgres. Back up with standard pg_dump.
  • Embeddings computed locally (ONNX Runtime, all-MiniLM-L6-v2). No third-party AI API is called.
  • Encrypted database connections (sslmode=verify-full). Encryption at rest is provided by your database and disk setup.
  • Audit log of memory writes; usage events for every tool call.

Licensing

  • Ed25519-signed license key, verified offline on every start. No call home required.
  • After expiry, a running server keeps working for a grace period (default 14 days), then stops serving memory tools. It will not start with an expired key.
  • Seats are enforced when new SSO users sign in.

Deployment & supply chain

  • Docker image ghcr.io/ancientice/palace-server (linux/amd64, linux/arm64) with the embedding model included, so it runs with no internet access. Binaries for Linux (x86_64, arm64) and macOS (arm64).
  • Configured by environment variables; database migrations run on startup. Health checks: /healthz, /readyz.
  • SHA-256 checksums on every release. Dependencies checked with cargo-deny against a license allow-list.

Known limitations

  • SSO is OIDC only; SAML is not supported.
  • The audit log records memory writes. Sign-ins, API-key changes and deletions are not audited yet.
  • Release downloads have SHA-256 checksums but are not signed, and no SBOM is published yet.
  • Prometheus metrics at /metrics have no authentication. Restrict that path at your proxy.

Evaluate it

Free 60-day evaluation license for up to 10 seats, no credit card. Start it at palacememory.com/pricing. For a larger pilot or security questions, write to help@palacememory.com. Install guide: palacememory.com/docs.