Skip to main content
Glama

rememb_write

Save one or multiple new memory entries in a single call without overwriting existing entries; use the edit tool to update an entry by ID.

Instructions

Save a new memory entry or multiple entries in one call. Existing entries are never overwritten. Use rememb_edit to update an existing entry by ID.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "rememb_write"
  }
}

Input Schema

NameRequiredDescriptionDefault
tagsNoTags to categorize this entry
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
contentNoContent to remember (1-3 sentences)
entriesNoBatch write payloads. Each item accepts content and optional section/tags.
sectionNoSection: project, actions, systems, requests, user, contextcontext

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.4.20
    • addedInput schema / properties / entries
      Added value: +{
      +  "description": "Batch write payloads. Each item accepts content and optional section/tags.",
      +  "items": {
      +    "properties": {
      +      "content": {
      +        "description": "Content to remember (1-3 sentences)",
      +        "type": "string"
      +      },
      +      "section": {
      +        "description": "Section: project, actions, systems, requests, user, context",
      +        "enum": [
      +          "project",
      +          "actions",
      +          "systems",
      +          "requests",
      +          "user",
      +          "context"
      +        ],
      +        "type": "string"
      +      },
      +      "tags": {
      +        "description": "Tags to categorize this entry",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "content"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / semantic_scope
      Removed value: -{
      -  "default": "global",
      -  "description": "Semantic duplicate guard scope: global (all sections) or section (target section only)",
      -  "enum": [
      -    "global",
      -    "section"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / store
      Added value: +{
      +  "default": "global",
      +  "description": "Memory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.",
      +  "enum": [
      +    "global"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "content"
      -]
  2. Changed1 schema field changedv0.4.11
    • addedInput schema / properties / semantic_scope
      Added value: +{
      +  "default": "global",
      +  "description": "Semantic duplicate guard scope: global (all sections) or section (target section only)",
      +  "enum": [
      +    "global",
      +    "section"
      +  ],
      +  "type": "string"
      +}
  3. First observedv0.1.0

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does disclose one genuinely non-obvious trait: existing entries are never overwritten (append-only, no upsert). It says nothing about what a successful write returns (e.g. IDs needed for a later rememb_edit), whether writes are deduplicated, or any persistence/confirmation behavior.

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 short sentences, front-loaded with what it does, then the non-overwrite guarantee, then the alternative. Nothing is redundant or padded.

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

Completeness3/5

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

For a 5-parameter mutation tool with zero annotation coverage and no output schema, the description is minimally sufficient but leaves real gaps: no return-value indication, no guidance on the content-vs-entries choice, and no explanation of how 'store' or 'section' defaults should be chosen despite the schema requiring nothing.

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 the baseline is 3, and the description adds only a thin gloss on the batch shape via 'or multiple entries in one call'. It does not address the more consequential ambiguity the schema leaves open: both 'content' and 'entries' are optional with no stated mutual exclusivity or precedence.

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?

States a specific verb ('Save') plus resource ('memory entry') and explicitly covers both the single and batch form. It also names the sibling it is not (rememb_edit), so an agent can distinguish it from the update path without opening a schema.

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?

Gives an explicit routing rule: use rememb_edit to update an existing entry by ID, which is exactly the decision this tool's callers face. It does not cover the other plausible boundary cases, such as when to send a batch via 'entries' versus repeated single calls, or when rememb_consolidate is the right tool instead.

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