Skip to main content
Glama
gilberth

MCP Cloudflare DNS Server

mcpProxy.js2.37 kB
import { isJSONRPCRequest } from "@modelcontextprotocol/sdk/types.js"; function onClientError(error) { console.error("Error from inspector client:", error); } function onServerError(error) { if ((error?.message && error.message.includes("Error POSTing to endpoint (HTTP 404)")) || (error?.cause && JSON.stringify(error.cause).includes("ECONNREFUSED"))) { console.error("Connection refused. Is the MCP server running?"); } else { console.error("Error from MCP server:", error); } } export default function mcpProxy({ transportToClient, transportToServer, }) { let transportToClientClosed = false; let transportToServerClosed = false; let reportedServerSession = false; transportToClient.onmessage = (message) => { transportToServer.send(message).catch((error) => { // Send error response back to client if it was a request (has id) and connection is still open if (isJSONRPCRequest(message) && !transportToClientClosed) { const errorResponse = { jsonrpc: "2.0", id: message.id, error: { code: -32001, message: error.message, data: error, }, }; transportToClient.send(errorResponse).catch(onClientError); } }); }; transportToServer.onmessage = (message) => { if (!reportedServerSession) { if (transportToServer.sessionId) { // Can only report for StreamableHttp console.error("Proxy <-> Server sessionId: " + transportToServer.sessionId); } reportedServerSession = true; } transportToClient.send(message).catch(onClientError); }; transportToClient.onclose = () => { if (transportToServerClosed) { return; } transportToClientClosed = true; transportToServer.close().catch(onServerError); }; transportToServer.onclose = () => { if (transportToClientClosed) { return; } transportToServerClosed = true; transportToClient.close().catch(onClientError); }; transportToClient.onerror = onClientError; transportToServer.onerror = onServerError; }

Latest Blog Posts

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/gilberth/mcp-cloudflare'

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