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
npm install @modelfetch/node
Usage
Start The Server
import handle from "@modelfetch/node";
import server from "./server"; // Import your McpServer
// Run as a Node.js HTTP server
handle(server);
Get Listening Address
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
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
, ornode:http2
- serverOptions: Custom server options from
node:http
,node:https
, ornode:http2
- port: Custom port number (default:
getListeningAddress(addressInfo)
Gets listening address from the server AddressInfo
- addressInfo: Required server
AddressInfo
from the listening callback