Skip to main content
Glama
jens-duttke

mcp-popup-ui

by jens-duttke

ask_user

Presents a popup with selectable options to collect a single decision from the user, enabling interactive choice when you need confirmation or a preference.

Instructions

Ask the user to choose exactly ONE option from a list. Use this tool instead of listing options in your text response whenever you need the user to make a decision.

WHEN TO USE THIS TOOL:

  • You are about to list numbered options and ask "which do you prefer?"

  • You need user confirmation on a specific choice before proceeding

  • The user must pick one mutually exclusive option (e.g., "Which approach should I implement?", "Which file should I modify?", "What framework do you want?")

EXAMPLES OF WHEN TO USE:

  • "Should I use Option A, B, or C?" → Use this tool

  • "Which implementation approach?" → Use this tool

  • "What programming language?" → Use this tool

  • "Pick a template to scaffold" → Use this tool

⚠️ CRITICAL: Each parameter MUST be passed SEPARATELY. Do NOT combine them!

❌ WRONG (options contains title/description - WILL FAIL): options: [{"label": "A"}, {"label": "B"}], "title": "...", "description": "..."

✅ CORRECT (each parameter separate): options: [{"label": "A"}, {"label": "B"}] title: "Pick one" description: "Choose your preference"

PARAMETERS:

  • options (REQUIRED): Array of objects, each with "label" (required) and optional "description", "recommended"

  • title (optional): String displayed above options

  • description (optional): String displayed below title

  • allow_other (optional): Boolean to allow custom input

The tool opens a popup in the user's browser and waits for their selection. If allow_other is true, users can enter custom text if predefined options don't fit. Returns the selected option as a string, or indicates if the user skipped.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleNoOptional title displayed above the selection. Use to provide context or ask a question.
optionsYesList of options for the user to choose from. Each option must have a label property. Use description for additional context (pros/cons, code examples). The user will see these in a popup and select one.
allow_otherNoIf true, adds an "Other" option that allows the user to enter custom text. Use when the predefined options might not cover all possibilities.
descriptionNoOptional description text displayed below the title. Use for additional instructions or clarification.
other_labelNoCustom label for the "Other" option. Only used when allow_other is true.Other

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesWhether the user submitted a selection, skipped, or requested an explanation for an option
commentsNoAdditional comments provided by the user (only present if allow_comments was true and user entered text)
selectionNoThe selected option (only present if action is "submit")
explainOptionNoThe option for which explanation was requested (only present if action is "request_explanation")
explainMessageNoA pre-formatted message asking for explanation (only present if action is "request_explanation")
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full transparency burden. It discloses that the tool 'opens a popup in the user's browser and waits for their selection,' describes the behavior for allow_other, and states the return value (selected option or skip indication). It omits potential timeout/cancellation behavior, but the disclosed core interaction is clearly explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but well-structured with headings, examples, and a prominent warning. It front-loads the core purpose and usage. Some repetition exists (e.g., multiple examples of single-choice questions), but each section serves a distinct role, so the length is justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's interactive nature and five parameters, the description is remarkably complete. It covers what the tool does, when to use it, how to pass parameters correctly, what the popup does, and what it returns. The sibling distinction is implicit via 'exactly ONE,' and the output behavior is addressed, making it adequate even with the output schema present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all parameters at 100% coverage, so the baseline is 3. The description adds genuine value with its CRITICAL warning that parameters must be passed separately, including explicit wrong and correct examples. This clarifies a common misuse that the schema alone does not fully convey, elevating it to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Ask the user to choose exactly ONE option from a list.' It explicitly contrasts with text-based listing and the sibling tool by emphasizing 'exactly ONE,' making the tool's role and scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides extensive when-to-use guidance, including concrete triggers and examples like 'Should I use Option A, B, or C?' It does not explicitly mention the sibling tool ask_user_multiple by name or state 'do not use when multiple selections are needed,' but the emphatic 'exactly ONE' and mutual-exclusivity wording imply the exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jens-duttke/mcp-popup-ui'

If you have feedback or need assistance with the MCP directory API, please join our Discord server