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);

Get Listening Address

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

// Run as a Node.js HTTP server
handle(server, (addressInfo) => {
  // Print listening address
  console.log(
    `The MCP server is listening at ${getListeningAddress(addressInfo)}`,
  );
});

Specify Custom Port

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

// Run as a Node.js HTTP server
handle(
  server,
  // Print listening address
  (addressInfo) => {
    console.log(
      `The MCP server is listening at ${getListeningAddress(addressInfo)}`,
    );
  },
  // 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

getListeningAddress(addressInfo)

Gets listening address from the server AddressInfo

  • addressInfo: Required server AddressInfo from the listening callback