MCP server for ntfy.sh notifications, asynchronous agent messaging, and human-in-the-loop workflows.
Server has 6 tools with mixed quality. send_notification has a comprehensive schema with 12 parameters and clear descriptions, scoring well. However, 4 of 6 tools (request_user_input, request_llm_completion, subscribe_to_topic, get_messages) declare features the server explicitly does NOT support (elicitation=false, sampling=false). These tools are non-functional stubs that mislead LLMs into selecting them. Descriptions are present but generic (50-100 chars). Parameter descriptions lack detail on constraints, formats, and valid ranges. No output schemas documented. Error handling is absent, no recovery guidance or actionable error messages visible in code.
Access the ntfy.sh inbox resource containing recent messages
Retrieve cached messages from subscribed topics
Request an LLM completion from the client through the MCP sampling protocol
Request user input through the MCP elicitation protocol
Send a notification to an ntfy.sh topic
Subscribe to an ntfy.sh topic and receive notifications in real-time
Four tools (request_user_input, request_llm_completion, subscribe_to_topic, get_messages) are declared but server config shows elicitation=false, sampling=false. These are non-functional stubs that will fail at runtime, misleading LLMs into selecting them.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. send_notification should document return type (success/failure, message ID, timestamp).
Parameter descriptions lack actionable constraints. 'delay' accepts strings like '5m', '1h' but no format spec. 'priority' enum is clear, but 'topic' has no validation guidance (required? max length? allowed characters?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No error handling or recovery guidance in tool definitions. If send_notification fails (invalid topic, auth error, rate limit), LLM has no guidance on retry strategy or next steps.
get_inbox tool has empty input schema ({}). No description of what 'inbox' means in ntfy.sh context or what fields are returned. Ambiguous for LLM selection.