UNPKG

atlas-mcp-server

Version:

ATLAS (Adaptive Task & Logic Automation System): An MCP server enabling LLM agents to manage projects, tasks, and knowledge via a Neo4j-backed, three-tier architecture. Facilitates complex workflow automation and project management through LLM Agents.

68 lines (67 loc) 2.94 kB
import { BaseErrorCode, McpError } from "../../../types/errors.js"; import { ResponseFormat, createToolResponse } from "../../../types/mcp.js"; import { logger, requestContextService } from "../../../utils/index.js"; // Import requestContextService import { formatDatabaseCleanResponse } from "./responseFormat.js"; import { AtlasDatabaseCleanSchema } from "./types.js"; import { neo4jDriver } from "../../../services/neo4j/driver.js"; /** * Execute a complete database reset operation * This permanently removes all data from the Neo4j database * * @param input No input parameters required * @param context Tool execution context * @returns Formatted response with operation results */ export const atlasDatabaseClean = async (input, context) => { const reqContext = context.requestContext ?? requestContextService.createRequestContext({ toolName: "atlasDatabaseClean", }); try { // Parse and validate input against schema (should be empty object) const validatedInput = AtlasDatabaseCleanSchema.parse(input); // Log the operation start logger.warning("Executing complete database reset operation", reqContext); // Track execution metrics const startTime = Date.now(); try { // Execute a very simple query that will delete all relationships and nodes await neo4jDriver.executeQuery("MATCH (n) DETACH DELETE n"); // Calculate execution duration const executionTime = Date.now() - startTime; // Log successful operation logger.warning("Database reset completed successfully", { ...reqContext, executionTime: `${executionTime}ms`, }); const result = { success: true, message: "Database has been completely reset - all nodes and relationships removed", timestamp: new Date().toISOString(), }; // Conditionally format response if (validatedInput.responseFormat === ResponseFormat.JSON) { return createToolResponse(JSON.stringify(result, null, 2)); } else { return formatDatabaseCleanResponse(result); } } catch (error) { throw new Error(`Failed to execute database reset: ${error instanceof Error ? error.message : String(error)}`); } } catch (error) { // Log error logger.error("Failed to reset database", error, { ...reqContext, inputReceived: input, }); // Handle specific error cases if (error instanceof McpError) { throw error; } // Convert generic errors to McpError throw new McpError(BaseErrorCode.INTERNAL_ERROR, `Error resetting database: ${error instanceof Error ? error.message : "Unknown error"}`); } };