Skip to content

Variable: ask

ts
const ask: AskFunction;

Defined in: packages/core/src/core/elicitation/ask.ts:224

ask — The Callable Namespace for MCP Elicitation.

Works as both a function (await ask('msg', { fields })) and a namespace (ask.string(), ask.enum(), ask.redirect()).

Transport context is bound via AsyncLocalStorage — zero ctx needed.

Example

typescript
import { ask } from '@vurb/core';

// DSL — field descriptors
ask.string('Name')
ask.number('Age').min(18).max(120)
ask.boolean('Confirm').default(true)
ask.enum(['free', 'pro'] as const, 'Plan')

// Form mode — request structured input
const result = await ask('Fill in:', { name: ask.string('Name') });

// URL mode — redirect to external page
const auth = await ask.redirect('Authenticate:', oauthUrl);