ModelFetch

Node.js

Run simple MCP servers with Node.js

The @modelfetch/node package lets you run MCP servers as traditional Node.js HTTP servers.

Installation

Terminal
npm install @modelfetch/node

Usage

Start The Server

src/index.ts
import handle from "@modelfetch/node";
import server from "./server"; // Import your McpServer

// Run as a Node.js HTTP server
handle(server);

Log The Endpoint

src/index.ts
import handle, { getEndpoint } from "@modelfetch/node";
import server from "./server"; // Import your McpServer

// Run as a Node.js HTTP server
handle(server, (address) => {
  // Log the endpoint when the server starts listening
  console.log(`MCP server is available at ${getEndpoint(address)}`);
});

Specify Custom Port

src/index.ts
import handle, { getEndpoint } from "@modelfetch/node";
import server from "./server"; // Import your McpServer

// Run as a Node.js HTTP server
handle(
  server,
  (address) => {
    console.log(`MCP server is available at ${getEndpoint(address)}`);
  },
  // Customize server options
  { port: 8080 },
);

API Reference

handle(server, callback?, options?)

Starts the MCP server

  • server: Required McpServer instance from @modelcontextprotocol/sdk
  • callback: Optional listening callback that receives the server AddressInfo
  • options: Optional configuration object
    • port: Custom port number (default: 3000)
    • hostname: Custom hostname (default: "localhost")
    • createServer: Custom server factory from node:http, node:https, or node:http2
    • serverOptions: Custom server options from node:http, node:https, or node:http2

getEndpoint(address)

Gets the MCP server endpoint from the server AddressInfo

  • address: Required server AddressInfo from the listening callback