Skip to main content
Glama

Store several memories

memory_store_many

Save several separate facts in one call, each as its own memory. Validates every entry before storing so a bad fact rejects the batch by index instead of storing half.

Instructions

Save SEVERAL separate facts in one call, each as its own memory.

Use this whenever a conversation, a search, or a piece of work produced more than one thing worth remembering: six facts cost one call here, so never compress them into a single memory_store record.

Every fact's shape is validated BEFORE any is stored, so a bad entry refuses the whole batch by its index instead of storing half of it.

facts is a list of objects, each with: text (required) one claim, at most 200 characters by default (enforced) tags (optional) list of strings importance (optional) 0.0-1.0, same tiers as memory_store kind (optional) "fact" (default) or "opinion" - opinions update instead of accumulate, exactly as in memory_store; a conflicting one comes back as its {"stored": false} result supersedes (optional) ids this record replaces source (optional) overrides the call-level source for this fact discovered (optional) YYYY-MM-DD the fact became known, if not today expires (optional) the last day it is true: 2026-09-03, or 14d / 2w / 3m / 1y - only for facts that know when they stop namespace (optional) overrides the call-level namespace quarantined (optional) true if the content came from an untrusted source

namespace, source and discovered at the call level are defaults for every fact that does not set its own. expires is per-fact only: a wrong source mislabels one memory, a wrong call-level expiry would delete the whole batch.

compartment stamps each memory with its own date. Returns one result per fact, in order.

Input Schema

NameRequiredDescriptionDefault
factsYes
sourceYes
namespaceNo
discoveredNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv4.5.0

TDQS

A5/5.0
Behavior5/5

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

The description adds substantial behavior beyond the annotations: whole-batch validation before storage, rejection by index, opinion conflict behavior, per-fact expiry rationale, and one result per fact in order. These details are important for a batch write tool whose annotations only say it is not read-only and not destructive.

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 long but justified because the schema provides no field descriptions for a complex nested facts array. It is front-loaded with purpose and usage, then structured as a field list and followed by default and return behavior.

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 batch mutation behavior, complex nested facts parameter, zero schema description coverage, and only basic annotations, the description is complete enough to call correctly. It even explains return ordering despite an output schema existing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden of parameter meaning. It documents the nested fields inside facts and explains how call-level source, namespace, and discovered act as defaults while expires is intentionally per-fact only.

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 states a specific verb and resource: saving several separate facts, each as its own memory. It distinguishes the tool from the sibling memory_store by explicitly saying multiple facts should not be compressed into a single record.

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?

It gives explicit when-to-use guidance: whenever a conversation, search, or piece of work produced more than one thing worth remembering. It also names the alternative behavior by saying not to compress multiple facts into a single memory_store record.

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