Skip to main content
Glama

read_memory_block

Retrieve full details of a specific memory block by its ID to access stored information in the Letta system.

Instructions

Get full details of a specific memory block by ID. Use list_memory_blocks to find block IDs. After reading, use update_memory_block to modify content.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
block_idYesID of the memory block to retrieve
agent_idNoOptional agent ID for authorization

Implementation Reference

  • The main handler function that validates input arguments, fetches the memory block via API call to `/blocks/${block_id}`, formats the response as MCP content, and handles errors.
    export async function handleReadMemoryBlock(server, args) {
        try {
            // Validate arguments
            if (!args?.block_id) {
                throw new Error('Missing required argument: block_id');
            }
    
            // Headers for API requests
            const headers = server.getApiHeaders();
    
            // If agent_id is provided, set the user_id header
            if (args.agent_id) {
                headers['user_id'] = args.agent_id;
            }
    
            // Get the memory block
            const response = await server.api.get(`/blocks/${args.block_id}`, {
                headers,
            });
    
            // Format the response
            return {
                content: [
                    {
                        type: 'text',
                        text: JSON.stringify(response.data),
                    },
                ],
            };
        } catch (error) {
            server.createErrorResponse(error);
        }
    }
  • Tool definition including input schema for block_id (required) and optional agent_id.
    export const readMemoryBlockToolDefinition = {
        name: 'read_memory_block',
        description:
            'Get full details of a specific memory block by ID. Use list_memory_blocks to find block IDs. After reading, use update_memory_block to modify content.',
        inputSchema: {
            type: 'object',
            properties: {
                block_id: {
                    type: 'string',
                    description: 'ID of the memory block to retrieve',
                },
                agent_id: {
                    type: 'string',
                    description: 'Optional agent ID for authorization',
                },
            },
            required: ['block_id'],
        },
    };
  • Output schema defining the structure of the memory block response (id, name, label, value, metadata).
    read_memory_block: {
        type: 'object',
        properties: {
            id: { type: 'string' },
            name: { type: 'string' },
            label: { type: 'string' },
            value: { type: 'string' },
            metadata: { type: 'object' },
        },
        required: ['id', 'name', 'label', 'value'],
    },
  • Registration of the handler in the main tool call switch statement within registerToolHandlers.
    case 'read_memory_block':
        return handleReadMemoryBlock(server, request.params.arguments);
  • Import of the handler and tool definition from the implementation file.
        handleReadMemoryBlock,
        readMemoryBlockToolDefinition,
    } from './memory/read-memory-block.js';
  • Annotations providing metadata about the tool's behavior (read-only, auth required, low cost, fast execution).
    read_memory_block: {
        title: 'Read Memory Block',
        readOnly: true,
        requiresAuth: true,
        costLevel: 'low',
        executionTime: 'fast',
    },

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/oculairmedia/Letta-MCP-server'

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