Ellen Joe AI assistant — cool, aloof, secretly helpful. Powered by OpenClaw with MCP tools. A Telegram bot that uses multiple LLM models (GLM, Gemini, Claude) with tool calling support for Gmail, Google Drive, Google Calendar, video downloading, and more.
Ellen Bot exposes 11 tools with basic schemas and descriptions, but falls short of production quality. Tool names lack consistent verb-noun structure (e.g., 'download' appears twice for different resources, creating ambiguity). Descriptions are present but generic (avg ~80 chars, below the 194-char baseline for A+ tools). Parameter descriptions exist but lack constraints, ranges, and format guidance. Output schemas are not documented. Error handling is absent, no recovery guidance, retryability classification, or actionable error messages. The server is STDIO-only, which is a hard transport limitation. Overall, this reads as a hobby project with functional but unpolished tool definitions.
Create a calendar event with summary, start time, optional end time, and description
Delete a calendar event by event ID
Download a file from Google Drive
Download video or audio from YouTube, Instagram, TikTok, Twitter, and 1000+ other sites using yt-dlp
Get video information (title, duration, uploader, platform) without downloading
Get all calendar events for today
Get upcoming calendar events for the next N days (default 7)
List recently modified files in Google Drive
Duplicate tool names: 'download' appears in both downloader.js and drive.js. LLMs cannot distinguish between them and will select the wrong tool. Rename to 'downloadVideo' and 'downloadFile' or similar.
Generic tool names lack verb-noun clarity. 'search' (in drive.js) is ambiguous, does it search files, folders, or content? Rename to 'searchDriveFiles' or 'searchDrive'. 'getInfo' is vague, rename to 'getVideoInfo' to match context.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. Document what each tool returns (e.g., createEvent returns {eventId, summary, startTime, endTime}). This is required for tool chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Save text content to Google Drive as a text file
Search Google Drive for files matching a query
Upload a file to Google Drive
Parameter descriptions lack constraints and format guidance. E.g., 'startTime' says 'ISO format' but does not specify timezone handling, whether seconds are required, or what happens if the format is invalid. Add: 'ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ), UTC timezone required.'
No error handling or recovery guidance. If deleteEvent fails (event not found, permission denied, etc.), the LLM receives no actionable error message. Add: 'If event not found, call getToday() or getUpcoming() to verify the event ID exists.'