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.
66 lines (65 loc) • 2.99 kB
JavaScript
import { z } from "zod";
import { createToolExample, createToolMetadata, registerTool, } from "../../../types/tool.js";
import { atlasDeleteProject } from "./deleteProject.js";
import { AtlasProjectDeleteSchemaShape } from "./types.js";
export const registerAtlasProjectDeleteTool = (server) => {
registerTool(server, "atlas_project_delete", "Removes project entities and associated resources from the system with cascading deletion of linked tasks and knowledge items", AtlasProjectDeleteSchemaShape, atlasDeleteProject, createToolMetadata({
examples: [
createToolExample({
mode: "single",
id: "proj_ms_migration",
}, `{
"success": true,
"message": "Project with ID proj_ms_migration deleted successfully",
"id": "proj_ms_migration"
}`, "Remove a completed engineering project from the system"),
createToolExample({
mode: "bulk",
projectIds: ["proj_graphql", "proj_perf", "proj_deprecated_api"],
}, `{
"success": true,
"message": "Successfully deleted 3 projects",
"deleted": ["proj_graphql", "proj_perf", "proj_deprecated_api"],
"errors": []
}`, "Clean up multiple completed or deprecated projects in a single atomic operation"),
],
requiredPermission: "project:delete",
returnSchema: z.union([
// Single project deletion response
z.object({
id: z.string().describe("Project ID"),
success: z.boolean().describe("Operation success status"),
message: z.string().describe("Result message"),
}),
// Bulk deletion response
z.object({
success: z.boolean().describe("Operation success status"),
message: z.string().describe("Result message"),
deleted: z
.array(z.string())
.describe("IDs of successfully deleted projects"),
errors: z
.array(z.object({
projectId: z
.string()
.describe("Project ID that failed to delete"),
error: z
.object({
code: z.string().describe("Error code"),
message: z.string().describe("Error message"),
details: z
.any()
.optional()
.describe("Additional error details"),
})
.describe("Error information"),
}))
.describe("Deletion errors"),
}),
]),
rateLimit: {
windowMs: 60 * 1000, // 1 minute
maxRequests: 10, // 10 requests per minute (either single or bulk)
},
}));
};