UNPKG

xmcp

Version:

The TypeScript MCP framework

24 lines (23 loc) • 1.52 kB
import { Client, type ClientContext, type ClientOptions, type ConnectOptions, type HandlerResultTypeMap, type RequestTypeMap } from "@modelcontextprotocol/client"; import type { ClientDefinition } from "./types"; type Handler<Method extends keyof RequestTypeMap> = (request: RequestTypeMap[Method], context: ClientContext) => HandlerResultTypeMap[Method] | Promise<HandlerResultTypeMap[Method]>; export interface ClientHandlers { sampling?: Handler<"sampling/createMessage">; /** Handles both form and URL elicitation requests. */ elicitation?: Handler<"elicitation/create">; roots?: Handler<"roots/list">; } export interface ManagedClientOptions { handlers?: ClientHandlers; /** Defaults to automatic modern/legacy protocol negotiation. */ versionNegotiation?: ClientOptions["versionNegotiation"]; /** SDK connection options, including timeout and cancellation signal. */ connect?: ConnectOptions; /** Receives piped subprocess stderr; otherwise it is forwarded to stderr. */ onStderrData?: (chunk: Buffer) => void; } /** Connect using a client definition, with handlers installed before negotiation. */ export declare function createClient(definition: ClientDefinition, options?: ManagedClientOptions): Promise<Client>; /** Run an operation and close the connection even when the operation fails. */ export declare function withClient<T>(definition: ClientDefinition, operation: (client: Client) => T | Promise<T>, options?: ManagedClientOptions): Promise<T>; export {};