Pushover MCP server for AI agents. Exposes the Pushover notification service as tools for sending push notifications and managing emergency-priority messages.
This server demonstrates solid definition quality with consistent tool naming, complete parameter schemas, and clear descriptions. All 4 tools follow verb_noun naming conventions (pushover_send_message, pushover_check_receipt, pushover_cancel_receipt, pushover_cancel_receipt_by_tag). Parameter schemas are well-structured with types and descriptions present for all inputs. However, there are gaps in output documentation (no visible return schema definitions), missing parameter constraints (enums for priority values, string length/format documentation), and incomplete error handling guidance. The server validates inputs thoroughly at runtime but does not communicate constraints clearly in parameter descriptions. Tool compositions are sound, each performs a single responsibility. No security issues detected (no secrets in parameters).
Cancel retries for an emergency-priority notification.
Cancel all emergency-priority notifications matching a tag.
Check the status of an emergency-priority notification receipt.
Send a push notification via the Pushover API.
Output schemas not documented. Tools return JSON responses (via jsonResult helper) but no formal output schema is visible in the code or tool definitions. LLMs cannot determine what fields to expect in responses, limiting downstream tool chaining.
Parameter constraints not formally declared. Priority accepts -2 to 2, but no enum is defined in schema, only runtime validation. Retry/Expire values have min/max constraints described only in text ('min 30', 'max 10800'), not in JSON Schema. Character limits (message 1024, title 250, device 25, url 512, url_title 100) are validated at runtime but not declared as maxLength in schema.
Mutually exclusive parameters (html and monospace) are documented in the tool description but not formally constrained in the schema. LLMs may pass both values, causing runtime validation to fail. Use of conditional constraints or explicit schema validation would prevent this.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 61 | - | v1 |
Error responses are generic. Tools return error messages like 'failed to send message: ...' or 'pushover API error: ...', but do not categorize errors as retryable, user-fixable, or fatal. No guidance on next steps (e.g., 'Try with a shorter message' or 'Check your Pushover API key configuration').
No confirmation or dry-run for destructive operations. pushover_cancel_receipt and pushover_cancel_receipt_by_tag perform irreversible cancellations but lack a confirmation step or preview capability. Agents may accidentally cancel active emergency notifications.