Multi-agent MCP server blueprint for Azure with support for multiple industry use cases (education, energy, finance, healthcare, hospitality, insurance, logistics, manufacturing, real estate, retail) using Azure services including Azure AI Search, Azure OpenAI, and Azure Cosmos DB
This MCP server exposes 3 tools for Azure AI services (OpenAI chat completion, semantic search, document search). While tool names follow verb_noun conventions and descriptions exist, there are substantial gaps in schema completeness, parameter documentation, and error handling guidance. The server is primarily a HTTP wrapper around Azure services without defensive input validation or recovery patterns. Schemas are partially visible but lack comprehensive parameter descriptions, and output structures are not formally documented. Error handling is minimal, responses indicate isError boolean but do not guide LLM recovery actions.
OpenAI chat completion tool for routing queries and summarizing results
Document search tool for keyword-based queries in Azure AI Search
Semantic search tool using Azure AI Search vector capabilities
Output schemas not documented. Tools return responses with 'content' and 'isError' fields, but the structure of the 'content' object (fields, types, nesting) is never formally specified. LLMs cannot plan downstream tool calls or extract fields reliably.
Parameter descriptions lack constraint details. 'model' param in openai_chat_completion accepts 'gpt-4o or gpt-4o-mini' per description, but no enum or validation exists. 'top' parameter in search tools accepts an integer but has no min/max bounds (0-1000? 1-10?). LLMs will guess invalid values.
Error responses do not guide LLM recovery. When resp.get('isError') is true, the response body does not explain why, which parameters were invalid, or what the LLM should try next. A generic error message like 'search failed' gives no actionable path forward.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Tool descriptions are generic and lack WHEN-to-use context. 'Semantic search tool using Azure AI Search vector capabilities' does not explain when to prefer search_semantic over search_documents, or what kinds of queries each handles best. LLMs cannot disambiguate.
No pagination or result limits documented. search_semantic and search_documents accept 'top' parameter but response structure does not indicate total count, cursor, or has_more flag. Large result sets will consume context without user knowing if truncation occurred.
No input validation or sanitization visible. The HTTP endpoint POST /mcp/execute accepts arbitrary tool name and arguments with no schema enforcement at the server boundary. LLMs could pass malformed JSON, unknown parameters, or injection payloads with no clear error recovery.