Skip to main content

Writing your own client

Everything above is done through MCP tools. If you are writing your own client or integration, this is what it picks from.

MCP tools

toolwhat it does
mnemos_observewrite an event
mnemos_fact_addwrite facts in one batch
mnemos_recallretrieval by meaning: facts, events, instructions, pins
mnemos_factseverything about one entity, history, audit sweeps
mnemos_episodessearch and browse events, body by id
mnemos_routeslinks between entities, in both directions
mnemos_entity_searchsearch and browse entities
mnemos_entity_savecreate entities
mnemos_entity_editupdate, merge, delete, graph centre, unreachability
mnemos_fact_editclose, reword, redate, repoint, merge, mark used
mnemos_episode_editmove, declare factless, attach files, delete
mnemos_skill, mnemos_skill_save, mnemos_skill_editinstructions
mnemos_todo_list, mnemos_todo_edittodos
mnemos_pin_list, mnemos_pin_editpinned notes
mnemos_context, mnemos_context_save, mnemos_context_edithanding a conversation over
mnemos_state_get, mnemos_state_setbookmarks for recurring jobs
mnemos_scopes, mnemos_scope_describe, mnemos_scope_shareareas and access

Each schema arrives with tools/list together with its description — including the predicate list, the date formats and which fields are required.

The schema is the contract: the server validates arguments against it and refuses an unknown parameter by name, listing what it does accept.

HTTP/JSON

The same set of operations is available over HTTP under the same token:

curl -H "Authorization: Bearer $TOKEN" \
https://mnemos.example.com/api/scopes

The OpenAPI document is at /openapi.yaml and is what a typed client is generated from. Every operation with its request body is in the reference.

A 401 means the route is there and the token was refused, 402 that the account has no entitlement to mnemos, 404 that the request never reached the server.

Worth knowing up front

A write is two calls. mnemos_observe first — it returns the event's id — then mnemos_fact_add referring to it. All facts in one call: the shared work is done once per batch.

The ends of a fact are ids, not names. An id is eight hex characters, a1b2c3d4; mnemos_entity_search returns them and mnemos_entity_save creates what does not exist yet.

A retrieval query is an array of concepts, not a question in a sentence. Each gets its own search and the results merge round-robin.

Dates go through one reader: 2026-08-20, 2026-08-20 14:30, the T form and RFC3339. With no zone given, UTC. A phrase like "yesterday" is refused.