Create Private Memo
create-private-memoSave a PRIVATE memory to memocore ("mc") — visible only to you, never shared. Use for personal facts, preferences or notes. Keep ONE coherent topic per memo; split unrelated topics (e.g. overview, tech stack, pricing) into separate memos. Before saving, run search-memo: if a memo on this topic already exists, merge the new facts into it with update-private-memo instead of creating a duplicate — save a new memo only when none fits. Always fill meta with retrieval cues and preview with a short public summary. To tag, first run search-tag (create-tag only if none fits) and pass its id — private memos may use only your private tags. For a shared project, use create-project-memo instead. The response includes a share_url field; for a private memo it explains there is no link (private memos cannot be shared) — never build one from id. The response may carry a recommendation with similar (near-duplicate memos in this scope — if any is truly the same, consolidate: merge into one, delete the extras with delete-memo) and suggested_tags (fitting tags for this memo — add the relevant ones, especially if it has none yet).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"content": "<content>",
"meta": "<meta>",
"preview": "<preview>",
"changes": "<changes>"
},
"name": "create-private-memo"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meta | Yes | Retrieval cues for finding this later: keywords, topics, questions or situations under which it should surface in search. Weighted highest in search — write the terms someone would actually query. Internal: never shown in search results, so it may include specifics. | |
| tags | No | Ids of your PRIVATE tags to attach (from search-tag / create-tag) | |
| dates | No | Moments this memo should resurface at: an event, a deadline, or an earlier reminder before it (add that as its own entry). An agent looking ahead finds the memo with search-memo `date_from`/`date_to`. Omit when the memo is not tied to a moment. | |
| links | No | Ids of your other PRIVATE memos (from search-memo) that are related to this one but cover a separate topic — e.g. a billing overview and the memo for each plan. Link instead of merging when both should stay separate. A link is one-way and belongs to this memo: the linked memo is not modified, it just lists this one under `linked_by`. | |
| title | No | Short human label for the memo | |
| changes | Yes | One short line, written as a plain statement of what this memo records — written to its change history and shown in your activity feed on the dashboard (e.g. "noted preferred flight times", "started a shopping list"). Do not prefix it with a label like "created:". | |
| content | Yes | The memory text — one coherent, self-contained piece of information. Plain text only, no Markdown formatting (no **bold**, headings, bullet lists or code fences). | |
| preview | Yes | A SHORT summary of the memo, max 200 characters. This is the ONLY body field shown in search results and may be exposed in public share links, so it MUST NOT contain any private, personal or sensitive data — keep it a safe, generic one-line description. | |
| expires_in | No | Optional lifetime for a TEMPORARY memo, given as a duration FROM NOW — "30m", "2h", "3d", "1w" (units m/h/d/w, max 365d). The memo auto-moves to the archive once it elapses. Always pass how LONG it should live, never an absolute date — the server anchors it to its own clock, so timezone mismatches cannot occur. Omit for a permanent memo. The response echoes the remaining lifetime in `expires_in`; tell the user how long the memo will live, not the date. |