@mseep/supabase-mcp
Version:
MCP server for Supabase CRUD operations
43 lines • 1.66 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createServer = createServer;
const express_1 = __importDefault(require("express"));
const cors_1 = __importDefault(require("cors"));
const body_parser_1 = __importDefault(require("body-parser"));
const index_js_1 = require("./handlers/index.js");
function createServer() {
const app = (0, express_1.default)();
// Middleware
app.use((0, cors_1.default)());
app.use(body_parser_1.default.json());
// Skip API key validation for manifest endpoint
app.use((req, res, next) => {
if (req.path === '/.well-known/mcp-manifest' || req.path === '/mcp') {
return next();
}
(0, index_js_1.validateApiKey)(req, res, next);
});
// MCP required endpoints
app.get('/.well-known/mcp-manifest', index_js_1.handleManifest);
// MCP JSON-RPC endpoint
app.post('/mcp', index_js_1.handleJsonRpc);
// Health check
app.get('/health', index_js_1.handleHealthCheck);
// Database operations
app.post('/database/:operation', index_js_1.handleDatabaseOperation);
app.get('/database/tables', index_js_1.handleListTables);
// 404 handler
app.use((req, res) => {
res.status(404).json({ error: 'Not found' });
});
// Error handler
app.use((err, req, res, next) => {
console.error('Server error:', err);
res.status(500).json({ error: `Server error: ${err.message}` });
});
return app;
}
//# sourceMappingURL=server.js.map