An ntfy MCP server for sending ntfy notifications to your self-hosted ntfy server from AI Agents (supports secure token auth & more - use with npx or docker!)
ntfy-me-mcp provides two well-named, focused tools with comprehensive input schemas and clear descriptions. Both tools start with verbs ('ntfy_me', 'ntfy_me_fetch') and are documented. However, output schemas are entirely undocumented, neither tool specifies what fields are returned, their types, or structure. Parameter descriptions are thorough (72 chars average), but the lack of return type documentation violates a critical pattern (D. SCHEMAS & OUTPUT). Error handling exists but lacks recovery guidance. No tool annotations present. The server demonstrates mid-range quality: good parameter definition but incomplete output contracts.
Send a notification to the user via ntfy. Use this tool when the user asks to 'send a notification', 'notify me', 'send me an alert', 'message me', 'ping me', or any similar request. This tool is perfect for sending status updates, alerts, reminders, or notifications about completed tasks.
Fetch cached messages from an ntfy server topic. Use this tool when the user asks to 'show notifications', 'get my messages', 'show my alerts', 'find notifications', 'search notifications', or any similar request. Great for finding recent notifications, checking message history, or searching for specific notifications by content, title, tags, or priority.
Output schemas completely undocumented. Neither tool specifies return type, fields, or structure. LLMs cannot plan downstream operations or extract data reliably without knowing what to expect.
No tool annotations present. Tools lack readOnlyHint, destructiveHint, or idempotentHint. ntfy_me modifies state (sends notification) but LLM cannot detect this from tool definition alone.
Error handling provides no recovery guidance. Tools throw errors but do not tell the LLM what to do next or how to self-correct. E.g., invalid priority should return 'Got X, must be one of: min, low, default, high, max' not a bare error.
ntfy_me_fetch accepts complex filtering (messageId, messageText, messageTitle, priorities, tags) but no result limit or pagination declared. Could return unbounded results, exhausting context window.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 64 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Parameters accept free-form strings for 'topic' and 'url' without validation examples. ntfy_me accepts 'markdown' as boolean but does not explain what format the message must be in to support markdown rendering.