Skip to main content
Glama

get_full_memory

Retrieve complete memory documents with all Markdown formatting preserved, including headings, bold text, code blocks, links, tables, and lists.

Instructions

Retrieve the complete content of a memory document with all Markdown formatting preserved (headings, bold, italic, code, links, tables, lists, etc.)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
memory_idYesThe ID of the memory document to retrieve

Implementation Reference

  • The handler function that executes the logic for the 'get_full_memory' tool. It reads the specified memory document from storage and returns its full content formatted as Markdown text with metadata.
    export async function getFullMemoryTool(
      storageManager: StorageManager,
      args: any
    ): Promise<any> {
      const params = args as GetFullMemoryParams;
    
      if (!params.memory_id) {
        throw new Error("Memory ID is required");
      }
    
      // Read the memory document
      const memory = await storageManager.readMemory(params.memory_id);
      if (!memory) {
        throw new Error(`Memory document with ID '${params.memory_id}' not found`);
      }
    
      return {
        content: [
          {
            type: "text",
            text: `# Full Memory: ${params.memory_id}
    
    **Created:** ${memory.metadata.created}
    **Updated:** ${memory.metadata.updated}
    **Status:** ${memory.metadata.status}
    **Tags:** ${memory.metadata.tags.join(", ") || "None"}
    
    ---
    
    ${memory.content}`,
          },
        ],
      };
    }
  • TypeScript interface defining the input parameters for the get_full_memory tool.
    export interface GetFullMemoryParams {
      memory_id: string;
    }
  • JSON schema for the input parameters of the get_full_memory tool, as registered in the MCP server.
    inputSchema: {
      type: "object",
      properties: {
        memory_id: {
          type: "string",
          description: "The ID of the memory document to retrieve",
        },
      },
      required: ["memory_id"],
    },
  • src/index.ts:234-248 (registration)
    Tool registration in the listTools handler, including name, description, and input schema.
    {
      name: "get_full_memory",
      description:
        "Retrieve the complete content of a memory document with all Markdown formatting preserved (headings, **bold**, *italic*, `code`, [links](url), tables, lists, etc.)",
      inputSchema: {
        type: "object",
        properties: {
          memory_id: {
            type: "string",
            description: "The ID of the memory document to retrieve",
          },
        },
        required: ["memory_id"],
      },
    },
  • src/index.ts:286-287 (registration)
    Dispatch case in the callTool handler that routes calls to the getFullMemoryTool function.
    case "get_full_memory":
      return await getFullMemoryTool(storageManager, args);
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the tool's behavior by stating it preserves Markdown formatting, which is useful context beyond basic retrieval. However, it lacks details on error handling, permissions, or response format, leaving gaps for a mutation-free but context-sensitive operation.

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?

The description is a single, efficient sentence that front-loads the core purpose and includes essential details (Markdown formatting) without waste. Every part earns its place by clarifying the tool's scope and output characteristics.

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?

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is reasonably complete for a read-only retrieval operation. It covers the purpose and output formatting well, but could benefit from mentioning error cases or linking to sibling tools for better contextual integration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the 'memory_id' parameter fully. The description does not add any meaning beyond the schema, such as format examples or constraints, but it does not need to compensate for gaps. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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 clearly states the specific action ('Retrieve the complete content') and resource ('memory document') with explicit scope ('all Markdown formatting preserved'). It distinguishes from siblings like 'get_memory_summary' by emphasizing completeness versus summarization.

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?

The description implies usage context by specifying 'complete content' with formatting preserved, suggesting it should be used when full fidelity is needed versus summaries or sections. However, it does not explicitly name alternatives or state when not to use it, such as comparing to 'get_section' or 'search_within_memory'.

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/nmeierpolys/mcp-structured-memory'

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