UNPKG

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.

46 lines (45 loc) 1.54 kB
import { serializeError } from "../helpers/serialize-error.js"; /** * Intelligently serializes response body for MCP protocol * - Strings: returned as-is * - String arrays: joined with newlines for readability * - Complex objects/arrays: JSON stringified * - null/undefined: empty string */ const serializeResponseBody = (body) => { if (body === null || body === undefined) { return ""; } // Handle strings directly (most common case for memory bank) if (typeof body === "string") { return body; } // Handle string arrays (like original list_projects, list_project_files) if (Array.isArray(body) && body.every(item => typeof item === "string")) { return body.join("\n"); } // Handle complex objects and arrays (MongoDB enhanced features) return JSON.stringify(body, null, 2); }; export const adaptMcpRequestHandler = async (controller) => { return async (request) => { const { params } = request; const body = params?.arguments; const response = await controller.handle({ body, }); const isError = response.statusCode < 200 || response.statusCode >= 300; return { tools: [], isError, content: [ { type: "text", text: isError ? JSON.stringify(serializeError(response.body)) : serializeResponseBody(response.body), }, ], }; }; };