delete_memory
Remove outdated or incorrect memories by specifying namespace, type, and key. Keep memory accurate by deleting specific entries.
Instructions
Delete a specific memory by namespace, type, and key. Use when a memory is outdated or incorrect.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | Memory namespace | |
| memoryType | Yes | Memory type | |
| key | Yes | Memory key | |
| projectId | No | Project ID (defaults to current project) |
Implementation Reference
- server/src/mcp/tools.js:567-605 (handler)The MCP tool handler for 'delete_memory'. Defined via server.tool(), it accepts namespace, memoryType, key, and optional projectId, then calls memoryService.delete(). Returns success or error message.
// ─── delete_memory ────────────────────────────────────────────── server.tool( 'delete_memory', 'Delete a specific memory by namespace, type, and key. Use when a memory is outdated or incorrect.', { namespace: z.string().describe('Memory namespace'), memoryType: z.string().describe('Memory type'), key: z.string().describe('Memory key'), projectId: z.string().optional().describe('Project ID (defaults to current project)'), }, async ({ namespace, memoryType, key, projectId }) => { try { const { memoryService, currentProjectId } = await getServices() const targetProjectId = projectId || currentProjectId const deleted = await memoryService.delete({ projectId: targetProjectId, namespace, memoryType, key, }) return { content: [{ type: 'text', text: deleted ? `Deleted memory: ${namespace}/${memoryType}/${key}` : `Memory not found: ${namespace}/${memoryType}/${key}`, }], } } catch (error) { return { content: [{ type: 'text', text: `Error deleting memory: ${error.message}` }], isError: true, } } } ) } - server/src/mcp/tools.js:568-576 (schema)Input schema for the delete_memory tool: namespace (string), memoryType (string), key (string), and optional projectId (string).
server.tool( 'delete_memory', 'Delete a specific memory by namespace, type, and key. Use when a memory is outdated or incorrect.', { namespace: z.string().describe('Memory namespace'), memoryType: z.string().describe('Memory type'), key: z.string().describe('Memory key'), projectId: z.string().optional().describe('Project ID (defaults to current project)'), }, - The MemoryService.delete() method. Checks if a memory exists by composite key (project_id, namespace, memory_type, key), deletes it from the project_memories table, and returns true if deleted or false if not found.
/** * Delete a specific memory by composite key. */ async delete({ projectId, namespace, memoryType, key }) { // Check existence first since promisified db.run doesn't return changes const existing = await this.searchDb.db.get( 'SELECT id FROM project_memories WHERE project_id = ? AND namespace = ? AND memory_type = ? AND key = ?', [projectId, namespace, memoryType, key] ) if (!existing) return false await this.searchDb.db.run(` DELETE FROM project_memories WHERE project_id = ? AND namespace = ? AND memory_type = ? AND key = ? `, [projectId, namespace, memoryType, key]) return true } - server/src/mcp/tools.js:32-32 (registration)The delete_memory tool is registered inside the registerTools() function (line 32) which is called from server/src/mcp/index.js line 106.
export function registerTools(server, getServices) { - server/src/mcp/index.js:106-106 (registration)registerTools(server, getServices) is called here, which registers all tools including delete_memory.
registerTools(server, getServices)