MCP server providing natural language search for Azure Updates without OData syntax
Strong tool definitions with well-structured schemas and detailed descriptions. Both tools follow clear naming conventions (verb_noun pattern: search_, get_). Input schemas are comprehensive and properly typed. The main limitation is output schema documentation, while the code shows structured responses, the MCP tool registration lacks explicit output schema declarations, which prevents LLMs from planning downstream operations. Tool descriptions are detailed and contextual (193 and 89 chars respectively), explaining when to use each tool in a two-tool discovery pattern. Parameters are well-described with proper enums and constraints. Error handling returns structured JSON with actionable guidance. No security issues detected (read-only tools, no credentials in parameters). The composition pattern (lightweight search + full detail retrieval) is sound and well-documented.
Retrieve complete details of a specific Azure update by ID including full descriptions in Markdown. Use after search_azure_updates to get detailed content.
Search and filter Azure service updates. Returns lightweight metadata without descriptions (80% token reduction). Supports phrase search ("exact phrase"), structured filters (tags/products/categories with AND semantics), and pagination. Use get_azure_update to retrieve full details.
Output schema not declared in tool registration. While the code returns structured JSON responses, the MCP tool definition lacks explicit output schema documentation. This prevents LLMs from understanding the shape of returned data and planning multi-step operations.
Missing tool annotations for read-only operations. Neither tool declares readOnlyHint=true in its definition, which would help clients understand these are safe, idempotent reads with no side effects.
No explicit pagination documentation in search_azure_updates description. While parameters include offset/limit (1-100), the description could explicitly state that results are paginated and that callers must handle pagination to avoid token exhaustion.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 51 | - | v1 |