UNPKG

mcp-server-serper

Version:

Serper MCP Server supporting search and webpage scraping

42 lines (41 loc) 1.65 kB
#!/usr/bin/env node import { startSseAndStreamableHttpMcpServer } from "mcp-http-server"; import { program } from "commander"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { createServer } from "./server.js"; program .name(process.env.NAME || "mcp-server-serper") .description(process.env.DESCRIPTION || "MCP server for serper") .version(process.env.VERSION || "0.0.1") .option("--host <host>", "host to bind server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces.") .option("--port <port>", "port to listen on for SSE and HTTP transport.") .action(async (options) => { try { const createMcpServer = async (apiKey) => { const server = createServer(apiKey); return server; }; if (options.port || options.host) { await startSseAndStreamableHttpMcpServer({ host: options.host, port: options.port, // @ts-expect-error: CommonJS and ESM compatibility createMcpServer: async (req) => { const apiKey = req.headers["x-serper-api-key"]; return createMcpServer(apiKey); }, }); } else { const server = await createMcpServer(process.env.SERPER_API_KEY || ""); const transport = new StdioServerTransport(); await server.connect(transport); console.debug("Serper MCP Server running on stdio"); } } catch (error) { console.error("Error: ", error); process.exit(1); } }); program.parse();