Skip to main content
Glama

Remember in XMemo

remember

Save durable information for future recall; skip transient chat. Existing Projects paths attach automatically. The create_project compatibility input may create a missing project only when explicitly enabled. Use add_expense for financial records and create_memory_todo for actionable work.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesA simple user-facing category or path for this memory, such as preferences, projects/xmemo, or personal/travel.
scopeNoOptional scope that narrows memory access; leave blank for the token default.
bucketNoMemory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.public
dedupeNoWhether to check for and merge likely duplicate memories before saving.
contentYesText body to save, such as a memory, TODO/action item, event note, or state summary.
team_idNoOptional team/workspace identifier for team-scoped memory access.
agent_idNoOptional client-supplied agent label for memory attribution.
device_idNoOptional client-supplied device identifier for attribution.
memory_idNoExact XMemo memory reference shown by search or recall.
confidenceNoConfidence score for the saved or updated memory, from 0.0 to 1.0.
expires_atNoOptional ISO 8601 expiration timestamp for the memory.
importanceNoImportance score for the saved or updated memory, from 0.0 to 1.0.
memory_typeNoMemory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.auto
device_labelNoOptional human-readable device label for attribution.
semantic_keyNoOptional stable key for one evolving fact: changed body upserts it, the same normalized body is idempotent; metadata_json.semantic_key_mode='merge_metadata' preserves the body while merging metadata.
metadata_jsonNoOptional JSON object string with extra metadata for the operation.{}
create_projectNoCreate a missing formal project from a valid Projects / <Project Name> path. Defaults to false; enable only when the user explicitly asks.
embedding_jsonNoOptional JSON array or object containing a precomputed embedding; leave blank for normal use.
provenance_jsonNoOptional JSON object string describing memory source, evidence, or attribution.{}
agent_instance_idNoOptional stable, non-secret agent instance ID for per-client attribution.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / agent_id
      Added value: +{
      +  "default": "",
      +  "description": "Optional client-supplied agent label for memory attribution.",
      +  "title": "Agent Id",
      +  "type": "string"
      +}
    • addedInput schema / properties / agent_instance_id
      Added value: +{
      +  "default": "",
      +  "description": "Optional stable, non-secret agent instance ID for per-client attribution.",
      +  "title": "Agent Instance Id",
      +  "type": "string"
      +}
    • addedInput schema / properties / bucket
      Added value: +{
      +  "default": "public",
      +  "description": "Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.",
      +  "title": "Bucket",
      +  "type": "string"
      +}
    • addedInput schema / properties / confidence
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Confidence score for the saved or updated memory, from 0.0 to 1.0.",
      +  "title": "Confidence"
      +}
    • addedInput schema / properties / dedupe
      Added value: +{
      +  "default": true,
      +  "description": "Whether to check for and merge likely duplicate memories before saving.",
      +  "title": "Dedupe",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / device_id
      Added value: +{
      +  "default": "",
      +  "description": "Optional client-supplied device identifier for attribution.",
      +  "title": "Device Id",
      +  "type": "string"
      +}
    • addedInput schema / properties / device_label
      Added value: +{
      +  "default": "",
      +  "description": "Optional human-readable device label for attribution.",
      +  "title": "Device Label",
      +  "type": "string"
      +}
    • addedInput schema / properties / embedding_json
      Added value: +{
      +  "default": "",
      +  "description": "Optional JSON array or object containing a precomputed embedding; leave blank for normal use.",
      +  "title": "Embedding Json",
      +  "type": "string"
      +}
    • addedInput schema / properties / expires_at
      Added value: +{
      +  "default": "",
      +  "description": "Optional ISO 8601 expiration timestamp for the memory.",
      +  "title": "Expires At",
      +  "type": "string"
      +}
    • addedInput schema / properties / importance
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Importance score for the saved or updated memory, from 0.0 to 1.0.",
      +  "title": "Importance"
      +}
    • addedInput schema / properties / memory_id
      Added value: +{
      +  "default": "",
      +  "description": "Exact XMemo memory reference shown by search or recall.",
      +  "title": "Memory Id",
      +  "type": "string"
      +}
    • addedInput schema / properties / memory_type
      Added value: +{
      +  "default": "auto",
      +  "description": "Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.",
      +  "title": "Memory Type",
      +  "type": "string"
      +}
    • addedInput schema / properties / metadata_json
      Added value: +{
      +  "default": "{}",
      +  "description": "Optional JSON object string with extra metadata for the operation.",
      +  "title": "Metadata Json",
      +  "type": "string"
      +}
    • addedInput schema / properties / provenance_json
      Added value: +{
      +  "default": "{}",
      +  "description": "Optional JSON object string describing memory source, evidence, or attribution.",
      +  "title": "Provenance Json",
      +  "type": "string"
      +}
    • addedInput schema / properties / scope
      Added value: +{
      +  "default": "",
      +  "description": "Optional scope that narrows memory access; leave blank for the token default.",
      +  "title": "Scope",
      +  "type": "string"
      +}
    • addedInput schema / properties / semantic_key
      Added value: +{
      +  "default": "",
      +  "description": "Optional stable key for one evolving fact: changed body upserts it, the same normalized body is idempotent; metadata_json.semantic_key_mode='merge_metadata' preserves the body while merging metadata.",
      +  "title": "Semantic Key",
      +  "type": "string"
      +}
    • addedInput schema / properties / team_id
      Added value: +{
      +  "default": "",
      +  "description": "Optional team/workspace identifier for team-scoped memory access.",
      +  "title": "Team Id",
      +  "type": "string"
      +}
  2. Changed19 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / agent_id
      Removed value: -{
      -  "default": "",
      -  "description": "Optional client-supplied agent label for memory attribution.",
      -  "title": "Agent Id",
      -  "type": "string"
      -}
    • removedInput schema / properties / agent_instance_id
      Removed value: -{
      -  "default": "",
      -  "description": "Optional stable, non-secret agent instance ID for per-client attribution.",
      -  "title": "Agent Instance Id",
      -  "type": "string"
      -}
    • removedInput schema / properties / bucket
      Removed value: -{
      -  "default": "public",
      -  "description": "Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.",
      -  "title": "Bucket",
      -  "type": "string"
      -}
    • removedInput schema / properties / confidence
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Confidence score for the saved or updated memory, from 0.0 to 1.0.",
      -  "title": "Confidence"
      -}
    • addedInput schema / properties / create_project
      Added value: +{
      +  "default": false,
      +  "description": "Create a missing formal project from a valid Projects / <Project Name> path. Defaults to false; enable only when the user explicitly asks.",
      +  "title": "Create Project",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / dedupe
      Removed value: -{
      -  "default": true,
      -  "description": "Whether to check for and merge likely duplicate memories before saving.",
      -  "title": "Dedupe",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / device_id
      Removed value: -{
      -  "default": "",
      -  "description": "Optional client-supplied device identifier for attribution.",
      -  "title": "Device Id",
      -  "type": "string"
      -}
    • removedInput schema / properties / device_label
      Removed value: -{
      -  "default": "",
      -  "description": "Optional human-readable device label for attribution.",
      -  "title": "Device Label",
      -  "type": "string"
      -}
    • removedInput schema / properties / embedding_json
      Removed value: -{
      -  "default": "",
      -  "description": "Optional JSON array or object containing a precomputed embedding; leave blank for normal use.",
      -  "title": "Embedding Json",
      -  "type": "string"
      -}
    • removedInput schema / properties / expires_at
      Removed value: -{
      -  "default": "",
      -  "description": "Optional ISO 8601 expiration timestamp for the memory.",
      -  "title": "Expires At",
      -  "type": "string"
      -}
    • removedInput schema / properties / importance
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Importance score for the saved or updated memory, from 0.0 to 1.0.",
      -  "title": "Importance"
      -}
    • removedInput schema / properties / memory_id
      Removed value: -{
      -  "default": "",
      -  "description": "Exact XMemo memory reference shown by search or recall.",
      -  "title": "Memory Id",
      -  "type": "string"
      -}
    • removedInput schema / properties / memory_type
      Removed value: -{
      -  "default": "auto",
      -  "description": "Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.",
      -  "title": "Memory Type",
      -  "type": "string"
      -}
    • removedInput schema / properties / metadata_json
      Removed value: -{
      -  "default": "{}",
      -  "description": "Optional JSON object string with extra metadata for the operation.",
      -  "title": "Metadata Json",
      -  "type": "string"
      -}
    • removedInput schema / properties / provenance_json
      Removed value: -{
      -  "default": "{}",
      -  "description": "Optional JSON object string describing memory source, evidence, or attribution.",
      -  "title": "Provenance Json",
      -  "type": "string"
      -}
    • removedInput schema / properties / scope
      Removed value: -{
      -  "default": "",
      -  "description": "Optional scope that narrows memory access; leave blank for the token default.",
      -  "title": "Scope",
      -  "type": "string"
      -}
    • removedInput schema / properties / semantic_key
      Removed value: -{
      -  "default": "",
      -  "description": "Optional stable semantic key used to identify or upsert a memory concept.",
      -  "title": "Semantic Key",
      -  "type": "string"
      -}
    • removedInput schema / properties / team_id
      Removed value: -{
      -  "default": "",
      -  "description": "Optional team/workspace identifier for team-scoped memory access.",
      -  "title": "Team Id",
      -  "type": "string"
      -}
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=false), the description discloses useful behavioral details: 'Existing Projects paths attach automatically' and that create_project 'may create a missing project only when explicitly enabled.' These are not present in the annotations and add meaningful context for the agent. However, it does not cover other behavioral aspects like deduplication or mutation details, but the bar is lowered given the annotations.

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

Conciseness5/5

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

The description is four short sentences, purpose-first, with no filler. Every sentence adds value: the main purpose, a behavioral note, a compatibility caveat, and explicit alternative routing. It is concise and well-structured.

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?

With 20 parameters and full schema coverage plus an output schema, the description does not need to enumerate parameters. It provides the essential context: durable vs. transient, auto-attachment behavior, and sibling tool alternatives. It could mention the default dedupe behavior or that it can also update existing memories, but the coverage is sufficient for a tool with a rich schema.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds a small amount of parameter behavior by explaining the create_project compatibility input's gating, but it mostly restates what the schema already says. No additional syntax or format details are given for required parameters like content or path beyond the schema.

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

Purpose5/5

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

The description opens with 'Save durable information for future recall'—a specific verb and resource—and explicitly contrasts with transient chat. It also distinguishes from sibling tools by directing financial records to add_expense and actionable work to create_memory_todo, clarifying the tool's scope.

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

Usage Guidelines5/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 ('Save durable information for future recall') and when-not-to-use guidance ('skip transient chat', 'Use add_expense for financial records and create_memory_todo for actionable work'). It also notes the create_project compatibility input should only be enabled when explicitly requested, providing a clear usage boundary.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.