Skip to main content
Glama
zeph-to

@zeph-to/mcp-server

by zeph-to

zeph_ask

Request user input with quick-reply buttons and a text field in one notification, then wait for their tap or typed response. Use for confirmations, choices, and free-text answers.

Instructions

Ask the user a question with quick-reply buttons and a text input field. Combines prompt (buttons) and input (text) in a single notification. The user can either tap a button or type a response. actions is the steering surface, not decoration: pass 2–4 buttons on nearly every ask — the next-step candidates you would otherwise write as prose (next command, review, stop) plus a safe Done-like fallback. Leave actions out ONLY when the answer is inherently free-form text (a name, a path, a paragraph); a bare text box on a "done — what next?" ask leaves the phone with nothing to tap. Blocks until the user responds or the timeout is reached. Requires ZEPH_HOOK_ID environment variable. The user may also attach screenshots or files to the answer: those arrive as local absolute paths in the attachments field of the result, and reading them is part of reading the answer. NOTE: unlike zeph_notify and zeph_file, this tool is never end-to-end encrypted — the hook route it uses cannot carry the sender key — so do not put secrets in the question or expect a private answer.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNoContext or instructions
titleYesQuestion or request title
actionsNoQuick-reply buttons (1-4). Expected on nearly every ask — the phone steers by tapping, so put the next-step candidates here (next command, review, stop) plus a Done-like fallback. Omit ONLY when the answer is inherently free-form text; never omit on a "done — what next?" ask.
timeoutNoSeconds to wait for response (default: 120)
fallbackNoAction ID to auto-select on timeout
inputTypeNoInput field type (default: text)text
placeholderNoInput field placeholder hint
Behavior5/5

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

Annotations are present (readOnlyHint=false, openWorldHint=true, destructiveHint=false) but the description adds substantial context beyond them: it blocks until timeout, requires ZEPH_HOOK_ID, exposes attachment handling, and warns that the tool is never end-to-end encrypted. This goes beyond structured fields and helps the agent anticipate side effects.

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 long but every sentence carries critical operational or safety information: purpose, actions best practices, blocking, environment variable, attachments, and encryption. It is front-loaded with the core purpose. Slight redundancy with schema-given actions guidance keeps it from a 5.

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

Completeness3/5

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

The description covers parameters, environment, blocking, attachments, and security, which is comprehensive for usage. However, there is no output schema, and the description does not explain the full return value (e.g., selected action id and typed text) – only mentioning that attachments arrive as paths. This leaves a gap in what the agent can expect from the result.

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?

Schema coverage is 100% and schema descriptions are detailed. The description nonetheless adds meaning to the actions parameter by recommending 2–4 buttons and a safe Done-like fallback, and by explaining the principle 'steering surface, not decoration.' While some repetition exists, the extra contextual framing improves parameter understanding beyond the schema.

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 opens with a specific verb and resource: 'Ask the user a question with quick-reply buttons and a text input field.' It clearly distinguishes from siblings by presenting the combined prompt+input behavior and explicitly contrasts with zeph_notify and zeph_file regarding encryption. This is a clear, actionable purpose statement.

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

Usage Guidelines5/5

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

Explicit guidance is provided: 'actions is the steering surface, not decoration: pass 2–4 buttons on nearly every ask... Leave actions out ONLY when the answer is inherently free-form text.' It also mentions alternatives indirectly by distinguishing from notify/file and clarifies when to omit actions. This satisfies both when-to-use and when-not-to-use.

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/zeph-to/mcp-server'

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