Describe the bug
The search_index_query tool only supports keyword (BM25) search. It passes a plain text string to SearchClient.SearchAsync with default SearchOptions and does not construct any vectorQueries in the request body. This means even when an index has a vectorizer configured, the tool cannot perform hybrid search (keyword + vector + RRF fusion). Customers who want hybrid search through the Azure MCP Server must create a Knowledge Base and use the knowledge_base_retrieve tool, which adds unnecessary overhead for simple hybrid query scenarios.
Expected behavior
When querying an index that has a vectorizer configured, the Query Index tool should automatically construct a hybrid search request by:
- Detecting searchable vector fields and their associated vectorizer from the index schema
- Adding a
vectorQueries entry with kind: "text" alongside the existing keyword search parameter
- Returning RRF-fused results
Optionally expose a --query-type parameter (simple | hybrid | semantic) to give users explicit control.
Actual behavior
IndexQueryCommand.cs registers only three options (Service, Index, Query) and calls searchService.QueryIndex(service, index, query, retryPolicy, ct) with no vector configuration. The vectorizer on the index is never invoked. Results are BM25 keyword-ranked only.
Reproduction Steps
- Create an index with a vectorizer and both text + vector fields
- Index documents with embeddings
- Use the Azure MCP Server Query Index tool:
"Search for 'machine learning' in index 'my-index' of service 'my-service'"
- Compare results with a direct REST hybrid query against the same index
- Observe that MCP results are keyword-ranked only (no vector component)
Environment
Environment:
- Hosting platform or OS: macOS / Windows
- Azure MCP Server version: @azure/mcp@latest (1.x GA)
- IDE: VS Code + GitHub Copilot Agent Mode / GitHub Copilot CLI
Describe the bug
The
search_index_querytool only supports keyword (BM25) search. It passes a plain text string toSearchClient.SearchAsyncwith defaultSearchOptionsand does not construct anyvectorQueriesin the request body. This means even when an index has a vectorizer configured, the tool cannot perform hybrid search (keyword + vector + RRF fusion). Customers who want hybrid search through the Azure MCP Server must create a Knowledge Base and use theknowledge_base_retrievetool, which adds unnecessary overhead for simple hybrid query scenarios.Expected behavior
When querying an index that has a vectorizer configured, the Query Index tool should automatically construct a hybrid search request by:
vectorQueriesentry withkind: "text"alongside the existing keywordsearchparameterOptionally expose a
--query-typeparameter (simple|hybrid|semantic) to give users explicit control.Actual behavior
IndexQueryCommand.csregisters only three options (Service,Index,Query) and callssearchService.QueryIndex(service, index, query, retryPolicy, ct)with no vector configuration. The vectorizer on the index is never invoked. Results are BM25 keyword-ranked only.Reproduction Steps
"Search for 'machine learning' in index 'my-index' of service 'my-service'"Environment
Environment: