UNPKG

@modelfetch/node

Version:

Node.js runtime adapter for MCP servers built with ModelFetch

81 lines (59 loc) 2.48 kB
# `@modelfetch/node` [![npm version](https://img.shields.io/npm/v/@modelfetch/node)](https://www.npmjs.com/package/@modelfetch/node) [![npm license](https://img.shields.io/npm/l/@modelfetch/node)](https://www.npmjs.com/package/@modelfetch/node) [![docs](https://img.shields.io/badge/docs-modelfetch.com-blue)](https://www.modelfetch.com/docs/runtime/node) Run simple MCP servers with Node.js. ## Installation ```bash npm install @modelfetch/node ``` ## Usage ### Start The Server ```typescript import handle from "@modelfetch/node"; import server from "./server"; // Import your McpServer // Run as a Node.js HTTP server handle(server); ``` ### Get Listening Address ```typescript 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 ```typescript 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`](https://github.com/modelcontextprotocol/typescript-sdk?tab=readme-ov-file#server) instance from [`@modelcontextprotocol/sdk`](https://github.com/modelcontextprotocol/typescript-sdk) - **callback**: Optional listening callback that receives the server [`AddressInfo`](https://nodejs.org/api/net.html#serveraddress) - **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`](https://nodejs.org/api/net.html#serveraddress) - **addressInfo**: Required server [`AddressInfo`](https://nodejs.org/api/net.html#serveraddress) from the listening callback