MCP Apps Kit - v0.5.0
    Preparing search index...

    Interface App<T>

    App instance returned by createApp()

    interface App<T extends ToolDefs = ToolDefs> {
        clientTypes: ClientToolsFromCore<T>;
        expressApp: unknown;
        tools: T;
        getServer(): McpServer;
        getVersion(versionKey: string): App<T>;
        getVersions(): string[];
        handler(): ExpressMiddleware;
        handleRequest(req: Request, env?: unknown): Promise<Response>;
        on<K extends keyof EventMap>(
            event: K,
            handler: EventHandler<EventMap[K]>,
        ): UnsubscribeFn;
        onAny(handler: AnyEventHandler): UnsubscribeFn;
        once<K extends keyof EventMap>(
            event: K,
            handler: EventHandler<EventMap[K]>,
        ): UnsubscribeFn;
        start(options?: StartOptions): Promise<void>;
        use(middleware: Middleware): void;
    }

    Type Parameters

    Index

    Properties

    clientTypes: ClientToolsFromCore<T>

    Phantom type for client-side type inference.

    This property has no runtime value - it exists only at the type level to enable automatic client type extraction.

    // server.ts
    export { app };

    // ui.tsx
    import { createTypedClient } from "@mcp-apps-kit/ui";
    import { app } from "./server";
    const client = await createTypedClient(app);
    // server.ts
    export const v1 = app.getVersion("v1")!;

    // ui.tsx
    const client = await createTypedClient(v1);
    expressApp: unknown

    Get the underlying Express app for serverless deployments (e.g., Vercel). Use this for default exports in serverless environments.

    // For Vercel deployment, export the Express app:
    export default app.expressApp;
    tools: T

    Typed tool definitions (for type inference)

    Methods

    • Get a version-specific app instance

      For multi-version apps, returns the app instance for the specified version. For single-version apps, returns undefined.

      Parameters

      • versionKey: string

        Version key (e.g., "v1", "v2")

      Returns App<T>

      App instance for the version, or undefined if not found

      const v1App = app.getVersion("v1");
      if (v1App) {
      v1App.use(v1SpecificMiddleware);
      }
    • Get list of available version keys

      For multi-version apps, returns array of version keys (e.g., ["v1", "v2"]). For single-version apps, returns empty array.

      Returns string[]

      Array of version keys

      const versions = app.getVersions();
      // ["v1", "v2"] for multi-version apps
      // [] for single-version apps
    • Get Express middleware for custom server setup

      Returns ExpressMiddleware

    • Handle a single request (for serverless)

      Parameters

      • req: Request
      • Optionalenv: unknown

      Returns Promise<Response>

    • Subscribe to event

      Handler called every time event is emitted until unsubscribed. Handlers execute in registration order. Errors in handlers are isolated (logged but don't affect other handlers).

      Type Parameters

      • K extends keyof EventMap

      Parameters

      • event: K

        Event name (type-checked)

      • handler: EventHandler<EventMap[K]>

        Handler function (payload type inferred)

      Returns UnsubscribeFn

      Unsubscribe function

    • Subscribe to all events (wildcard listener)

      Handler receives every event with event name and payload. Useful for logging, debugging, or analytics.

      Parameters

      • handler: AnyEventHandler

        Handler function receiving all events

      Returns UnsubscribeFn

      Unsubscribe function

    • Subscribe to event (one-time)

      Handler called once, then automatically unsubscribed. Useful for initialization events or one-time setup.

      Type Parameters

      • K extends keyof EventMap

      Parameters

      • event: K

        Event name (type-checked)

      • handler: EventHandler<EventMap[K]>

        Handler function (payload type inferred)

      Returns UnsubscribeFn

      Unsubscribe function (can call to cancel before event fires)

    • Start the built-in Express server

      Parameters

      • Optionaloptions: StartOptions

      Returns Promise<void>

    • Register middleware function

      Middleware executes in registration order before tool handlers. Multiple middleware can be registered via multiple use() calls.

      Parameters

      Returns void

      app.use(loggingMiddleware);
      app.use(authMiddleware);
      app.use(rateLimitMiddleware);