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
TypeScript
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