Titentiten.devInstall
The connection guide

An MCP memory server for durable agent context.

An MCP memory server gives compatible agents a standard tool interface for durable memory. Titen runs one on this machine with nothing to configure, and serves the same tools over an authenticated HTTP endpoint when several agents share one store.

0 config
local stdio mode needs no key
18 tools
nine titen_* plus nine reference-server names
4 revisions
supported MCP protocol versions
01

What does an MCP memory server do?

MCP lets an agent host discover and call tools through a standard JSON-RPC handshake. The host does not need a Titen-specific client library to remember an observation, compile context, save a checkpoint, or hand work to another principal.

It does not need a running server either. With no environment set, titen mcp opens or creates ~/.titen/memory.db, writes a real organization, workspace, project and owner into it, and speaks MCP over stdio in the same process — no HTTP hop, no key to paste, no outbound call. Retrieval there is lexical FTS5, so no embedding provider or model is involved.

A store shared by several agents does need a security boundary, and that path is unchanged. The HTTP endpoint takes the same bearer keys as REST and requires the mcp:call scope, so each agent should receive a separate key with only the authority it needs.

Read the complete MCP contract →
02

Install and connect Titen

The CLI runs on Bun, so the installer is the path that works on a machine that has neither: it adds Bun 1.2+ when missing. Use npx only when Bun is already on PATH. Take the served path when you want: a long-running instance with its own keys, reachable over HTTP by more than one agent. The MCP endpoint then listens beside the REST API, and titen mcp bridges to it once TITEN_MCP_URL and TITEN_API_KEY are both set.

# Works from nothing: adds Bun 1.2+ when missing, then Titen.
curl -fsSL https://titen.dev/install.sh | bash
titen mcp                                   # local store, no key, no server

# Already have Bun? This one line is the whole setup.
npx titen-memory mcp

# Or serve it to several agents over HTTP.
titen bootstrap --org 'My Org'
titen serve

# MCP endpoint
http://127.0.0.1:8787/mcp
  • Local mode reads no key at all; it fails rather than guessing if only one of TITEN_MCP_URL and TITEN_API_KEY is set.
  • For the served endpoint, send the bearer key in the Authorization header.
  • Keep keys in the host secret or environment configuration, never in a repository file.
  • Grant mcp:call deliberately because it includes write-capable tools.
Choose an installer →
03

The nine MCP memory tools

The tool list is intentionally small. It covers the memory loop and the minimum coordination state an agent team needs.

Titen also serves the nine tool names of @modelcontextprotocol/server-memory, with that server’s argument and response shapes, so an initialize handshake advertises eighteen tools in total. That is an addition rather than a mode: switching from the reference server is one line of configuration, and the nine titen_* tools are unchanged.

  • titen_project_resolve maps a Git origin to a shared project id.
  • titen_remember appends an observation.
  • titen_consolidate turns cited observations into versioned claims.
  • titen_compile builds a bounded context pack.
  • titen_feedback records whether recalled context helped.
  • titen_checkpoint_save and titen_checkpoint_get preserve expiring task state.
  • titen_lease_acquire prevents silent duplicate work when agents cooperate.
  • titen_handoff transfers a subject to another principal.
Understand checkpoint state →
04

When to use MCP and when to use REST

Use MCP for the nine ordinary agent operations. The MCP tools call the same validated handlers as REST, including project scope, semantic retrieval, provenance, trust, conflicts, and idempotency.

Use REST for administration and wider workflow surfaces that are not agent tools: keys, memberships, governance, retention, federation, webhooks, exports, events, and Memory Atlas.

A deployment can expose both at the same origin. Each route still authenticates and authorizes the caller before retrieval or mutation.

Compare the REST API →