A Windows desktop voice assistant with wake-word detection, speech-to-text, text-to-speech, security monitoring, calendar awareness, and MCP tool integration
Jarvis has 20 tools with basic naming and descriptions, but significant gaps in schema completeness, parameter documentation, and error handling. Most tools lack detailed input schemas, many show only parameter names without type constraints, enums, or ranges. Descriptions are present but often generic (10-50 chars), below the 50-200 char baseline for LLM optimization. No output schemas documented. Error handling is minimal; tools do not guide recovery or categorize failures. Security-sensitive tools (arm_security, disarm_security, enroll_face) lack permission gates or audit trail documentation. The server is STDIO-only, capping protocol readiness at 50.
Arm the security system with optional passphrase challenge
Grab a still frame from the USB webcam for Claude to describe
Detect acoustic events (doorbell, knock, glass break, alarm, etc.) from ambient audio
Disarm the security system
Enroll a face for authentication (if face_recognition is installed)
Enroll a new speaker voice for identification
Flush the Windows DNS cache
Fetch upcoming calendar events from published Outlook iCal URL
STDIO transport only, not remotely accessible. Cannot be used by hosted MCP clients or cloud-based agents. Requires local subprocess spawning.
Input schemas incomplete or missing for 12+ tools. camera_snapshot, get_plex_status, get_system_info, arm_security, detect_ambient_sound, identify_speaker, enroll_face have no visible input schema or only empty objects. LLMs cannot infer parameter constraints.
Descriptions too short or generic for LLM optimization. arm_security (40 chars), enroll_face (45 chars), camera_snapshot (50 chars) fall below 50-char baseline. No guidance on WHEN to call each tool or what it returns.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Query How Long To Beat for game completion time estimates
Get news headlines from RSS feeds
Query Plex server status and library information via MCP
Query system health and logs on the remote Plex laptop via SSH
Get current security system status and armed state
Get PC diagnostics including CPU, RAM, disk, processes, and services
Identify the current speaker via voice embeddings (speaker identification)
Hybrid semantic search over local knowledge base using keyword FTS5 and vector embeddings
Restart a Windows service by name
Send a message to Discord via webhook
Create a reminder for a specific time
Create a timer for a duration
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields. E.g., get_system_info returns diagnostics but structure is undocumented.
Security-sensitive tools lack permission gates and audit trail documentation. arm_security, disarm_security, enroll_face, enroll_speaker have no visible access control or logging requirements. No error guidance for failed authentication.