UNPKG

@mseep/supabase-mcp

Version:

MCP server for Supabase CRUD operations

83 lines 3.48 kB
#!/usr/bin/env node "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createServer = void 0; const server_js_1 = require("./server.js"); const config_js_1 = require("./config.js"); const dotenv_1 = __importDefault(require("dotenv")); const net_1 = require("net"); // Load environment variables dotenv_1.default.config(); // Validate the configuration try { (0, config_js_1.validateConfig)(); } catch (error) { console.error('Configuration error:', error instanceof Error ? error.message : String(error)); process.exit(1); } // Function to find an available port async function findAvailablePort(startPort) { return new Promise((resolve) => { const server = (0, net_1.createServer)(); server.listen(startPort, '127.0.0.1'); server.on('listening', () => { const { port } = server.address(); server.close(() => resolve(port)); }); server.on('error', () => { // Port is in use, try the next one resolve(findAvailablePort(startPort + 1)); }); }); } // Create the server const app = (0, server_js_1.createServer)(); // Start the server with port detection (async () => { const port = await findAvailablePort(config_js_1.mcpConfig.port); if (port !== config_js_1.mcpConfig.port) { console.error(`Port ${config_js_1.mcpConfig.port} was in use, using port ${port} instead.`); config_js_1.mcpConfig.port = port; } const server = app.listen(port, config_js_1.mcpConfig.host, () => { console.error(`Supabase MCP server listening at http://${config_js_1.mcpConfig.host}:${port}`); console.error(`MCP manifest available at http://${config_js_1.mcpConfig.host}:${port}/.well-known/mcp-manifest`); console.error('Press Ctrl+C to stop'); }); // Handle shutdown gracefully process.on('SIGINT', () => { console.error('Shutting down server...'); server.close(() => { console.error('Server shut down successfully'); process.exit(0); }); }); })(); // Export everything needed for the npm package __exportStar(require("./config.js"), exports); __exportStar(require("./handlers/index.js"), exports); __exportStar(require("./services/mcp.js"), exports); __exportStar(require("./services/supabase.js"), exports); __exportStar(require("./types/mcp.js"), exports); __exportStar(require("./types/supabase.js"), exports); var server_js_2 = require("./server.js"); Object.defineProperty(exports, "createServer", { enumerable: true, get: function () { return server_js_2.createServer; } }); //# sourceMappingURL=index.js.map