Graph Delete
graph_deletePermanently delete an entity node and all its relationships by ID. Use to remove duplicate or erroneous nodes from the graph.
Instructions
Permanently delete an entity node and all its edges by ID. Use for removing duplicate or erroneous nodes. Cannot be undone.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Entity ID to delete |
Implementation Reference
- src/mcp-server/index.ts:319-337 (handler)MCP tool registration and handler for graph_delete. Takes an entity ID, calls client.deleteEntity() with the current tenant. Returns error if entity not found.
server.registerTool("graph_delete", { title: "Graph Delete", description: "Permanently delete an entity node and all its edges by ID. Use for removing duplicate or erroneous nodes. Cannot be undone.", inputSchema: { id: z.string().describe("Entity ID to delete"), }, annotations: { destructiveHint: true }, }, async (args) => { try { const deleted = await client.deleteEntity(currentTenant(), args.id); if (!deleted) { return toolError(`No entity found with id: ${args.id}`); } return toolResult({ action: "deleted", id: args.id }); } catch (err) { return toolError(`graph_delete failed: ${err instanceof Error ? err.message : String(err)}`); } }); - src/mcp-server/index.ts:323-325 (schema)Input schema for graph_delete: a single required 'id' string parameter.
inputSchema: { id: z.string().describe("Entity ID to delete"), }, - src/mcp-server/index.ts:319-337 (registration)Registration of graph_delete tool on the McpServer instance.
server.registerTool("graph_delete", { title: "Graph Delete", description: "Permanently delete an entity node and all its edges by ID. Use for removing duplicate or erroneous nodes. Cannot be undone.", inputSchema: { id: z.string().describe("Entity ID to delete"), }, annotations: { destructiveHint: true }, }, async (args) => { try { const deleted = await client.deleteEntity(currentTenant(), args.id); if (!deleted) { return toolError(`No entity found with id: ${args.id}`); } return toolResult({ action: "deleted", id: args.id }); } catch (err) { return toolError(`graph_delete failed: ${err instanceof Error ? err.message : String(err)}`); } }); - src/shared/neo4j-client.ts:441-447 (helper)Helper method on Neo4jClient that executes the Cypher DETACH DELETE query to permanently remove an entity and all its edges within a tenant.
async deleteEntity(tenantId: string, id: string): Promise<boolean> { const rows = await this.run( `MATCH (n:Entity {tenant_id: $tenantId, id: $id}) DETACH DELETE n RETURN count(n) AS deleted`, { tenantId, id }, ); return Number(rows[0]?.["deleted"] ?? 0) > 0; }