UNPKG

scrapeless-mcp-server

Version:
28 lines (27 loc) 1.11 kB
import { McpAgent } from "agents/mcp"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { initMcpTools, serverOptions } from "./server.js"; import { API_KEY_NAME } from "./config.js"; export class CfMcpServer extends McpAgent { server = new McpServer(serverOptions); async init() { initMcpTools(this.server, this.props.headers, this.props.apiKey); } } export default { fetch(request, env, ctx) { const url = new URL(request.url); const apiKeyHeader = request.headers.get(API_KEY_NAME); if (!apiKeyHeader) { return new Response(`Unauthorized: Missing ${API_KEY_NAME} header`, { status: 401 }); } ctx.props = { apiKey: apiKeyHeader, headers: request.headers }; if (url.pathname === "/sse" || url.pathname === "/sse/message") { return CfMcpServer.serveSSE("/sse").fetch(request, env, ctx); } if (url.pathname === "/mcp") { return CfMcpServer.serve("/mcp").fetch(request, env, ctx); } return new Response("Not found", { status: 404 }); }, };