mongodb-memory-bank-mcp-v2
Version:
MongoDB-powered Memory Bank MCP server with hybrid search capabilities for AI assistants
58 lines • 1.8 kB
JavaScript
import { z } from 'zod';
// Memory file types
export const MEMORY_FILE_TYPES = [
'projectbrief',
'productContext',
'activeContext',
'systemPatterns',
'techContext',
'progress',
'custom',
];
// Zod schemas for validation
export const ProjectConfigSchema = z.object({
projectId: z.string().uuid(),
projectPath: z.string(),
name: z.string(),
createdAt: z.string().datetime(),
});
export const MemoryFileSchema = z.object({
fileName: z.string().regex(/^[a-zA-Z0-9-_]+\.md$/),
content: z.string().min(1),
type: z.enum(MEMORY_FILE_TYPES),
});
// Tool input schemas
export const InitToolSchema = z.object({
projectPath: z.string().optional(),
projectName: z.string().optional(),
});
export const ReadToolSchema = z.object({
fileName: z.string().regex(/^[a-zA-Z0-9-_]+\.md$/),
projectPath: z.string().optional(),
});
export const UpdateToolSchema = z.object({
fileName: z.string().regex(/^[a-zA-Z0-9-_]+\.md$/),
content: z.string().min(1),
projectPath: z.string().optional(),
});
export const SearchToolSchema = z.object({
query: z.string().min(1),
projectPath: z.string().optional(),
limit: z.number().int().positive().max(50).default(10),
searchType: z.enum(['hybrid', 'vector', 'text']).default('hybrid'),
});
export const SyncToolSchema = z.object({
projectPath: z.string().optional(),
forceRegenerate: z.boolean().default(false),
});
// Context Engineering PRP tools (simplified)
export const GeneratePRPSchema = z.object({
request: z.string().min(3),
projectPath: z.string().optional(),
});
export const ExecutePRPSchema = z.object({
prp: z.string().optional(),
projectPath: z.string().optional(),
force: z.boolean().default(false),
});
//# sourceMappingURL=memory.js.map