Skip to main content
Glama

propose_memory

Record a new memory entry capturing the why behind code decisions, so future sessions have the context and avoid re-breaking past choices.

Instructions

Record a new memory. Auto-approved by default; set PM_REVIEW=1 to queue it for pm review instead.

Auto-approve is the default because a proposal sitting in the inbox is a fact the next session does not have — the queue was the thing between writing a memory and being able to use it. Redaction and collision-safety are NOT relaxed by it: secrets are still stripped before the write (the store is committed to git) and an id clash still suffixes rather than overwrites. Auto-approved entries record verified_by="auto", so a reader can tell a machine-approved note from one a person checked.

Use at task completion: one type='code_symbol' entry per function you added or meaningfully changed (body: WHAT: / WHY: / NEED: / WHY THIS WAY: / GOTCHA:), passing refs with the PRD, spec or ticket that asked for it, plus one type='worklog' entry for the task itself. Also use to record the answer when the user asks "why does X work this way?".

Never include credentials, tokens, or passwords — this store is committed to git.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileNo
refsNo
tagsNo
typeYes
titleYes
sourceNo
symbolNo
contentYes
projectYes
repositoryNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations present, the description carries the full burden and it delivers: it discloses auto-approval default, the PM_REVIEW=1 escape hatch, that redaction/collision-safety are NOT relaxed, that secrets are stripped because the store is committed to git, that id clashes suffix rather than overwrite, and that auto-approved entries carry verified_by='auto'. It also warns against credentials — comprehensive side-effect disclosure well beyond the minimum.

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?

Four dense paragraphs, front-loaded with the action and the one flag (PM_REVIEW=1) an agent must know first; the rationale sentence explains why auto-approve is the default, which prevents the agent from second-guessing the contract. Minor redundancy exists ('committed to git' appears twice) and the middle rationale paragraph could be tightened, but no sentence is 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 10-parameter write tool with no annotations and no output schema, the description covers the essential ground: purpose, approval behavior, safety constraints, usage recipes, and the required refs/content formats. The gaps are the unexplained parameters (symbol, source, file, repository, tags) and the absence of any statement about return values or success signals, though the behavioral contract is unusually complete.

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 0%, so the description must compensate — and it does for the high-stakes parameters: type is given concrete values ('code_symbol', 'worklog'), refs is explained as PRD/spec/ticket references, and content gets a full WHAT/WHY/NEED/WHY THIS WAY/GOTCHA template. However, symbol, source, file, repository, and tags get no semantic explanation, leaving ambiguity around the symbol/file/repository distinction.

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?

Opens with 'Record a new memory' — a specific verb plus resource — and immediately extends into the behavioral contract (auto-approved by default, PM_REVIEW=1 queue). All eight siblings are read/query tools (get_, search_, read_, why_), so the write verb clearly separates this tool; the concrete use cases (code_symbol per function, worklog entry, 'why does X work this way?' answers) make the 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 third paragraph is a direct usage instruction: 'Use at task completion' with a precise recipe — one type='code_symbol' entry per changed function, the WHAT/WHY/NEED/WHY THIS WAY/GOTCHA body format, refs pointing at PRD/spec/ticket, plus a worklog entry — and a second trigger ('record the answer when the user asks why does X work this way?'). It doesn't name read-sibling alternatives explicitly, but the write-vs-read split plus the concrete triggers make when-to-use unambiguous.

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

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/sirajjunior540/product-memory-oss'

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