UNPKG

jsonv-ts

Version:

JSON Schema builder and validator for TypeScript with static type inference, Hono middleware for OpenAPI generation and validation, and MCP server/client implementation. Lightweight, dependency-free, and built on Web Standards.

116 lines (115 loc) 3.84 kB
import type { ToolsCallMessage, ResourcesReadMessage, LoggingMessage } from "./messages"; import type { TRpcMessageParams } from "./rpc"; import type { MaybePromise } from "./utils"; export interface McpClientConfig { name?: string; version?: string; transport?: "streamableHttp"; url: string | URL; fetch?: typeof fetch | ((url: string | RequestInfo | URL, options?: RequestInit) => MaybePromise<Response>); } export declare class McpClient { readonly config: McpClientConfig; private id; private sessionId; constructor(config: McpClientConfig); private request; connect(): Promise<{ protocolVersion: string; capabilities: { tools: {} | undefined; resources: {} | undefined; logging: {}; completions: {}; }; serverInfo: { name: string; version: string; }; } | undefined>; ping(): Promise<{} | undefined>; setLoggingLevel(level: TRpcMessageParams<LoggingMessage>["level"]): Promise<{} | undefined>; listResources(): Promise<{ resources: { [x: string]: string | number | { [key: string]: unknown; } | undefined; name: any; title: string | undefined; description: string | undefined; mimeType: string | undefined; size: number | undefined; _meta: { [key: string]: unknown; } | undefined; }[]; } | undefined>; listResourceTemplates(): Promise<{ resourceTemplates: { [x: string]: string | number | { [key: string]: unknown; } | undefined; name: any; title: string | undefined; description: string | undefined; mimeType: string | undefined; size: number | undefined; _meta: { [key: string]: unknown; } | undefined; }[]; } | undefined>; readResource(message: TRpcMessageParams<ResourcesReadMessage>): Promise<{ contents: ({ mimeType: string; title?: string; description?: string; text?: string; uri: `${string}://${string}`; name: string; size: number | undefined; _meta: { [key: string]: unknown; } | undefined; } | { mimeType: string; title?: string; description?: string; blob?: string; uri: `${string}://${string}`; name: string; size: number | undefined; _meta: { [key: string]: unknown; } | undefined; })[]; } | undefined>; callTool(message: TRpcMessageParams<ToolsCallMessage>): Promise<{ content: (import("./tool").ToolResponseText & any[]) | import("./tool").ToolResponseText[]; } | { content: { type: string; text: string; }[]; isError: boolean; } | undefined>; listTools(): Promise<{ tools: { name: any; title: string | undefined; description: string | undefined; inputSchema: import("../lib").JSONSchemaDefinition; outputSchema: import("../lib").JSONSchemaDefinition | undefined; annotations: { title?: string | undefined; readOnlyHint?: boolean | undefined; destructiveHint?: boolean | undefined; idempotentHint?: boolean | undefined; openWorldHint?: boolean | undefined; } | undefined; _meta: { [key: string]: unknown; } | undefined; }[]; } | undefined>; }