MCP server for remote Windows screen monitoring with Telegram delivery
This STDIO-only MCP server provides 4 tools for Windows screen capture and recording with Telegram integration. Tool naming is clear and action-oriented (list_, screenshot_, record_). All tools have descriptions and input schemas are properly defined using Zod. However, there are significant gaps: (1) Parameter descriptions lack actionable context about expected formats and constraints; (2) No output schemas are documented despite tools returning structured responses; (3) Error handling is minimal, failures return raw text without recovery guidance; (4) No pagination, limits, or result constraints despite video/screenshot operations. The server is functional but does not meet production quality baselines for agent tooling.
List all visible windows on the system with their title, ID, app name, position, and dimensions. Use this to discover available windows before taking a screenshot of a specific one.
Record a short video of the screen. Duration is 1-30 seconds. The video is encoded as MP4 (H.264) and sent to Telegram. Requires ffmpeg installed on the system.
Take a screenshot of the entire screen (primary monitor by default). Optionally specify a monitor index. The screenshot is sent to Telegram and also returned inline as a base64 image.
Take a screenshot of a specific application window by its title. Use list_windows first to see available windows. Matches by case-insensitive substring.
Output schemas not documented. Tools return responses with structured fields (window summary, base64 image data, video metadata) but there is no formal schema declaration. Agents cannot reliably parse outputs or plan downstream steps.
Parameter descriptions lack actionable constraints. 'monitor_index' describes what it does but doesn't state the valid range or default behavior clearly. 'duration_seconds' has Zod constraints (1-30) but the description doesn't explain the practical consequence of choosing 1 vs 30 seconds.
No error recovery guidance. When tools fail (ffmpeg not installed, Telegram not configured, monitor out of range), responses tell the LLM WHAT happened but not WHAT TO DO NEXT. Example: 'ffmpeg is not installed' should suggest 'Install ffmpeg or disable recording features.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
No result limits or pagination. Screenshot and recording tools do not document any maximum size constraints, timeouts, or result limits. Large video files or high-resolution multi-monitor captures could exhaust agent context or timeout.
list_windows input schema is an empty object {}. While the tool takes no parameters, the schema should explicitly be declared as an empty object in the tool registration, not implicitly inferred. This is a structural clarity issue.