Skip to main content
Glama

recall_memory

Read-onlyIdempotent

Retrieve stored information by key to access previous conversations or data. Use this tool to recall specific memories from your AI interactions.

Instructions

특정 메모리를 키로 조회합니다.

키워드: 떠올려, recall, 기억나, remember what, what was, remind

💡 전체 컨텍스트가 필요하면 get_session_context를 먼저 사용하세요.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYesMemory key to retrieve
categoryNoMemory category to search in

Implementation Reference

  • The handler function implementing the core logic of the 'recall_memory' tool. It retrieves a specific memory by key using MemoryManager, formats the result, and handles not-found or error cases.
    export async function recallMemory(args: { key: string; category?: string }): Promise<ToolResult> {
      const { key: recallKey } = args;
    
      try {
        const memoryManager = MemoryManager.getInstance();
        const memory = memoryManager.recall(recallKey);
    
        if (memory) {
          return {
            content: [{ type: 'text', text: `${memory.key}: ${memory.value}\n[${memory.category}]` }]
          };
        } else {
          return {
            content: [{ type: 'text', text: `✗ Not found: "${recallKey}"` }]
          };
        }
      } catch (error) {
        return {
          content: [{ type: 'text', text: `✗ Error: ${error instanceof Error ? error.message : 'Unknown error'}` }]
        };
      }
    }
  • The ToolDefinition schema defining the input schema, description, required parameters (key), optional (category), and annotations for the 'recall_memory' tool.
    export const recallMemoryDefinition: ToolDefinition = {
      name: 'recall_memory',
      description: `특정 메모리를 키로 조회합니다.
    
    키워드: 떠올려, recall, 기억나, remember what, what was, remind
    
    💡 전체 컨텍스트가 필요하면 get_session_context를 먼저 사용하세요.`,
      inputSchema: {
        type: 'object',
        properties: {
          key: { type: 'string', description: 'Memory key to retrieve' },
          category: { type: 'string', description: 'Memory category to search in' }
        },
        required: ['key']
      },
      annotations: {
        title: 'Recall Memory',
        audience: ['user', 'assistant'],
        readOnlyHint: true,
        destructiveHint: false,
        idempotentHint: true,
        openWorldHint: false
      }
    };
  • src/index.ts:94-99 (registration)
    Registration of the recallMemoryDefinition in the 'tools' array, which is returned by ListToolsRequestHandler for tool discovery.
    saveMemoryDefinition,
    recallMemoryDefinition,
    updateMemoryDefinition,
    deleteMemoryDefinition,
    listMemoriesDefinition,
    prioritizeMemoryDefinition,
  • src/index.ts:161-166 (registration)
    Registration of the recallMemory handler in the 'toolHandlers' object, used by CallToolRequestHandler for dynamic dispatch to execute the tool.
    'save_memory': saveMemory,
    'recall_memory': recallMemory,
    'update_memory': updateMemory,
    'delete_memory': deleteMemory,
    'list_memories': listMemories,
    'prioritize_memory': prioritizeMemory,
  • src/index.ts:43-43 (registration)
    Import statement bringing in the recallMemoryDefinition and recallMemory handler from the implementation file.
    import { recallMemoryDefinition, recallMemory } from './tools/memory/recallMemory.js';
Behavior3/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds no behavioral traits beyond these annotations, such as rate limits or auth needs. However, it does not contradict annotations, so it meets the baseline for when annotations are present.

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?

The description is appropriately sized and front-loaded: the first sentence states the purpose, followed by keywords and a usage tip. Each sentence adds value without redundancy. It could be slightly more structured but is efficient overall.

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 (simple retrieval), rich annotations, and no output schema, the description is reasonably complete. It covers purpose, usage guidelines, and hints at context, though it could benefit from mentioning return format or error handling. The annotations help fill gaps, making it adequate for the context.

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%, with both parameters ('key' and 'category') fully described in the schema. The description does not add any meaning beyond the schema, such as examples or constraints. With high schema coverage, the baseline score is 3.

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?

The description clearly states the tool's purpose: '특정 메모리를 키로 조회합니다' (Retrieve a specific memory by key). It specifies the verb '조회합니다' (retrieve/lookup) and resource '메모리' (memory), but does not explicitly differentiate from sibling tools like 'list_memories' or 'search_memories_advanced', which is why it scores 4 instead of 5.

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 description provides explicit usage guidance: it includes keywords for when to use (떠올려, recall, 기억나, remember what, what was, remind) and recommends an alternative tool ('get_session_context') for full context needs. This clearly indicates when to use this tool versus alternatives.

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/su-record/hi-ai'

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