An MCP server implementation running on Azure Functions that provides tools for stock price lookup, weather alerts, and weather forecasts
Server has 4 tools with basic verb-noun naming (get_stockprice, get_weatheralerts, get_weatherforecast, hello_mcp). Descriptions exist but are minimal (10-50 chars, well below the 194-char baseline). Input schemas are present in code but use a custom ToolProperty class rather than standard JSON Schema, parameters lack type constraints (enums, min/max, patterns). No output schemas documented. Error handling exists in get_stockprice but is inconsistent across tools. Security: no secrets exposed as params (good). Composition: tools are single-purpose (good). Major gaps: descriptions too terse for LLM selection, schemas non-standard and incomplete, no pagination/limits documented, no error recovery guidance.
Get the stock price of a company using the ticker symbol such as AAPL for Apple.
Get the weather alerts of the state
Get the weather forecast of a place based on latitute and logitude
Hello world.
Descriptions are too short (10-50 chars vs 194-char baseline). 'Hello world.' and 'Get the weather alerts of the state' lack context for LLM tool selection. Descriptions should explain WHAT, WHEN to use, and any prerequisites.
Input schemas use custom ToolProperty class instead of standard JSON Schema. Parameters lack type constraints (no enums, min/max, patterns). 'latitude' and 'longitude' are typed as strings but should be numbers with range constraints (e.g., -90 to 90 for latitude).
No output schemas documented. LLMs cannot plan downstream calls or extract fields. get_stockprice returns JSON with fields like 'current_price', 'day_low', etc., but this structure is not declared in the tool definition.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
get_weatheralerts implementation is incomplete (code cuts off mid-function). Cannot assess error handling, pagination, or result limits. Incomplete implementation blocks production use.
No pagination or result limits documented. Tools that fetch external data (weather, stock) should declare max result size and pagination strategy to prevent context window exhaustion.