MCP server that auto-responds to WhatsApp messages from a contact using OpenAI API
This MCP server exhibits significant definition quality issues across naming, descriptions, and schemas. While 5 tools are present, only 2 have partial input schemas visible (update-settings, update-context). Tool descriptions are generic and lack guidance on when/why to use each tool or expected outcomes. No tools document their return schemas. Error handling provides no recovery guidance. Security concerns are critical: the server accepts phone numbers and file paths as parameters without sanitization, risking path traversal and injection attacks. The implementation is HTTP-based but lacks MCP protocol patterns (no _meta, no per-request capabilities, no proper response shaping). This server appears to be a custom HTTP wrapper around WhatsApp automation rather than a spec-compliant MCP server.
Clear conversation history for a specific phone number or all conversations
Retrieve current WhatsApp bot settings (phone number and context file)
Health check endpoint that verifies environment configuration and OpenAI API key availability
Update or create a context file used for AI response generation
Update WhatsApp bot settings including phone number and context file
No input or output schemas documented for any tool. Descriptions in code are present but tool registration lacks formal JSON Schema.
Path traversal vulnerability: 'contextFile' and 'filename' parameters accept raw file paths without validation. Attacker/LLM could pass '../../../etc/passwd' or similar.
Tool descriptions lack action-oriented guidance. E.g., 'clear-history' does not state it is irreversible, does not suggest when to use it (per-user debugging? storage cleanup?), and does not describe recovery (no undo tool).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 32 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 29 | - | v1 |
No error handling or recovery guidance in any tool. If update-settings fails (bad file path, bad phone format), LLM receives no hint on what to do next (retry? ask user? try alternative?).
Parameter descriptions are minimal or absent. E.g., 'phoneNumber' is described as 'The phone number of the contact to monitor', but what format? E.g164? With or without '+' or country code? Does '14254572311' need a leading '1'?
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Per CURRENT spec (2026-07-28), tool annotations are a supported pattern.
No input validation examples or constraint documentation. E.g., is phoneNumber validated as E.164? Does contextFile must exist before update-settings? Can filename contain special chars?