A site to show a MCP example using Netlify Functions and Express
This server demonstrates moderate quality with 2 tools that have descriptions and schemas present. However, several critical gaps limit production readiness: (1) Both tools lack output schema documentation in their descriptions despite having outputSchema defined in code; (2) Parameter descriptions are present but minimal (12-48 chars, well below the 72-char baseline); (3) Tool naming uses hyphens (personalized-greeting) rather than underscores, deviating from convention; (4) The elicitation tool's empty input schema {} is unconventional and may confuse clients about intent; (5) No error handling guidance or recovery paths documented. The notification stream tool is better structured with explicit parameter constraints (minimum values), but lacks clarity on when resumability applies. Overall, the definitions are functional but lack the LLM-optimization and completeness expected for production tools.
Demonstrates elicitation by asking the user for their name and returning a personalized greeting. Requires client with elicitation support.
Starts sending periodic notifications for testing resumability.
Output schemas are defined in code but not documented in tool descriptions. LLMs cannot plan downstream calls or know what fields to expect without explicit output documentation.
Parameter descriptions are minimal (12-48 chars vs. 72-char baseline). 'Number of notifications to send' and 'Interval in milliseconds between notifications' are functional but lack context on constraints, units, or common usage patterns.
Tool naming uses hyphens (personalized-greeting, start-notification-stream) instead of snake_case (personalized_greeting, start_notification_stream). Convention is verb_noun with underscores for LLM parsing clarity.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 63 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Empty input schema {} for personalized-greeting is unconventional. This tool uses elicitation to request the name, but the empty schema provides no hint to the LLM about what the tool expects or how it works differently from other greeting tools.
No error handling or recovery guidance documented. If elicitation is rejected, the tool returns a cancellation message, but there is no guidance for the LLM on how to recover or retry.
start-notification-stream lacks clarity on what 'resumability' means and when it applies. The description says 'Starts sending periodic notifications for testing resumability' but does not explain what resumability feature is being tested or how the client should handle it.