Skip to main content
Glama

STEM — Persistent AI Memory

Read a memory and its files

read_memory
Read-onlyIdempotent

Read an exact memory ID and metadata of its attached files. Use read_file separately when the user wants actual file content. File view/download URLs require the same signed-in STEM account and are not public sharing links.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "memory_id": "<memory_id>"
    },
    "name": "read_memory"
  }
}

Input Schema

NameRequiredDescriptionDefault
memory_idYes

Output Schema

NameRequiredDescriptionDefault
filesNo
memoryNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / files / items / properties / downloadUrl
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
    • addedOutput schema / properties / files / items / properties / viewUrl
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
  2. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely new behavioral context: file URLs require the same signed-in STEM account and are not public sharing links, which is an auth/permission caveat not derivable from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler; the core action comes first, followed by the alternative and then the sharing caveat. Every sentence earns its place.

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?

With an output schema present, return values needn't be spelled out, and the single required parameter is covered. The description also closes the authentication question. Only minor gap is how an agent should discover a valid memory_id before calling.

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 description coverage is 0%, so the description carries the burden, and it does add meaning: 'exact' signals the integer must be a known ID rather than a name or fuzzy query. The parameter is otherwise self-evident, so no further elaboration is required.

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?

States a specific verb and resource ('Read an exact memory ID and metadata of its attached files') and makes the scope explicit: metadata only, not content. It partially differentiates from siblings by emphasizing 'exact' ID, though it doesn't name recall or list_memories as the way to find an ID.

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?

Gives an explicit exclusion with a named alternative: 'Use read_file separately when the user wants actual file content.' That is real when/when-not guidance. It stops short of telling the agent how to obtain the memory_id in the first place (recall/list_memories), leaving one gap.

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