Skip to content

Getting started

Four steps, then a new chat

Artifactum only helps if objects survive the thread you are in. The product path is short: connect, let initialize set the standing order, store one object, then get it by key in a new session.

1. Connect a client

Point a Streamable HTTP MCP client at https://mcp.artifactum.ai/. Hosted customers sign in with the account Estes provisions (see Connect). Dedicated / single-tenant customers bring their own OAuth or identity provider.

Cursor has a proven golden path (connect + store + get + soft-delete) — Cursor setup. Grok Web, Grok iOS, and Grok Build CLI (Bearer) are also pass. Claude.ai custom connector is pass*: typical read is still the download URL; Claude cannot GET it, so use get_content_for_llm (known issues). Claude Code, Claude Desktop, ChatGPT MCP, and Codex are not a public pass.

2. Initialize standing order

On MCP initialize, Artifactum returns a short standing order in InitializeResult.instructions. Clients that inject that field should treat the vault as default durable storage — not a tool you only call when asked.

The standing order says: if you would lose it at compression, store it. Reuse the same logical_key to update (store upserts; same content hash is a no-op). Prefer get-by-key over asking the human to re-upload. Do not store secrets. Tell the human the key once, in plain language.

A longer operational bootstrap exists as get_mcp_guidance / get_mcp_guidance_tool. That does not replace initialize.

3. Store one object

Canonical write for files:

  1. get_upload_url(logical_key, content_type, filename?)
  2. HTTP PUT raw bytes to the returned URL (match required headers).
  3. store with storage_type=public_url, metadata that includes source_uri, title, and a one-line summary — no file body in the tool call.

Keys are dot-notation owner.category.slug, for example acme.project.notes.roadmap-v1. Small plain text may use inline store; binaries must use the upload URL. Never paste long base64 into the chat.

4. New session: get by key

Open a new chat. Call get_content (or retrieve) with the same key. You should get metadata plus a short-lived download_url. HTTP GET that URL for bytes. That is the default typical read, and the proof the vault — not the previous transcript — is the source of truth.

Only if this host cannot HTTP GET that URL (Claude-class): use opt-in get_content_for_llm. Small text-like objects may also set include_content=true on exact-key get — that is not the default, and never for PDFs/images. Do not tell Claude to “open the URL”. Do not add delivery= on get_content.

If you do not know the key, list_content by prefix or search_content. Soft-delete is delete_content; restore within retention with undelete_content.

Human UI

The authenticated vault browser is app.artifactum.ai (alias lens.artifactum.ai). It is an MCP client of the same server. It does not invent a second API.