Skip to main content
Glama

remember

Store text or files in memory to build a searchable knowledge graph for AI agents, with optional session-scoped caching for temporary recall.

Instructions

Store data in memory.

Two modes depending on whether session_id is provided:

Without session_id (permanent memory): Runs the full add + cognify pipeline to ingest data and build the knowledge graph, then the self-improvement loop (improve) unless self_improvement=False.

With session_id (session memory): Stores the data in the session cache. Direct mode may also bridge it to the graph in the background; API mode uses typed cache entries and does not bridge to the graph. Omit session_id when the content should be stored as permanent graph memory.

Pass either data (text) or filename + content_base64 (a file upload, up to 10 MB), not both. File uploads are permanent-memory only and don't support session_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNoThe text content to store. Mutually exclusive with filename/content_base64.
filenameNoOriginal filename for a file upload. Used to derive the stored document's name. Requires content_base64.
backgroundNoQueue permanent ingestion as a background task and return immediately instead of waiting for the pipeline. Use when the caller has a request deadline shorter than ingestion takes. Ignored with session_id, which is already fast. Errors surface via cognify_status, not the return value.
session_idNoSession ID. Stores in cache; direct mode may also bridge to the graph unless self_improvement is False.
dataset_nameNoTarget dataset name. Defaults to the current MCP client's agent-scoped dataset (e.g. "cursor_vscode_memory"), or "main_dataset" if no client identity is detected.
ontology_keyNoOne or more uploaded ontology keys for extraction (permanent mode only). API mode uses ontologies uploaded by the authenticated API user. Local mode uses the default user's ontology store. Omit to keep the configured server ontology.
custom_promptNoCustom prompt for entity extraction (permanent mode only).
content_base64NoBase64-encoded file content to ingest. Requires filename.
self_improvementNoFalse skips automatic improvement after permanent ingestion; add and cognify still run. In direct session mode, False disables the background session-to-graph bridge. API session entries are cache-only regardless of this flag. Default True.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.6.1
    • changedInput schema / properties / self_improvement / description
      Previous value: -"Run the improve loop (triplet enrichment and, with sessions, the\nsession bridge) after cognify. Permanent mode only; default True.\nPass False for a plain add + cognify ingestion."New value: +"False skips automatic improvement after permanent ingestion; add and\ncognify still run. In direct session mode, False disables the background\nsession-to-graph bridge. API session entries are cache-only regardless\nof this flag. Default True."
    • changedInput schema / properties / session_id / description
      Previous value: -"Session ID. When set, stores in session cache only."New value: +"Session ID. Stores in cache; direct mode may also bridge to the graph\nunless self_improvement is False."
  2. Changed14 schema fields changedv1.6.0
    • addedInput schema / properties / content_base64 / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / content_base64 / type
      Removed value: -"string"
    • addedInput schema / properties / custom_prompt / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / custom_prompt / type
      Removed value: -"string"
    • addedInput schema / properties / data / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / data / type
      Removed value: -"string"
    • addedInput schema / properties / dataset_name / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / dataset_name / type
      Removed value: -"string"
    • addedInput schema / properties / filename / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / filename / type
      Removed value: -"string"
    • addedInput schema / properties / ontology_key
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "One or more uploaded ontology keys for extraction (permanent mode only).\nAPI mode uses ontologies uploaded by the authenticated API user. Local\nmode uses the default user's ontology store. Omit to keep the configured\nserver ontology."
      +}
    • addedInput schema / properties / self_improvement
      Added value: +{
      +  "default": true,
      +  "description": "Run the improve loop (triplet enrichment and, with sessions, the\nsession bridge) after cognify. Permanent mode only; default True.\nPass False for a plain add + cognify ingestion.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / session_id / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / session_id / type
      Removed value: -"string"
  3. Changed1 schema field changedv1.5.1
    • addedInput schema / properties / background
      Added value: +{
      +  "default": false,
      +  "description": "Queue permanent ingestion as a background task and return immediately\ninstead of waiting for the pipeline. Use when the caller has a request\ndeadline shorter than ingestion takes. Ignored with session_id, which\nis already fast. Errors surface via cognify_status, not the return\nvalue.",
      +  "type": "boolean"
      +}
  4. Changed15 schema fields changedv1.5.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / content_base64
      Added value: +{
      +  "default": null,
      +  "description": "Base64-encoded file content to ingest. Requires filename.",
      +  "type": "string"
      +}
    • addedInput schema / properties / custom_prompt / description
      Added value: +"Custom prompt for entity extraction (permanent mode only)."
    • removedInput schema / properties / custom_prompt / title
      Removed value: -"Custom Prompt"
    • addedInput schema / properties / data / default
      Added value: +null
    • addedInput schema / properties / data / description
      Added value: +"The text content to store. Mutually exclusive with\nfilename/content_base64."
    • removedInput schema / properties / data / title
      Removed value: -"Data"
    • addedInput schema / properties / dataset_name / description
      Added value: +"Target dataset name. Defaults to the current MCP client's\nagent-scoped dataset (e.g. \"cursor_vscode_memory\"), or\n\"main_dataset\" if no client identity is detected."
    • removedInput schema / properties / dataset_name / title
      Removed value: -"Dataset Name"
    • addedInput schema / properties / filename
      Added value: +{
      +  "default": null,
      +  "description": "Original filename for a file upload. Used to derive the stored\ndocument's name. Requires content_base64.",
      +  "type": "string"
      +}
    • addedInput schema / properties / session_id / description
      Added value: +"Session ID. When set, stores in session cache only."
    • removedInput schema / properties / session_id / title
      Removed value: -"Session Id"
    • removedInput schema / required
      Removed value: -[
      -  "data"
      -]
    • removedInput schema / title
      Removed value: -"rememberArguments"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "result": {
      +      "items": {},
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "result"
      +  ],
      +  "type": "object",
      +  "x-fastmcp-wrap-result": true
      +}
  5. Addedv1.4.1
  6. Removedv1.4.0
  7. First observedv1.0.1

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses significant behavior beyond any schema: it triggers an add+cognify pipeline plus an optional improve loop, warns that API session entries are cache-only and never bridge to the graph, and notes that background-task errors surface via cognify_status rather than the return value. The only minor flaw is referencing 'Direct mode' without defining it, but overall this is highly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is organized into a short preamble and two mode paragraphs, front-loading the core purpose before details. Each sentence adds information (pipeline steps, background behavior, file limits), so it earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's modes, parameter relationships, background behavior, and file-size cap, and an output schema exists so return values don't need to be spelled out. However, the terms 'Direct mode', 'Local mode', and 'API mode' are used without a single defining explanation, which could leave an agent unsure which mode applies in its context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all nine parameters, and the description adds relational context – data and filename/content_base64 are mutually exclusive, background only applies without session_id, and self_improvement controls the bridge in direct session mode. This goes beyond the schema's per-parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action ('Store data in memory.') and then details two storage modes (permanent graph memory via add+cognify pipeline vs session cache), which clearly establishes the tool's function. It does not explicitly contrast with sibling tools like recall or forget, so it just misses the sibling-differentiation bar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: use permanent mode when content should be stored as graph memory (omit session_id), and session mode when a session_id is provided. It also states constraints like mutual exclusivity of data vs filename/content_base64 and file uploads being permanent-only. It does not name sibling tools as alternatives, but the guidance is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools