Skip to main content
Glama

Map everything this workspace holds

memory_map
Read-onlyIdempotent

Read-only overview for browsing, not for answering questions (use get_context for that): every memory (notes and daily-log entries), the things lifecycle facts are about, topics (tags), lifecycle facts with full history, grounded links between them (tag, wikilink, literal name mention, fact naming another thing), recent write events, and retired memories. A writerConflict line on a current fact means it replaced another agent's value until that agent saves it again. An imported memory carries origin: "import"; one whose stored source is a reserved identity (system, developer, assistant, Renor) is marked "untrusted": true. limit bounds every list (memories, things, facts, links, events, retired), newest first (things by their newest fact; links shared across kinds): default 20, at most 200. total gives each list's size and truncated says which were cut; raise limit, or pass query. To find one memory to read, retire or restore, pass query (words it contains, e.g. "landlord"), and scope for one scope only: only memories and retired memories with one of the words are returned, rarest words first, then newest, up to limit. A note save returns the id of what it saved, so forgetting it needs no lookup.

Input Schema

NameRequiredDescriptionDefault
limitNoAt most this many of each list the map shows (memories, things, facts, links, events, retired). Without a query, default 20. With a query it bounds the memories and retired memories found, default 10.
queryNoWords the memory contains. Matched at the start of words in each memory's text, title and path.
scopeNoWith query only: look in this memory scope ("global", or scope:<slug> / project:<slug>, which name the same folder for notes).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare read-only/idempotent; the description adds real behavioral context beyond that: `writerConflict` semantics on current facts, `origin: "import"`, the `untrusted: true` marking for reserved-source identities, newest-first ordering rules per list, the `total`/`truncated` truncation contract, and how query results are ranked (rarest words first). None of this is available in the annotations or the schema.

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?

Dense but front-loaded: purpose, then the enumeration, then exclusion, then parameter behavior, then exception cases — a logical order with no filler sentences. It is long and the closing sentence about note saves returning an id is tangential to a read-only map, belonging more to remember_note, so it does not fully earn its place.

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?

There is no output schema, so the description has to describe returns itself — and it does, listing every returned collection, its ordering, its size reporting (`total`), and truncation state (`truncated`), plus edge-case markers (writerConflict, untrusted, origin). An agent has everything it needs to call this and interpret the result.

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 the baseline is 3; the description goes further by stating that `limit` bounds every list uniformly (memories, things, facts, links, events, retired) and that query results are ordered rarest-word-first then newest, which the schema does not say. `scope`'s restriction ("with query only") is also reinforced, though the slug formats themselves stay in the 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?

Opens with a specific verb+resource ("Read-only overview for browsing") and then enumerates exactly what the map contains: memories, things, topics, facts with history, grounded links, write events, retired memories. The parenthetical "(use get_context for that)" separates it from the nearest sibling, so an agent can pick it out without opening a schema.

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?

Explicitly excludes the question-answering use case and names get_context as the alternative, and it explains when to add `query` (to narrow to one memory for read/retire/restore) and when to raise `limit` (when `truncated` says lists were cut). The one gap is that no other sibling, e.g. search_memory, is routed away from or toward — the guidance is complete for the exclusion but not the full sibling set.

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.