@smithery/sdk
Version:
SDK to develop with Smithery
30 lines (29 loc) • 1.17 kB
TypeScript
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;
};