MCP server that lets an AI agent ask its owner for approval on their phone before doing something irreversible.
Two tools with strong, specific descriptions and well-structured schemas. ask_approval has excellent parameter documentation with clear constraints (minLength, maxLength, enum, min/max for timeout). send_notification similarly well-defined with enum priority and URL format validation. Both descriptions clearly state WHEN to use each tool and what happens. However, output schemas are not explicitly documented in the source code provided, only input schemas are visible. Tool names are action-verb-based and unambiguous. No critical security issues detected (no secrets in params). Error handling guidance is present in descriptions but not formalized in schema.
Ask the human who owns this machine to approve or deny something, on their phone, and wait for the answer. Use this BEFORE anything irreversible or expensive: deploying, deleting data, spending money, sending mail to real people, force-pushing, touching production. Returns APPROVED, DENIED, or NO ANSWER. Proceed only on APPROVED — a denial and a timeout both mean stop.
Tell the human something, on their phone. Use for finishing a long job, a build breaking, or anything worth interrupting them for. This does NOT wait for a reply — use ask_approval when you need permission.
Output schemas not documented in source. Input schemas are complete, but return types (success/failure structure, field names, error responses) are not visible in the provided code.
Error handling is described in natural language but not formalized. No explicit error classification (retryable vs user-fixable vs fatal) or recovery guidance in structured form.
ask_approval description mentions 'APPROVED, DENIED, or NO ANSWER' as return values, but the actual response schema structure is not visible. LLMs need to know the exact field names and types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |