Skip to main content
Glama

prune_memories

Remove outdated or low-importance memories from the AGI MCP Server based on customizable criteria like age, importance, and access frequency to optimize memory storage.

Instructions

Permanently delete memories based on criteria

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
criteriaNo

Implementation Reference

  • Core handler function in MemoryManager that executes the pruning logic: updates old, low-importance, rarely-accessed archived memories to 'deleted' status and logs the changes.
    async pruneMemories(criteria = {}) { try { const { maxAge = 1095, // 3 years minImportance = 0.1, maxAccessCount = 2, status = 'archived' } = criteria; const cutoffDate = new Date(Date.now() - maxAge * 24 * 60 * 60 * 1000); const prunedMemories = await this.db .update(schema.memories) .set({ status: 'deleted' }) .where( and( eq(schema.memories.status, status), lt(schema.memories.createdAt, cutoffDate), lt(schema.memories.importance, minImportance), lte(schema.memories.accessCount, maxAccessCount) ) ) .returning({ id: schema.memories.id, content: schema.memories.content, type: schema.memories.type }); // Record deletion events for (const memory of prunedMemories) { await this.db.insert(schema.memoryChanges).values({ memoryId: memory.id, changeType: 'deletion', newValue: { reason: 'Pruned based on criteria', criteria } }); } return prunedMemories; } catch (error) { console.warn('Memory pruning failed:', error.message); return []; } }
  • Input schema definition for the prune_memories tool, defining the criteria object structure with defaults for age, importance, access count, and status.
    name: "prune_memories", description: "Permanently delete memories based on criteria", inputSchema: { type: "object", properties: { criteria: { type: "object", properties: { max_age: { type: "integer", description: "Maximum age in days", default: 1095 }, min_importance: { type: "number", description: "Minimum importance threshold", default: 0.1 }, max_access_count: { type: "integer", description: "Maximum access count", default: 2 }, status: { type: "string", description: "Memory status to prune", default: "archived" } } } } } },
  • mcp.js:641-643 (registration)
    Tool dispatch registration in MCP server's CallToolRequestSchema handler: maps tool calls to memoryManager.pruneMemories and formats response.
    case "prune_memories": const prunedMemories = await memoryManager.pruneMemories(args.criteria || {}); return { content: [{ type: "text", text: JSON.stringify(prunedMemories, null, 2) }] };
  • mcp.js:340-372 (registration)
    Tool registration in MCP server's ListToolsRequestSchema response, including name, description, and input schema.
    name: "prune_memories", description: "Permanently delete memories based on criteria", inputSchema: { type: "object", properties: { criteria: { type: "object", properties: { max_age: { type: "integer", description: "Maximum age in days", default: 1095 }, min_importance: { type: "number", description: "Minimum importance threshold", default: 0.1 }, max_access_count: { type: "integer", description: "Maximum access count", default: 2 }, status: { type: "string", description: "Memory status to prune", default: "archived" } } } } } },

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/QuixiAI/agi-mcp-server'

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