ampup-memory serve listens on port 8080 by default (ampup-memory serve [scope] [port]). Bodies are JSON. On a server
with sign-in, send Authorization: Bearer <token or msk_ key> and select memory with x-memstore-org and
x-memstore-team headers (or ?org=&team=). A client that isn’t an MCP client can use a member’s personal key
(ampup-memory apikey create --personal), which acts as them on the memory routes below
(security-model.md). serve --local takes no credentials.
Examples below run against ampup-memory serve --local on localhost:8080.
The learning loop
/remember:aclentries must be ones the caller holds. Unset, the note is readable by everyone who reads the scope;"mine": truemakes it the caller’s alone (refused for a caller with nouser:entry). The episode’s source records its author asmcp:remember_memory:<caller>:<source>.document(a key understarter/) writes a new version of that document./sessions/endand/advicein a session: only the person who started the session may use it; anyone else gets 404./sessions/prsreports what became of a pull request a session opened or pushed to (merged,closed,reverted,regression). A revert or a regression marks its sessions failed; a merge marks them succeeded (0.5, then 1 once it has stood 14 days).
Reading
The read routes use a row protocol so the same endpoints serve as Snowflake service functions
(
{"data": [[row, args…]]}, answered as {"data": [[row, result]]}) and BigQuery remote functions
({"calls": [[args…]]}, answered as {"replies": [...]}).
/browse operations: ls (a folder’s children, paged with limit and after), episode (text and the facts
citing it), branches, schema, facts, advice, scopes. A path is a JSON array of segments:
Writing
/ingest: an ACL must name its readers (empty or*is a 400). A record for a whole org namesgroup:<org>.all. Every episode must be of a known episode type; one bad record refuses the batch.replaces_source: trueretires the source’s other versions once the batch commits./facts: each fact’s quote (at least 12 characters) must occur in a cited episode, and every word of its entity and value (common words aside) must occur in the cited text./forgetre-ACLs the episode to an entry nobody holds; the ledger keeps the change./retracthides an episode, and every fact citing it, for every reader on every branch at every time. The bytes stay until a purge (ampup-memory org purge).
Admin and operations
The CLI’s people commands (
ampup-memory org, team, member, apikey, audit) call /admin when signed in. See
security-model.md.
Errors
- 400 for a malformed body, with a reason.
- 401 without a credential the server accepts, answered before the body is read; 403 when the caller may not do this here, with a reason code
(
not_member,as_denied, …). - 404 for anything the caller may not see.
- 429 with
Retry-Afterpast the caller’s rate limit (a batch costs a token per item) or past its requests in flight at once (AMPUP_MEMORY_MAX_IN_FLIGHT_PER_CALLER). - 503 for advice with no routing model, from
/readyduring warm-up, and withRetry-After: 1when the server is at its connection or in-flight cap.