Skip to main content
Glama

muninn_memory_add

Store a new memory with text content and tags. Returns a compact {success, memoryId, length} — length is the stored character count, your self-verify signal (the full body is never echoed; you just sent it). Pass occurredAt only when logging something that happened at a different time than now (e.g. backfilling a past conversation) — otherwise it defaults to now. Operational memories (session state, checkpoints, carryover, logs) should pass hideRank:true so they do not crowd Ranking or boot.

Input Schema

NameRequiredDescriptionDefault
tagsNoTags for categorization e.g. ['session-state'], ['person-log', 'sarah']
textYesThe memory content to store
previewNo1–2 sentence summary of this memory written by Claude before calling this tool. If omitted, falls back to an 80-char text truncation.
projectNoProject slug to scope this memory (e.g. 'writing-article'). Omit for user-global memories that apply in all projects.
hideRankNoKeep this memory out of the Ranking view and out of the "most accessed" block of session boot. Set true for anything whose reads come from tooling, not from interest: session state, a checkpoint, carryover notes, a run or sync log, a scratch note for the next session of one tool. Leave false for anything a person might want surfaced because it keeps coming up: a decision, a profile, a preference, an article, a changelog entry. When unsure, leave false; a hidden memory is still found by search, tag and get.
occurredAtNoISO 8601 datetime of when the event actually happened, if different from now. Used for chronological ordering of logs. Defaults to now.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only tell the agent this is a non-read-only, non-destructive, non-idempotent write. The description goes well beyond that: it states the exact return shape ({success, memoryId, length}), explains that length is the self-verify signal and the body is never echoed, and documents defaulting behavior and the downstream effect of hideRank on Ranking and boot.

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?

Purpose and return contract are front-loaded in the first two sentences, then parameter rules follow in priority order. Slightly overstuffed with em-dash asides such as "(the full body is never echoed; you just sent it)", but nothing is truly wasted.

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?

For a six-parameter creation tool with no output schema, the description supplies the return contract and the non-obvious parameter decisions, which is the bulk of what an agent needs. It stops short of situating the call relative to append/update, leaving one ambiguity for a tool with many write siblings.

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 coverage is 100%, so baseline is 3, but the description adds operational rules the schema alone doesn't state as a decision rule — the concrete hideRank:true list (session state, checkpoints, carryover, logs) and the occurredAt backfill case. That is meaningful guidance beyond field-level docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Store a new memory with text content and tags" gives a specific verb and resource, and the return-shape sentence reinforces that this is a creation call. It does not, however, distinguish itself from near-siblings like muninn_memory_append or muninn_memory_update, which an agent could plausibly reach for instead.

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?

There is real conditional guidance: pass occurredAt only when the event happened at a different time than now, and pass hideRank:true for operational memories. What's missing is tool-selection guidance against the other write-path siblings (append, update, anchor_replace).

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.

Resources