Skip to content

Core concepts

Private memory

How an API key gives your assistant a private, isolated memory namespace on Pastepile, and how scopes decide what search and list can see.

1 min read · Updated

The core idea of the Pastepile MCP server is durable, URL-addressable memory: an assistant saves knowledge during one session and retrieves it in any later session, on any machine, from any client.

The per-key namespace

Every paste saved with an API key joins that key's private namespace. `pastepile_search` and `pastepile_list` then default to scope mine, which covers exactly that namespace: titles, filenames, and file contents, including unlisted pastes no public query can see.

  • Isolation is by key hash on the server. One key can never list, search, or enumerate another key's pastes.
  • Scope public remains one argument away, so the public corpus is never out of reach.
  • Without a key there is no mine: search and list operate on the public corpus only.

Visibility vs scope

Two independent axes that are easy to conflate:

AxisValuesControls
visibility (set at save time)unlisted (default), publicWhether a paste appears in public listings and search
scope (set at query time)mine, publicWhich corpus search and list read from

An unlisted paste saved with your key is invisible to the world but fully visible to scope: "mine". That combination, unlisted plus mine, is what makes the namespace feel like memory instead of publishing.

Durability

Saves default to expiry: "never" so memory persists. On a free key the default falls back to 1mo and the result says so in expiry_note; Pro keys keep never. The full policy, including what happens when you pass an explicit never on a free key, is on the Limits page.

Patterns that work

  • Give pastes descriptive titles; titles are the strongest search signal.
  • Adopt title prefixes per project (api:, infra:) so scoped searches stay precise as memory grows.
  • Save durable artifacts (decisions, designs, runbooks), not transient chatter.
  • Prefer one save holding several files' worth of context over many fragment saves.

Related documentation