create_database_backup
Back up a database by specifying server and database IDs. This tool creates a copy of the database for data protection and disaster recovery.
Instructions
Create a backup of a database
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| server_id | Yes | The ID of the server | |
| database_id | Yes | The ID of the database to backup |
Implementation Reference
- src/tools/databases.ts:25-43 (handler)The create_database_backup tool handler — defines the tool with Zod schema for server_id and database_id, then calls client.createDatabaseBackup and returns a success message.
server.tool( "create_database_backup", "Create a backup of a database", { server_id: z.coerce.number().describe("The ID of the server"), database_id: z.coerce.number().describe("The ID of the database to backup"), }, async ({ server_id, database_id }) => { await client.createDatabaseBackup(server_id, database_id); return { content: [ { type: "text" as const, text: `Backup initiated for database ${database_id} on server ${server_id}`, }, ], }; } ); - src/tools/databases.ts:28-31 (schema)Input schema for create_database_backup: requires server_id (number) and database_id (number), both coerced from strings.
{ server_id: z.coerce.number().describe("The ID of the server"), database_id: z.coerce.number().describe("The ID of the database to backup"), }, - src/tools/databases.ts:5-44 (registration)The registerDatabaseTools function registers create_database_backup (and list_databases) on the MCP server via server.tool(). Called from tools/index.ts.
export function registerDatabaseTools(server: McpServer, client: PloiClient) { server.tool( "list_databases", "List databases on a server", { server_id: z.coerce.number().describe("The ID of the server"), }, async ({ server_id }) => { const databases = await client.listDatabases(server_id); return { content: [ { type: "text" as const, text: JSON.stringify(databases, null, 2), }, ], }; } ); server.tool( "create_database_backup", "Create a backup of a database", { server_id: z.coerce.number().describe("The ID of the server"), database_id: z.coerce.number().describe("The ID of the database to backup"), }, async ({ server_id, database_id }) => { await client.createDatabaseBackup(server_id, database_id); return { content: [ { type: "text" as const, text: `Backup initiated for database ${database_id} on server ${server_id}`, }, ], }; } ); } - src/client.ts:196-204 (helper)The PloiClient.createDatabaseBackup method that actually makes the HTTP POST request to /servers/{serverId}/databases/{databaseId}/backup.
async createDatabaseBackup( serverId: number, databaseId: number ): Promise<void> { await this.request<void>( "POST", `/servers/${serverId}/databases/${databaseId}/backup` ); } - src/index.ts:127-127 (registration)Top-level registration: registerAllTools(server, client) is called, which in turn calls registerDatabaseTools.
registerAllTools(server, client);