@mseep/supabase-mcp
Version:
MCP server for Supabase CRUD operations
83 lines • 3.48 kB
JavaScript
;
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