A FastMCP 4 server speaking MCP 2026-07-28, for Cloudflare Containers. Demonstrates stateless dispatch, MCP Apps widgets, and guard tools with multi-round-trip requests.
Three tools with clear, well-documented descriptions (50 - 150 chars each) and explicit input schemas. Tool naming follows verb_noun convention (whoami, monitor, delete_notes). Schemas are present and typed. However, parameter descriptions are minimal or absent in some cases, and output schemas are not formally documented. Error handling guidance is limited. The delete_notes tool demonstrates advanced patterns (MRTR, request_state sealing) but lacks explicit confirmation flow documentation.
A guard tool demonstrating multi-round-trip requests (MRTR). Requires user confirmation before deleting notes from a folder. Uses request_state sealing to bind the confirmation to the original request across stateless instances.
An MCP App tool that renders as an interactive widget. Demonstrates the io.modelcontextprotocol/ui extension. Returns system resource usage and instance metadata as both plain text and an interactive HTML widget.
Stateless dispatch tool demonstrating that no session affinity is needed. Returns the instance ID and uptime, showing that repeated calls may land on different container instances.
delete_notes lacks explicit parameter description for 'folder', only type is declared. LLMs cannot infer whether this is a folder name, path, or ID.
Output schemas are not formally documented for any tool. Callers cannot predict response structure, forcing LLMs to infer fields from examples.
monitor tool description mentions 'interactive HTML widget' but does not explain when/why to call it vs whoami, or what fields it returns.
delete_notes is destructive but lacks explicit confirmation/dry-run pattern documentation. MRTR is implemented but not surfaced in the description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
No error handling guidance in tool descriptions. LLMs cannot determine what to do if delete_notes fails or if folder does not exist.