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);
Log The Endpoint
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
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
, ornode:http2
- serverOptions: Custom server options from
node:http
,node:https
, ornode:http2
- port: Custom port number (default:
getEndpoint(address)
Gets the MCP server endpoint from the server AddressInfo
- address: Required server
AddressInfo
from the listening callback