Skip to main content
Glama

memory_store_many

Store multiple distinct facts as individual memories in one batch call, each with optional tags, importance, and source. Use it to preserve research findings or conversation insights while maintaining provenance.

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. This is the tool that makes one fact per memory free: six facts cost one call here, so never compress them into a single memory_store to save round trips.

facts is a list of objects, each with: text (required) one claim, one or two sentences tags (optional) list of strings importance (optional) 0.0-1.0, same tiers as memory_store source (optional) overrides the call-level source for this fact discovered (optional) YYYY-MM-DD the fact became known, if not today 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, which is the common case: one research pass produces several facts that share a provenance.

compartment stamps each memory with its own date. Returns one result per fact, in order, each with its id and whether it was a near-duplicate of a memory already held.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
factsYes
sourceYes
namespaceNo
discoveredNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

No annotations are provided, so the description bears the full transparency burden. It discloses important behavioral details: returns one result per fact in order, each with id and near-duplicate flag, and explains how call-level defaults apply to each fact. However, it does not explicitly state that this is a write/mutating operation beyond the word 'Save', nor does it cover error behavior or idempotency. The odd sentence 'compartment stamps each memory with its own date' adds ambiguity rather than clarity.

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 front-loaded with a clear summary and usage guidance, and each field explanation earns its place. However, it is somewhat long and includes an unclear sentence ('compartment stamps each memory with its own date') that could confuse readers. A more structured list format for fields would improve scannability, but the content is appropriately detailed.

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?

The description covers the purpose, when to use, all parameters, and return behavior (per-fact id and near-duplicate flag), which is strong given the sparse schema and lack of annotations. The ambiguity around 'compartment' and the absence of error/edge-case handling prevent a perfect score. Overall, the tool is well contextualized for an AI agent.

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%, and the description fully compensates. It details every field within the `facts` array, including `text`, `tags`, `importance`, `source`, `discovered`, `namespace`, and `quarantined`, with types and semantics. It also explains the call-level parameters `namespace`, `source`, and `discovered` as defaults, which is not evident from the schema. This adds significant meaning beyond the sparse 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 SEVERAL separate facts in one call, each as its own memory', clearly specifying the verb (save) and resource (facts/memories). It further distinguishes itself from sibling memory_store by stating to never compress multiple facts into a single memory_store, making the tool's unique purpose unmistakable.

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 states when to use it: 'Use this whenever a conversation, a search, or a piece of work produced more than one thing worth remembering.' It also provides direct guidance against using the alternative single-fact tool: 'never compress them into a single memory_store to save round trips.' This gives 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.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MaxFreedomPollard/Compartment'

If you have feedback or need assistance with the MCP directory API, please join our Discord server