An MCP server implementation for Azure Functions that exposes tools via Azure Functions Worker extensions
Three tools with basic definitions but significant quality gaps. All tools have descriptions (10-90 chars, below the 194-char baseline), but lack depth on WHEN to use them and what they return. HelloWorldTool and ReverseMessageTool have no input schemas visible in the code (only inferred from ToolDefinitions constants). MultiplyNumbersTool has a partial schema with type info but no output schema documented. No error handling guidance, no parameter constraints (enums, ranges), and descriptions are generic. Tool names lack action verbs (HelloWorldTool, ReverseMessageTool are noun-heavy). No tool composition or chaining support evident.
A simple tool that says: Hello World!
A tool that shows paramater usage by asking for two numbers and multiplying them together
Echoes back message in reverse.
HelloWorldTool has no input schema visible in source code. Tool definition uses only constants; no JSON Schema registration detected.
All tool descriptions are under 100 characters and lack WHEN/WHY context. Baseline is 194 chars. Descriptions do not explain when to call each tool vs. alternatives, prerequisites, or return structure. LLMs cannot reliably select these tools.
Tool names lack action verbs. 'HelloWorldTool', 'ReverseMessageTool', 'MultiplyNumbersTool' are noun-heavy and do not start with verbs (get_, create_, send_, etc.). LLMs infer intent from names, these names are ambiguous.
No output schemas documented. Tools return OkObjectResult with string messages, but no structured schema is declared. LLMs cannot plan downstream calls or extract typed fields.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
No error handling or recovery guidance. Tools return OkObjectResult for all cases; no error classification, retryability hints, or actionable error messages. If a tool fails, the LLM has no guidance on what to do next.