Provides tools for getting human input and choices through GUI dialogs. Enables LLMs to pause and ask for human feedback, input, or decisions. Supports Windows and macOS platforms. Integrates with Telegram for remote human feedback collection.
This server provides 17 tools spanning GUI dialogs, screenshots, OCR, voice transcription, and Telegram integration. While tool names follow verb_noun conventions and descriptions are present, there are significant gaps in schema completeness, parameter descriptions, and error handling guidance. Many tools lack explicit input validation constraints and recovery instructions. The server handles a legitimate use case (human-in-the-loop workflows) but falls short of production-grade definition quality.
Retrieve chat history from the automatic logging system (if enabled).
Present the user with a list of choices and return the selected one.
Prompt the user for a single line of text input via a GUI dialog.
Prompt the user for multiline text input via a GUI dialog.
Extract text from an image using RapidOCR engine (requires PIL and rapidocr-onnxruntime).
Display a message to the user via a GUI dialog.
Capture a screenshot of the entire screen or a specific window.
Windows-specific: Capture a screenshot using pyautogui.
Platform-specific tool naming ('take_screenshot_windows') violates single-responsibility principle and creates ambiguity, LLMs cannot determine when to use platform-specific variants. No Unix/macOS variants exposed.
Output schemas for most tools are not explicitly documented in source. While input schemas are present with types and descriptions, return value structures (e.g., what does 'telegram_get_message' return?) are not visible or formally specified. This forces LLMs to infer output fields.
Error handling and recovery guidance missing throughout. Tools like 'ocr_image' (requires PIL and rapidocr-onnxruntime) and 'transcribe_voice' (requires HITL_WHISPR_ENABLED) have optional dependencies but no error guidance for missing packages. No 'retryable' vs 'fatal' error classification.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Get the next message from the Telegram queue (blocks until a message arrives).
Reply to a specific Telegram message.
Send a message to a Telegram chat.
Send a photo to a Telegram chat.
Start polling Telegram for incoming messages and images. Returns session info and current message queue.
Transcribe a voice message using Whispr (faster-whisper). Requires HITL_WHISPR_ENABLED to be set.
Get the current Whispr (voice transcription) configuration.
Install faster-whisper dependencies if not already installed.
Update Whispr (voice transcription) configuration.
'telegram_start_polling' accepts 'bot_token' as a parameter, a secret. Credentials must never appear as tool parameters; they should be injected server-side via environment variables. Tokens in parameters leak into agent logs and traces.
'take_screenshot_windows' has empty schema ({}) with no parameters and minimal description ('Windows-specific: Capture a screenshot using pyautogui'). Unclear when/why to use this over 'take_screenshot'. Not actionable for LLM decision-making.
Pagination not documented. Tools returning collections (e.g., 'get_chat_history', list-like telegram operations) do not specify page/limit/offset parameters or return total_count/next_cursor. Without pagination, large result sets blow context windows.
Timeout parameter in 'telegram_get_message' (default 300 seconds) lacks validation constraints. Description does not specify minimum/maximum bounds. An LLM could pass timeout=0 or timeout=99999 without guidance.
'allowed_chat_ids' in 'telegram_start_polling' is optional (empty array means all chats allowed) but the description does not explain the security/privacy implications. An agent calling this without thinking could expose the bot to all chats.
'whispr_install' has minimal description ('Install faster-whisper dependencies if not already installed') and no guidance on failure modes (network errors, disk space, permission issues). LLM cannot infer recovery steps.