delete_user
Remove a user account from BookStack by specifying the user ID, with optional content ownership transfer to another user. Requires admin permissions to execute.
Instructions
Delete a user account (requires admin permissions)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID | |
| migrate_ownership_id | No | ID of user to transfer ownership of content to |
Implementation Reference
- src/tools/search-user-tools.ts:410-419 (handler)Handler logic for the 'delete_user' tool. It parses the user ID and optional migrate ownership ID, calls the BookStack client to delete the user, and returns a success message.case "delete_user": { const { id, migrate_ownership_id } = args; const userId = parseInteger(id); const migrateId = migrate_ownership_id ? parseInteger(migrate_ownership_id) : undefined; await client.deleteUser(userId, migrateId); return `User ${userId} deleted successfully`; }
- Tool schema definition including name, description, and input schema for 'delete_user'.{ name: "delete_user", description: "Delete a user account (requires admin permissions)", inputSchema: { type: "object", properties: { id: { type: "number", description: "User ID" }, migrate_ownership_id: { type: "number", description: "ID of user to transfer ownership of content to", }, }, required: ["id"], }, },
- src/index.ts:102-128 (registration)Registration of 'delete_user' tool by including it in searchUserToolNames array and dispatching to handleSearchAndUserTool in the MCP CallToolRequestSchema handler.// Search and user tools const searchUserToolNames = [ "search_all", "list_users", "get_user", "create_user", "update_user", "delete_user", "list_roles", "get_role", "create_role", "update_role", "delete_role", "list_attachments", "get_attachment", "delete_attachment", "list_images", "get_image", "update_image", "delete_image", ]; if (contentToolNames.includes(name)) { result = await handleContentTool(name, args, bookStackClient); } else if (searchUserToolNames.includes(name)) { result = await handleSearchAndUserTool(name, args, bookStackClient); } else {
- src/lib/bookstack-client.ts:303-308 (helper)Supporting client method that performs the actual HTTP DELETE request to BookStack API endpoint /users/{id}, optionally with ownership migration data.async deleteUser(id: number, migrateOwnershipId?: number): Promise<void> { const data = migrateOwnershipId ? { migrate_ownership_id: migrateOwnershipId } : undefined; await this.api.delete(`/users/${id}`, { data }); }