A Model Context Protocol server for sending notifications via Pushinator
Single tool 'send-notification' has a reasonable name and basic schema, but suffers from significant gaps in error handling, output documentation, and parameter richness. The tool is explicitly registered in src/index.ts with input schema and description visible. However, the description is minimal (50 chars), lacks context for when to use it, and does not explain state-changing implications. No output schema is documented. Error handling is absent, the tool does not validate HTTP responses, handle API failures, or guide recovery. The resource 'get-channels' is present but is not a tool and cannot be invoked by agents directly. Input parameters lack format/constraint details and are not well-guided for LLM use.
Send a notification via the Pushinator API
Tool description is too short (50 chars) and lacks context. Does not explain when to use the tool, what state it modifies, or what the expected outcome is. LLMs cannot reliably select this tool without more detail.
No output schema is documented. The tool returns a PushinatorResponse (message + success fields) but LLMs have no way to know what the response structure is or how to extract data for downstream operations.
No error handling or recovery guidance. The tool fetches JSON without checking response.ok or HTTP status codes. If the API returns 401, 400, or 500, the JSON parse will fail silently or throw, and the LLM receives no actionable error message.
Parameters lack format and constraint descriptions. 'channel_id' is described only as 'UUID of the channel', but no validation is shown; LLMs do not know if non-UUID strings will be rejected or if the API will silently fail. 'content' has no length limit, character restrictions, or formatting hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
API key exposed via environment variable but no documentation that this is a server-side secret injection pattern. If an LLM were tricked into logging the server config, the key could leak. The implementation is correct (not a parameter), but lack of documentation invites confusion.
Tool description does not state that this is a write/destructive operation. LLMs need to know that send-notification has side effects and cannot be retried carelessly without confirming idempotency or checking for duplicates.