Skip to main content
Glama

Store several memories

memory_store_many

Save multiple distinct facts as separate memories in one batch call, with all entries validated before any are stored. Returns one result per fact.

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

TableJSON Schema
NameRequiredDescriptionDefault
factsYes
sourceYes
namespaceNo
discoveredNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv4.5.0

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description discloses atomic validation ('bad entry refuses the whole batch'), per-fact behavior for opinions, conflict results, compartment date stamping, ordering of returned results, and per-fact vs call-level defaults. This gives the agent a strong behavioral model of a mutation tool.

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 long but every section adds needed semantic detail that the schema lacks. It is front-loaded with the core purpose and usage rule, then systematically covers field semantics. Slightly more verbose than strictly necessary, but justified by the number of optional per-fact fields.

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 schema provides no descriptions and the tool has many nested per-fact options, the description covers everything an agent needs to invoke it correctly: required fields, optional fields, defaults, validation behavior, and return semantics. The existence of an output schema also means return values need not be exhaustively described here.

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%, but the description compensates by thoroughly documenting the facts item fields: text, tags, importance, kind, supersedes, source, discovered, expires, namespace, and quarantined. It also clarifies call-level defaults for namespace, source, and discovered, plus the per-fact-only nature of expires.

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 first sentence states a specific verb and resource: 'Save SEVERAL separate facts in one call, each as its own memory.' It also distinguishes the tool from its main sibling by emphasizing the batching behavior and the warning against compressing facts into a single memory_store 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?

The description explicitly says to use this tool whenever more than one thing worth remembering is produced, and it contrasts with memory_store by saying 'never compress them into a single memory_store record.' This gives the agent clear when-to-use and when-not-to-use guidance.

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