Single tool with clear naming (send_notification), comprehensive parameter descriptions, and proper input schema. Tool description is well-written (145 chars, within 10-1024 baseline). All 8 parameters have type definitions and descriptions. Output schema is implicit (dict with ok/error/status fields) but not formally documented. Error handling returns structured responses with actionable messages. No critical gaps, but output schema documentation and parameter constraints (enums for priority) could be formalized.
Send a push notification via ntfy. Sends to the default topic (claudebox) unless overridden. Tags support emoji short codes (e.g. 'white_check_mark', 'warning', 'rotating_light').
Priority parameter accepts free-form strings instead of enum constraint. Description lists valid values ('min | low | default | high | urgent') but schema does not enforce them. LLMs may hallucinate invalid priorities.
Output schema not formally documented. Tool returns dict with fields (ok, error, status, topic) but no JSON Schema definition provided. LLMs cannot reliably parse response structure for downstream chaining.
NTFY_TOKEN exposed via environment variable without explicit documentation that it is a secret. While not a parameter, the code shows token handling, should document secret injection pattern clearly.
Topic parameter validation error message is generic ('Invalid topic: must match [a-zA-Z0-9_-]{1,64}'). Does not suggest alternatives or recovery steps when validation fails.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
No idempotency guarantee documented. Repeated calls with identical parameters may result in duplicate notifications if ntfy.sh does not deduplicate. Should clarify idempotency semantics.