Skip to main content
Glama

ScanPower MCP Server

Official
by scanpower
server.js3.2 kB
const { createServer: createHttpsServer } = require("https"); const { createServer: createHttpServer } = require("http"); const { parse } = require("url"); const next = require("next"); const fs = require("fs"); const path = require("path"); require("dotenv").config(); const dev = process.env.NODE_ENV !== "production"; const hostname = "localhost"; const port = parseInt(process.env.PORT || "3000", 10); const httpsEnabled = process.env.HTTPS_ENABLED === "true"; // Prepare Next.js app const app = next({ dev, hostname, port }); const handle = app.getRequestHandler(); app.prepare().then(() => { let server; // Define SSL certificate paths (used for HTTPS check in listen callback) const keyPath = process.env.SSL_KEY_PATH || "./ssl/server.key"; const certPath = process.env.SSL_CERT_PATH || "./ssl/server.cert"; if (httpsEnabled) { // Check for SSL certificates // Check if certificates exist if (!fs.existsSync(keyPath) || !fs.existsSync(certPath)) { console.warn("\n⚠️ SSL certificates not found!"); console.warn(" Expected locations:"); console.warn(` - Key: ${keyPath}`); console.warn(` - Cert: ${certPath}`); console.warn("\n To generate self-signed certificates, run:"); console.warn(" npm run generate-cert\n"); console.warn(" Starting HTTP server instead...\n"); // Fall back to HTTP server = createHttpServer((req, res) => { const parsedUrl = parse(req.url, true); handle(req, res, parsedUrl); }); } else { // HTTPS server with SSL certificates const httpsOptions = { key: fs.readFileSync(keyPath), cert: fs.readFileSync(certPath), }; server = createHttpsServer(httpsOptions, (req, res) => { const parsedUrl = parse(req.url, true); handle(req, res, parsedUrl); }); console.log("\n✅ HTTPS server configured"); } } else { // HTTP server server = createHttpServer((req, res) => { const parsedUrl = parse(req.url, true); handle(req, res, parsedUrl); }); } server.listen(port, (err) => { if (err) throw err; const sslEnabled = httpsEnabled && fs.existsSync(keyPath); const protocol = sslEnabled ? "https" : "http"; console.log("\n┌────────────────────────────────────────────────┐"); console.log("│ │"); console.log("│ ScanPower MCP Server │"); console.log("│ │"); console.log("└────────────────────────────────────────────────┘\n"); console.log(`🚀 Server running at: ${protocol}://${hostname}:${port}`); console.log(`📊 Environment: ${process.env.NODE_ENV || "development"}`); console.log(`🔒 HTTPS: ${sslEnabled ? "Enabled" : "Disabled"}`); console.log(`📝 Request logging: ${process.env.LOG_REQUESTS !== "false" ? "Enabled" : "Disabled"}\n`); }); });

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/scanpower/scanmcp'

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