UNPKG

@modelfetch/deno

Version:

Deno runtime adapter for MCP servers built with ModelFetch

53 lines 1.57 kB
/** * This module lets you run MCP servers as Deno-native HTTP servers. * * @example Basic Example * ```ts * import handle from "@modelfetch/deno"; * import server from "./server.ts"; // Import your McpServer * * // Run as a Deno HTTP server * handle(server); * ``` * * @example Advanced Example * ```ts * import handle, { getListeningAddress } from "@modelfetch/deno"; * import server from "./server.ts"; // Import your McpServer * * // Run as a Deno HTTP server * handle(server, { * // Customize server options * port: 8080, // Customize server port * onListen: (addr) => { // Print listening address * console.log(`The MCP server is listening at ${getListeningAddress(addr)}`); * }, * }); * ``` * * @module */ import { createApp } from "@modelfetch/core"; /** * Gets listening address from the server Deno.Addr. */ export function getListeningAddress(addr) { if (addr.transport === "tcp" || addr.transport === "udp") { const hostname = addr.hostname === "[::]" || addr.hostname === "[::1]" || addr.hostname === "0.0.0.0" || addr.hostname === "127.0.0.1" ? "localhost" : addr.hostname; return `http://${hostname}:${addr.port}`; } throw new Error(`'${addr.transport}' transport is not supported (only TCP and UDP transports are supported)`); } /** * Starts the MCP server. */ export default function handle(arg, options) { const app = createApp(arg); return Deno.serve(options ?? {}, app.fetch); } //# sourceMappingURL=index.js.map