import { z } from "zod";
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import type { PloiClient } from "../client.js";
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}`,
},
],
};
}
);
}