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.
42 lines (41 loc) • 1.83 kB
JavaScript
import { badRequest, ok, serverError } from "../../helpers/index.js";
import { setProjectContext } from "../../../shared/services/project-context-manager.js";
/**
* Project Context Detection Controller
* Implements secure multi-layer project detection with isolation validation
* Following MongoDB MCP and alioshr/memory-bank-mcp patterns
*/
export class ProjectContextDetectionController {
projectContextDetectionUseCase;
validator;
constructor(projectContextDetectionUseCase, validator) {
this.projectContextDetectionUseCase = projectContextDetectionUseCase;
this.validator = validator;
}
async handle(request) {
try {
const validationError = this.validator.validate(request.body);
if (validationError) {
return badRequest(validationError);
}
const { workingDirectory, validateIsolation, forceDetection, preferredProjectName } = request.body || {};
// Convert to domain request
const domainRequest = {
workingDirectory: workingDirectory || process.cwd(),
validateIsolation: validateIsolation !== false, // Default to true
forceDetection,
preferredProjectName
};
const result = await this.projectContextDetectionUseCase.detectProjectContext(domainRequest);
// CRITICAL FIX: Set project context using master project context manager
// This ensures 100% consistency across all operations
if (result.success && result.result?.projectName) {
await setProjectContext(result.result.projectName, result.result.workingDirectory);
}
return ok(result);
}
catch (error) {
return serverError(error);
}
}
}