⚠️ DESTRUCTIVE: Permanently deletes a database and ALL its data. Cannot be undone. Always confirm with user before proceeding and verify correct database name.
delete_databasePermanently deletes a database and all its data. This action cannot be undone.
Instructions
⚠️ DESTRUCTIVE: Permanently deletes a database and ALL its data. Cannot be undone. Always confirm with user before proceeding and verify correct database name.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the database to permanently delete - WARNING: ALL DATA WILL BE LOST FOREVER |
Implementation Reference
- src/tools/handler.ts:140-157 (handler)MCP tool handler for 'delete_database'. Calls organization_client.delete_database(name) and returns success/error response.
server.tool( { name: 'delete_database', description: `⚠️ DESTRUCTIVE: Permanently deletes a database and ALL its data. Cannot be undone. Always confirm with user before proceeding and verify correct database name.`, schema: DeleteDatabaseSchema, }, async ({ name }) => { try { await organization_client.delete_database(name); return create_tool_response({ success: true, message: `Database '${name}' deleted successfully`, }); } catch (error) { return create_tool_error_response(error); } }, ); - src/tools/handler.ts:23-25 (schema)Zod schema for the delete_database tool input, requiring a 'name' string describing the database to permanently delete.
const DeleteDatabaseSchema = z.object({ name: z.string().describe('Name of the database to permanently delete - WARNING: ALL DATA WILL BE LOST FOREVER'), }); - src/tools/handler.ts:103-157 (registration)Registration of the 'delete_database' tool via server.tool() with name, description, schema and handler callback.
export function register_tools(server: McpServer<any>): void { // Organization tools server.tool( { name: 'list_databases', description: 'List all databases in your Turso organization', schema: EmptySchema, }, async () => { try { const databases = await organization_client.list_databases(); return create_tool_response({ databases }); } catch (error) { return create_tool_error_response(error); } }, ); server.tool( { name: 'create_database', description: `✓ SAFE: Create a new database in your Turso organization. Database name must be unique.`, schema: CreateDatabaseSchema, }, async ({ name, group, regions }) => { try { const database = await organization_client.create_database( name, { group, regions }, ); return create_tool_response({ database }); } catch (error) { return create_tool_error_response(error); } }, ); server.tool( { name: 'delete_database', description: `⚠️ DESTRUCTIVE: Permanently deletes a database and ALL its data. Cannot be undone. Always confirm with user before proceeding and verify correct database name.`, schema: DeleteDatabaseSchema, }, async ({ name }) => { try { await organization_client.delete_database(name); return create_tool_response({ success: true, message: `Database '${name}' deleted successfully`, }); } catch (error) { return create_tool_error_response(error); } }, ); - src/clients/organization.ts:121-150 (helper)API client function that sends a DELETE request to Turso Platform API to permanently delete a database by name.
export async function delete_database(name: string): Promise<void> { const organization_id = get_organization_id(); const url = `${API_BASE_URL}/organizations/${organization_id}/databases/${name}`; try { const response = await fetch(url, { method: 'DELETE', headers: get_auth_header(), }); if (!response.ok) { const errorData = await response.json().catch(() => ({})); const errorMessage = errorData.error || response.statusText; throw new TursoApiError( `Failed to delete database ${name}: ${errorMessage}`, response.status, ); } } catch (error) { if (error instanceof TursoApiError) { throw error; } throw new TursoApiError( `Failed to delete database ${name}: ${ (error as Error).message }`, 500, ); } }