Build1 distinct publisher3 min readUpdated
Microsoft's agentic retrieval is now callable from any MCP client, so non-Microsoft agent stacks can stop rebuilding chunking, embedding and permissions. The edges are where the work moved.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
A dev.to tutorial on grounding a LangGraph agent in Microsoft Foundry IQ makes a point that outlasts the integration: every Foundry IQ knowledge base is also a standalone MCP server, exposing exactly one tool, `knowledge_base_retrieve` [1]. Any MCP-compatible client can call it, including LangGraph via `langchain-mcp-adapters`, which means agent stacks built outside Microsoft's own can consume enterprise retrieval instead of reimplementing it [2].
What sits behind that endpoint is the part teams keep rewriting. A knowledge base wraps one or more knowledge sources, and the agentic retrieval engine handles query planning, parallel execution, semantic reranking and, optionally, answer synthesis [3]. The tutorial describes the alternative as a chunker, an embedding job, a vector store, a retriever, a reranker and a permissions filter bolted on at the end, with every new agent getting its own copy and every copy drifting [4] - six moving parts per agent [1]. The knowledge base is not scoped to one consumer: the same one can ground a LangGraph agent, a Foundry Agent Service agent and a Copilot integration simultaneously, which is why the author argues for naming them after topics such as `hr-policy-kb` rather than after whichever agent got there first [5].
The four places it does not behave like a normal retriever, per the tutorial: the MCP tool result has a different shape from the REST/SDK retrieve response [6]; bearer tokens expire, so a static headers dict fails about an hour into a long-running graph [7]; per-user permission filtering needs a second token, distinct from the service credential [8]; and the knowledge base is itself a planner, so you have two planners per turn and must decide who does what [9].
The identity split is the one with a blast radius. The application authenticates to the search service with a service identity, and the end user's identity travels optionally in a separate header so the engine can filter documents that user should not see; conflating the two is described as the most common cause of "why is everyone seeing everything" bugs [10]. Source type interacts with this: indexed sources such as Blob, OneLake or an existing search index are ingested, chunked and vectorized into an index on your search service, while federated sources such as remote SharePoint, the web and other MCP servers are queried live at retrieval time and never ingested [11].
The operational prerequisites are unglamorous and load-bearing. The querying identity needs the Search Index Data Reader role [12], managed identity support requires Basic tier or higher [13], and if the knowledge base specifies an LLM the search service needs a managed identity with Cognitive Services User on the Foundry resource [14].
Watch the API version, because it is a product decision disguised as a config string. Agentic retrieval is generally available in the 2026-04-01 REST API, while 2026-05-01-preview adds answer synthesis, configurable reasoning effort, the `messages` input, document-level permissions and sensitivity-label metadata [15][16]; those features need the prerelease `azure-search-documents` SDK [17]. Two traps follow. Both the Azure portal and the Microsoft Foundry portal expose preview-only behaviour regardless of what your code targets, so the portal is not a reliable rehearsal of production [18]. And the API version also changes MCP behaviour [19], which means a client that works against preview is not automatically a client that works against GA.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
Per-user permission filtering requires a second token, distinct from the service credential.
Identity flows in two channels: the application authenticates to the search service with a service identity, and the end user's identity is optionally passed in a separate header so the engine filters documents that user may not see; conflating the two is the most common source of "why is everyone seeing everything" bugs.
The 2026-05-01-preview API adds answer synthesis, configurable reasoning effort, the messages input, document-level permissions and sensitivity-label metadata.
The preview azure-search-documents SDK (pip install --pre) is required for answer synthesis, configurable reasoning effort, document-level permissions and multi-turn retrieve; the stable SDK covers GA features on 2026-04-01.
Every Foundry IQ knowledge base is also a standalone MCP server exposing one tool, knowledge_base_retrieve.
Any MCP-compatible client can call the knowledge base tool, including LangGraph via langchain-mcp-adapters.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Detailed single-source walkthrough, no corroboration
The cluster contains exactly one item: a community tutorial with concrete, checkable specifics (tool name, SDK packages, RBAC roles, tier requirement, two API versions and their feature deltas). That specificity is above average for a single post, but nothing here is corroborated by vendor documentation, a second publisher, or reproducible measurement, and several load-bearing statements are author assertions about failure modes rather than demonstrated results.
Availability signals only, no usage evidence
The only adoption-relevant facts are product-availability events: the MCP surface on knowledge bases, GA of agentic retrieval on 2026-04-01, and the preview API/SDK feature set. There are no deployments, customer references, usage disclosures, benchmarks, or third-party integration reports in the cluster, and the one integration shown is the author's own tutorial, so real-world uptake is unmeasured.
Mildly overstated by absence of verification, not by tone
The article's own framing is unusually restrained: it pairs the 'stop rebuilding your RAG pipeline' promise with four named client-breaking behaviours, an explicit GA-versus-preview trade-off, and a warning that the portals misrepresent production behaviour. The small positive gap comes from structural thinness rather than rhetoric — a single unverified source presents platform behaviour, version numbers and reuse benefits as settled while offering no adoption, latency, quality or cost evidence for the claimed replacement of hand-rolled pipelines.
Vendor-favourable tutorial framing, no disclosed sponsorship
The single item is an individual-authored tutorial on a developer-content platform that benefits from engagement and from positioning a Microsoft managed service as a replacement for self-built retrieval; no sponsorship, employment, or affiliation is disclosed in the supplied material. Offsetting that, the piece documents concrete limitations and preview/SLA risk rather than only upside, so the incentive pressure reads moderate rather than severe. No incentive facts beyond publisher, author framing and content are available in the cluster.
Low: one publisher, one author, no corroboration
Confidence is limited by cluster structure rather than internal coherence. Every claim traces to one dev.to tutorial with no vendor documentation, second publisher, benchmark, or adoption datapoint to cross-check version numbers, role requirements, or the described MCP behaviour differences. The claims are internally consistent and specific, which keeps confidence above the floor.
build
Kubernetes MCP servers hide the delete tool; hiding is not removing1 distinct publisher
build
LoreKit puts agent memory in Markdown files you can grep, not a vendor's database1 distinct publisher
build
The only way to prove a contract test can fail is to ship a server that lies1 distinct publisher
build
MCP 2026-07-28 drops the `result` wrapper, and your unit tests will not notice1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 18, 2026