A site to show a MCP example using Netlify Functions and Express
Server has 1 tool with reasonable structure but significant gaps in definition quality. The tool 'start-notification-stream' has a clear name and description, explicit input schema with types and descriptions, and documented parameters. However, the tool lacks output schema documentation, error handling guidance, and security annotations. The server also registers a prompt and resource, which are well-defined. Overall, the definitions meet baseline expectations but fall short of A-grade production standards.
Starts sending periodic notifications for testing resumability
No output schema documented for start-notification-stream. LLMs cannot predict what fields to expect or plan downstream actions. The tool sends notifications but the CallToolResult structure is not annotated with expected content types or formats.
Missing error handling and recovery guidance. If notification sending fails (network timeout, client disconnect), the error response provides no context to the LLM about retry strategy or alternatives. No actionable error messages.
No tool annotations present. The tool lacks readOnlyHint, destructiveHint, or idempotentHint tags. While this tool is READ_ONLY, the annotation is not formally declared in the tool schema, forcing the LLM to infer intent from the name alone.
Parameter 'count' has ambiguous semantics: description says '0 for 100' but does not explain whether count=0 means 'infinite' or 'default to 100'. This forces LLMs to guess or experiment.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 57 | - | v1 |
No documented return structure for tool output. The CallToolResult returns a text message but does not specify what the LLM should expect from the notification stream or how to correlate notifications with the tool call.