Skip to main content
Glama

Remember in XMemo

remember

Save durable information for future recall; skip transient chat. Existing Projects paths attach automatically. create_project is a deprecated ordinary-client compatibility input; model-routed project creation belongs to project(entity='project', action='create'). Use Ledger, not generic memory, for financial records.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesA simple user-facing category or path for this memory, such as preferences, projects/xmemo, or personal/travel.
contentYesText body to save, such as a memory, TODO/action item, event note, or state summary.
create_projectNoCreate a missing formal project from a valid Projects / <Project Name> path. Defaults to false; enable only when the user explicitly asks.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 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"
      -}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Discloses that existing Projects paths attach automatically, which is not evident from annotations. Also flags create_project as deprecated compatibility input and clarifies proper routing. Annotations already establish read/write and destructiveness hints, so the description adds qualitative behavior beyond those.

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?

Three sentences, first sentence states purpose, second adds a behavioral detail, third contains two routing caveats. No redundant fluff; all information is actionable.

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

Completeness5/5

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

Given the output schema exists and annotations provide safety hints, the description effectively covers purpose, exclusions, parameter nuances, and routing alternatives. It is sufficient for an agent to decide when to invoke and how to use correctly.

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?

Schema covers 100%, but description adds meaning to create_project by labeling it 'deprecated ordinary-client compatibility input' and directing to project tool. Also notes automatic attachment for Projects paths, which clarifies the path parameter's behavior.

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 opening phrase 'Save durable information for future recall' clearly identifies the tool's function. It distinguishes itself from transient chat and from Ledger for financial records, and mentions project creation routing, separating it from the project tool.

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?

Explicitly instructs to skip transient chat, provides an alternative for financial records (Ledger), and clarifies that project creation should be routed to project(entity='project', action='create') rather than using create_project. This goes beyond merely implying usage.

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.

TDQS

A3.9/5.0
Disambiguation3/5

Multiple memory-retrieval tools (recall, search_memory, recall_context, read_memory, memory_overview) have overlapping purposes; detailed descriptions help but an agent could easily pick the wrong one. Similarly, ledger/open_ledger and todo/open_todo_board split text vs UI interaction, and forget overlaps with todo delete_all and ledger deletion.

Naming Consistency3/5

Most tools follow a verb_noun snake_case pattern (read_memory, update_memory, search_memory, open_ledger). However, several tools use bare nouns or verbs (forget, ledger, project, todo, recall, remember) and memory_overview is noun_noun, creating inconsistent conventions.

Tool Count3/5

19 tools is on the heavy side for the apparent scope, and the surface includes several pairs that duplicate the same domain in text vs UI form (ledger/open_ledger, todo/open_todo_board). Still, the count is defensible given the combined memory, project, TODO, and ledger coverage.

Completeness4/5

Memory has full lifecycle coverage (remember, read, search/recall, update, forget, restore), and TODO and Ledger workflows are largely complete. Minor gaps exist—no explicit project deletion and no pure text list-projects tool—but core workflows do not dead-end.