Skip to main content
Glama

Self-Hosted Supabase MCP Server

by abushadab
rebuild_hooks.ts2.79 kB
import { z } from 'zod'; import type { SelfhostedSupabaseClient } from '../client/index.js'; // import type { McpToolDefinition } from '@modelcontextprotocol/sdk'; // Removed incorrect import import { handleSqlResponse, executeSqlWithFallback } from './utils.js'; import type { ToolContext } from './types.js'; // Input schema (none needed) const RebuildHooksInputSchema = z.object({}); type RebuildHooksInput = z.infer<typeof RebuildHooksInputSchema>; // Output schema const RebuildHooksOutputSchema = z.object({ success: z.boolean(), message: z.string(), }); // Static JSON Schema for MCP capabilities const mcpInputSchema = { type: 'object', properties: {}, required: [], }; // The tool definition - No explicit McpToolDefinition type needed export const rebuildHooksTool = { name: 'rebuild_hooks', description: 'Attempts to restart the pg_net worker. Requires the pg_net extension to be installed and available.', inputSchema: RebuildHooksInputSchema, mcpInputSchema: mcpInputSchema, outputSchema: RebuildHooksOutputSchema, execute: async (input: RebuildHooksInput, context: ToolContext) => { const client = context.selfhostedClient; // Attempt to restart the pg_net worker. // This might fail if pg_net is not installed or the user lacks permissions. const restartSql = 'SELECT net.worker_restart()'; // Remove semicolon try { console.error('Attempting to restart pg_net worker...'); const result = await executeSqlWithFallback(client, restartSql, false); // Check if the result contains an error if ('error' in result) { // Specific check for function not found (pg_net might not be installed/active) const notFound = result.error.code === '42883'; // undefined_function const message = `Failed to restart pg_net worker: ${result.error.message}${notFound ? ' (Is pg_net installed and enabled?)' : ''}`; console.error(message); return { success: false, message }; } // If no error, assume success console.error('pg_net worker restart requested successfully.'); return { success: true, message: 'pg_net worker restart requested successfully.' }; } catch (error: unknown) { // Catch exceptions during the RPC call itself const errorMessage = error instanceof Error ? error.message : String(error); console.error(`Exception attempting to restart pg_net worker: ${errorMessage}`); return { success: false, message: `Exception attempting to restart pg_net worker: ${errorMessage}` }; } }, };

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/abushadab/selfhosted-supabase-mcp-basic-auth'

If you have feedback or need assistance with the MCP directory API, please join our Discord server