Skip to main content
Glama

prune_memories

Permanently delete old, low-importance, or rarely accessed memories from AI systems to manage storage and maintain relevant data using customizable criteria.

Instructions

Permanently delete memories based on criteria

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
criteriaNo

Implementation Reference

  • The main implementation of pruneMemories method that permanently deletes memories based on criteria (maxAge, minImportance, maxAccessCount, status). Updates memory status to 'deleted' and records deletion events.
    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 [];
      }
    }
  • mcp.js:641-643 (handler)
    The MCP request handler that routes prune_memories tool calls to memoryManager.pruneMemories with the provided criteria.
    case "prune_memories":
      const prunedMemories = await memoryManager.pruneMemories(args.criteria || {});
      return { content: [{ type: "text", text: JSON.stringify(prunedMemories, null, 2) }] };
  • Schema definition for prune_memories tool as part of the exported memoryTools array, defining input properties (max_age, min_importance, max_access_count, 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:340-371 (registration)
    Tool registration in the MCP server's tools list, registering prune_memories with its description and input schema for tool discovery.
    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/randyandrade/agi-mcp-server'

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