mongodb-memory-bank-mcp
Version:
FIXED: MongoDB Memory Bank MCP with bulletproof error handling, smart operations, and session state management. Eliminates [object Object] errors and user confusion.
41 lines (40 loc) • 1.72 kB
JavaScript
import { badRequest, ok, serverError } from "../../helpers/index.js";
/**
* Controller for structured memory search with template awareness
* Follows exact same pattern as existing controllers
*/
export class MemorySearchStructuredController {
memoryRepository;
validator;
constructor(memoryRepository, validator) {
this.memoryRepository = memoryRepository;
this.validator = validator;
}
async handle(request) {
try {
const validationError = this.validator.validate(request.body);
if (validationError) {
return badRequest(validationError);
}
const { projectName, memoryType, hierarchyLevel, limit } = request.body;
let memories;
// Search by type if specified
if (memoryType) {
memories = await this.memoryRepository.searchByType(memoryType, projectName, limit || 10);
}
// Search by hierarchy level if specified
else if (hierarchyLevel !== undefined) {
memories = await this.memoryRepository.getMemoriesByHierarchy(projectName, hierarchyLevel);
}
// Get all structured memories
else {
const allMemories = await this.memoryRepository.listByProject(projectName);
memories = allMemories.filter(m => m.memoryType); // Only structured memories
}
return ok(`Found ${memories.length} structured memories${memoryType ? ` of type ${memoryType}` : ''}${hierarchyLevel !== undefined ? ` at hierarchy level ${hierarchyLevel}` : ''}`);
}
catch (error) {
return serverError(error);
}
}
}