mcp-audiense-demand-test
Version:
MCP server for Claude that provides demand intelligence and search volume analytics from Audiense Demand reports.
29 lines (28 loc) • 1.02 kB
JavaScript
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
import express from "express";
export function createSSEServer(mcpServer) {
const app = express();
const transportMap = new Map();
app.get("/sse", async (req, res) => {
const transport = new SSEServerTransport("/messages", res);
transportMap.set(transport.sessionId, transport);
await mcpServer.connect(transport);
});
app.post("/messages", (req, res) => {
const sessionId = req.query.sessionId;
if (!sessionId) {
console.error("Message received without sessionId");
res.status(400).json({ error: "sessionId is required" });
return;
}
const transport = transportMap.get(sessionId);
if (transport) {
transport.handlePostMessage(req, res);
}
});
return app;
}
export function runSSEServer(server) {
const sseServer = createSSEServer(server);
sseServer.listen(process.env.PORT || 3001);
}