A comprehensive AI workstation with backend tool engine, web scraping, vision analysis, scheduling, file operations, and system control capabilities. Includes MCP SDK integration for tool management.
Server has 15 tools with basic schemas and descriptions, but significant quality gaps. Most tool descriptions are present but lack depth on WHEN to use them vs. alternatives. Parameter descriptions are minimal or missing. No output schemas documented. Error handling is absent, tools return raw strings without guidance for LLM recovery. Tool naming is inconsistent (verb_noun for some, but 'canvas', 'spawn', 'message' lack clear action verbs). No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Critical security issue: run_command and write_file are exposed without permission gates or input validation. Sampling feature is enabled but not integrated with LLM provider, appears to be a stub. Overall, this reads as an early-stage prototype rather than production-ready.
Evaluate mathematical expressions for 100% accuracy. Use this whenever the user asks a math question or needs a calculation (e.g. "What is 15 * 24?", "Calculate 2+2").
Open the camera to capture a photo. Use this when the user says "open camera", "take photo", or "camera kholo". This will show a live camera preview to the user.
Control the Agentic Canvas for high-fidelity interactive UI. Actions: "present", "hide", "reset", "push", "snapshot". UI blocks support: (1) "text": {label, content} (2) "metric": {label, value, trend} (3) "button": {label, actionId, payload: {prompt, autoSubmit: true}} (4) "chart": {label, chartType: "bar"|"line"|"area"|"pie", data: [{name, value}]} (5) "diff": {oldCode, newCode, fileName} (6) "preview": {label, content (HTML/CSS/JS)}. Use this for dashboards, code patches, web previews and taking captures.
Perform deep web research on a topic. Searches the web, crawls the top 3 result pages, extracts clean content from each, and merges them into a comprehensive research report. Use this for complex questions that need multiple sources.
List contents of a directory.
run_command and write_file expose destructive operations without permission gates, input validation, or confirmation steps. No dry-run support. LLM can execute arbitrary shell commands or overwrite critical files.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. Responses are free-text strings, forcing LLM parsing and wasting tokens.
Error handling is absent. Tools return raw strings ('File not found', 'No results found') without recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
AGENT TOOL: Send a direct message, notification, or result to the user. Use this when you are running asynchronously in the background and need to notify the user that your task is complete or if you need to report partial progress.
Read a file from the system.
Search the web for real-time information. Use this for general web search, news, DuckDuckGo, or finding facts.
Run a terminal command.
CRITICAL: Use this for ANY request to "remind", "schedule", "notify", or "task at X time". Examples: "remind me in 5 mins", "schedule a meeting at 4pm", "notify me daily at 9am". Always use this tool for time-based actions.
Browse a URL and extract clean, readable content as Markdown. Use this instead of raw page scraping.
AGENT TOOL: Spawn an asynchronous, non-blocking background subagent for long-running tasks. This tool will return immediately, and the background agent will use the "message" tool to notify the user directly when the entire task is complete. Useful for slow tasks that should not block the main orchestrator.
Manage Liya system, check status, clear logs, or manage automations.
Analyze an image or the current screen.
Write a file to the system.
Tool naming inconsistency: 'canvas', 'spawn', 'message' lack clear action verbs. 'canvas' should be 'update_canvas' or 'render_canvas'. 'spawn' should be 'spawn_subagent'. 'message' should be 'send_message'. Ambiguous names reduce LLM's ability to infer intent.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLM cannot distinguish safe reads from destructive writes. Sampling feature enabled but not integrated with LLM provider, appears to be a stub.