import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
import http from "node:http";
import { server } from "./mcp.js";
const httpServer = http.createServer(async (req, res) => {
if (req.method === "OPTIONS") {
res.writeHead(204);
res.end();
return;
}
if (req.method === "POST" && req.url === "/mcp") {
const transport = new StreamableHTTPServerTransport({
sessionIdGenerator: undefined,
});
res.on("close", () => transport.close());
await server.connect(transport);
await transport.handleRequest(req, res);
return;
}
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("hello-mcp is running\n");
});
const PORT = process.env.PORT ?? 3000;
httpServer.listen(PORT, () => {
console.log(`MCP endpoint → http://localhost:${PORT}/mcp`);
});