UNPKG

mcp-use

Version:

Opinionated MCP Framework for TypeScript (@modelcontextprotocol/sdk compatible) - Build MCP Agents, Clients and Servers with support for ChatGPT Apps, Code Mode, OAuth, Notifications, Sampling, Observability and more.

72 lines 3.09 kB
import type { GetPromptResult, CallToolResult } from "@modelcontextprotocol/sdk/types.js"; import type { InputDefinition, OptionalizeUndefinedFields } from "./common.js"; import type { z } from "zod"; import type { TypedCallToolResult } from "../utils/response-helpers.js"; import type { McpContext } from "./context.js"; export type { GetPromptResult }; export type { GetPromptResult as PromptResult }; /** * Enhanced Prompt Context that provides access to request context. * * This unified context provides: * - `auth` - Authentication info (when OAuth is configured) * - `req` - Hono request object * - All other Hono Context properties and methods * * @template HasOAuth - Whether OAuth is configured (affects auth availability) */ export type EnhancedPromptContext<HasOAuth extends boolean = false> = McpContext<HasOAuth>; /** * Extract input type from a prompt definition's schema */ export type InferPromptInput<T> = T extends { schema: infer S; } ? S extends z.ZodTypeAny ? OptionalizeUndefinedFields<z.infer<S>> : Record<string, any> : Record<string, any>; /** * Helper interface that uses method signature syntax to enable bivariant parameter checking. * @internal */ interface PromptCallbackBivariant<TInput, HasOAuth extends boolean> { bivarianceHack(params: TInput, ctx: EnhancedPromptContext<HasOAuth>): Promise<CallToolResult | GetPromptResult | TypedCallToolResult<any>>; } /** * Callback type for prompt execution - supports both CallToolResult (from helpers) and GetPromptResult (old API). * Uses bivariant parameter checking for flexible destructuring patterns. * * @template TInput - Input parameters type * @template HasOAuth - Whether OAuth is configured (affects ctx.auth availability) */ export type PromptCallback<TInput = Record<string, any>, HasOAuth extends boolean = false> = PromptCallbackBivariant<TInput, HasOAuth>["bivarianceHack"]; /** * Prompt definition with cb callback (old API) */ export interface PromptDefinition<TInput = Record<string, any>, HasOAuth extends boolean = false> { /** Unique identifier for the prompt */ name: string; /** Human-readable title for the prompt */ title?: string; /** Description of what the prompt does */ description?: string; /** Argument definitions (legacy, use schema instead) */ args?: InputDefinition[]; /** Zod schema for input validation (preferred) */ schema?: z.ZodObject<any>; /** Async callback function that generates the prompt */ cb: PromptCallback<TInput, HasOAuth>; } /** * Prompt definition without cb callback (new API with separate callback parameter) */ export interface PromptDefinitionWithoutCallback { /** Unique identifier for the prompt */ name: string; /** Human-readable title for the prompt */ title?: string; /** Description of what the prompt does */ description?: string; /** Argument definitions (legacy, use schema instead) */ args?: InputDefinition[]; /** Zod schema for input validation (preferred) */ schema?: z.ZodObject<any>; } //# sourceMappingURL=prompt.d.ts.map