Skip to main content
Glama

delete_quest

Remove a specific quest from the knowledge graph by specifying its name using the delete_quest tool on the MemoryMesh MCP server.

Instructions

Delete an existing quest from the knowledge graph

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
delete_questYesDelete parameters for quest

Implementation Reference

  • Core handler function that implements the deletion logic for 'delete_quest'. It verifies the quest node exists by name and type='quest', then deletes it and associated edges using ApplicationManager.deleteNodes.
    export async function handleSchemaDelete(
        nodeName: string,
        nodeType: string,
        applicationManager: ApplicationManager
    ): Promise<ToolResponse> {
        try {
            const graph = await applicationManager.readGraph();
            const node = graph.nodes.find((n: Node) => n.name === nodeName && n.nodeType === nodeType);
    
            if (!node) {
                return formatToolError({
                    operation: 'deleteSchema',
                    error: `${nodeType} "${nodeName}" not found`,
                    context: {nodeName, nodeType},
                    suggestions: ["Verify node name and type"]
                });
            }
    
            await applicationManager.deleteNodes([nodeName]);
    
            return formatToolResponse({
                actionTaken: `Deleted ${nodeType}: ${nodeName}`
            });
        } catch (error) {
            return formatToolError({
                operation: 'deleteSchema',
                error: error instanceof Error ? error.message : 'Unknown error occurred',
                context: {nodeName, nodeType},
                suggestions: [
                    "Check node exists",
                    "Verify delete permissions"
                ],
                recoverySteps: [
                    "Ensure no dependent nodes exist",
                    "Try retrieving node first"
                ]
            });
        }
    }
  • Dynamically generates the schema (inputSchema, description, name='delete_quest') for the delete_quest tool when processing the 'quest' schema.
    const deleteSchema: Tool = {
        name: `delete_${schemaName}`,
        description: `Delete
        an existing
        ${schemaName}
        from
        the
        knowledge
        graph`,
        inputSchema: {
            type: "object",
            properties: {
                [`delete_${schemaName}`]: {
                    type: "object",
                    description: `Delete parameters for ${schemaName}`,
                    properties: {
                        name: {
                            type: "string",
                            description: `The name of the ${schemaName} to delete`
                        }
                    },
                    required: ["name"]
                }
            },
            required: [`delete_${schemaName}`]
        }
    };
    
    tools.push(deleteSchema);
  • Generates the add/update/delete_quest tools for the 'quest' schema and returns them for registration in toolsCache.
    private async generateToolsForSchema(schemaName: string, schema: SchemaBuilder): Promise<Tool[]> {
        const tools: Tool[] = [];
        const baseSchema = schema.build();
    
        // Add tool
        tools.push(baseSchema as unknown as Tool);
    
        // Update tool
        const updateSchema = schema.createUpdateSchema();
        tools.push(updateSchema as unknown as Tool);
    
        // Delete tool
        const deleteSchema: Tool = {
            name: `delete_${schemaName}`,
            description: `Delete
            an existing
            ${schemaName}
            from
            the
            knowledge
            graph`,
            inputSchema: {
                type: "object",
                properties: {
                    [`delete_${schemaName}`]: {
                        type: "object",
                        description: `Delete parameters for ${schemaName}`,
                        properties: {
                            name: {
                                type: "string",
                                description: `The name of the ${schemaName} to delete`
                            }
                        },
                        required: ["name"]
                    }
                },
                required: [`delete_${schemaName}`]
            }
        };
    
        tools.push(deleteSchema);
        return tools;
    }
  • Registers all dynamic tools, including 'delete_quest', into the central ToolsRegistry Map used for tool lookup and list_tools.
    // Initialize and register dynamic tools
    await dynamicToolManager.initialize();
    dynamicToolManager.getTools().forEach(tool => {
        this.tools.set(tool.name, tool);
    });
  • Handler dispatch for delete_quest: extracts node name from args.delete_quest.name and invokes the core handleSchemaDelete.
    case 'delete': {
        const {name} = args[`delete_${schemaName}`];
        if (!name) {
            return formatToolError({
                operation: toolName,
                error: `Name is required to delete a ${schemaName}`,
                suggestions: ["Provide the 'name' parameter"]
            });
        }
        return handleSchemaDelete(name, schemaName, knowledgeGraphManager);
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CheMiguel23/MemoryMesh'

If you have feedback or need assistance with the MCP directory API, please join our Discord server