MCP server exposing Jarvis voice assistant tools (home automation, PC control, web, communication). Reuses the tool registry from tools/ folder; each tool marked mcp_expose=True is automatically exposed with its name, description, and parameter schema. Supports stdio (default) or HTTP/SSE transport.
This server has significant structural and documentation gaps. All three tools have descriptions in French that exceed recommended length (194 char baseline; these average ~250 chars). Tool names are action verbs (call_with_message, launch_app, ajouter_app) but lack clarity for non-French speakers and tool composition. Input schemas ARE present with typed parameters, but descriptions within schemas are sparse or missing. Two tools (call_with_message, ajouter_app) require confirmation flags but lack clear error handling guidance for denial scenarios. The server's reliance on a YAML config file (config.yaml) for state introduces coupling and statefulness concerns. No tool returns documented output schemas, agents cannot know what fields to expect, breaking downstream tool chaining. The third tool (launch_app) lacks enum constraints for application names, inviting hallucinated values. Overall, the server resembles a hobby project rather than production-grade tooling.
Ajoute une application ou un jeu au mapping (config.yaml) : un nom et un chemin .exe OU un identifiant Steam (steam://rungameid/NUMERO). A utiliser quand l'utilisateur donne le chemin d'une app inconnue.
Appelle un numero par telephone (Twilio), joue un message parle, enregistre la reponse et la transcrit. Pour 'appelle le resto et demande s'ils sont ouverts ce soir', 'appelle ce numero pour dire...'. Jarvis se presente comme assistant automatise. Confirmation requise.
Lance une application ou un jeu configure (Borderlands, Spotify, OBS...). Pour 'lance Borderlands', 'ouvre Spotify', 'demarre OBS'. Supporte les jeux Steam (steam://rungameid). Si l'app est inconnue, renvoie un message : propose alors a l'utilisateur de l'ajouter.
No output schemas documented for any tool. Agents cannot plan downstream calls or extract chaining IDs.
Confirmation-required tools (call_with_message, ajouter_app) lack error handling guidance. What happens if the agent submits confirm=false? Does the tool refuse, prompt again, or fail silently?
Tool descriptions are 200-250 characters, exceeding the 194-char baseline. Descriptions use conversational French phrasing and examples instead of WHAT/WHEN/WHY structure, reducing clarity for non-French LLMs and wasting tokens.
launch_app 'nom' parameter lacks enum constraint. Agents can hallucinate application names (e.g., 'Fortnite') that do not exist in config.yaml, triggering fallback behavior and wasting turns.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
ajouter_app 'chemin' parameter accepts either '.exe path' OR 'steam://rungameid/...' with no enum or regex pattern. Agents may pass malformed paths or arbitrary strings.
Implicit tool dependencies not documented. launch_app suggests calling ajouter_app on failure, but this multi-step recovery flow is not formally described. Agents must infer the pattern from error messages.
Descriptions and parameter docs are in French only. Non-Francophone LLMs may misunderstand intent, parameter meanings, and error recovery paths.
Parameter descriptions are 10-50 characters (well below 72-char baseline for A+ tools). Insufficient detail on expected format, constraints, or usage context.