UNPKG

@smithery/sdk

Version:

SDK to develop with Smithery

30 lines (29 loc) 1.17 kB
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js"; import type { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { type SessionStore } from "./session.js"; /** * Arguments when we create a new instance of your server */ export interface CreateServerArg<T = Record<string, unknown>> { sessionId: string; config: T; } export type CreateServerFn<T = Record<string, unknown>> = (arg: CreateServerArg<T>) => Server; /** * Configuration options for the stateful server */ export interface StatefulServerOptions { /** * Session store to use for managing active sessions */ sessionStore?: SessionStore<StreamableHTTPServerTransport>; } /** * Creates a stateful server for handling MCP requests. * For every new session, we invoke createMcpServer to create a new instance of the server. * @param createMcpServer Function to create an MCP server * @returns Express app */ export declare function createStatefulServer<T = Record<string, unknown>>(createMcpServer: CreateServerFn<T>, options?: StatefulServerOptions): { app: import("express-serve-static-core").Express; };