A model endpoint can answer questions, generate code, summarize documents, and classify text. But production AI agents need to do more. They need to retrieve current information, access external systems, select the right tool, and return predictable output.
Microsoft Foundry is moving Claude deployments in that direction.
Microsoft announced five new Claude capabilities in Foundry: structured outputs, web search, web fetch, MCP connector, and tool search. These capabilities are available for Claude models hosted on Azure in Microsoft Foundry, bringing more agent-oriented functionality directly into the managed platform.
For developers, the interesting part is not simply that Claude can call more tools. The more important question is how these capabilities change the architecture of a production agent.
This article looks at the role of each capability, how to test them, where they fit in a .NET application, and what developers should consider before putting a tool-enabled Claude agent into production.
From Model Calls to Agent Workflows
A traditional LLM application often follows a relatively simple flow:
User
|
v
Application
|
v
Claude Model
|
v
Response
An agent introduces additional steps:
User
|
v
Agent
|
+---- Search the web
|
+---- Fetch a page
|
+---- Call an MCP server
|
+---- Search available tools
|
+---- Produce structured output
|
v
Final Response
The model is no longer limited to information included in the prompt.
Microsoft describes the newly available capabilities as building blocks for moving from a single model call toward production agent workflows.
That distinction matters because tool use introduces new engineering concerns: permissions, latency, failures, untrusted external data, observability, and cost.
What the Five New Capabilities Provide
The five capabilities address different parts of the agent architecture.
| Capability | Primary Purpose | Example |
|---|---|---|
| Structured outputs | Predictable response format | Return an order-analysis JSON object |
| Web search | Find current public information | Search current documentation |
| Web fetch | Retrieve content from a specific page | Read a known documentation page |
| MCP connector | Connect to external MCP services | Query an internal business system |
| Tool search | Discover relevant tools dynamically | Select one tool from a large catalog |
These capabilities should not be treated as interchangeable.
A web search tool answers the question, "What relevant information exists?"
A web fetch operation answers, "What does this particular resource contain?"
Tool search answers, "Which available capability should I use?"
MCP provides a standardized connection mechanism for external tools and services.
Structured output solves a different problem entirely: "How should the agent's result be represented so my application can consume it safely?"
Web Search for Current Information
Web search is useful when the agent needs information that can change after the model's training data.
Microsoft Foundry's web search tooling can ground an agent's response with current public web information and return source citations. The underlying web grounding uses Bing services.
A conceptual workflow is:
User Question
|
v
Claude Agent
|
v
Determine Information Gap
|
v
Web Search
|
v
Search Results
|
v
Claude
|
v
Grounded Response + Sources
For example, a developer could build an agent that answers questions about the latest framework documentation.
The application does not need to download every webpage itself. The hosted search capability can perform the search and return information for the agent to use.
Microsoft's current documentation also shows web search support across Python, C#, JavaScript, Java, and REST scenarios.
Web Fetch for Known Sources
Search and fetch solve different problems.
Suppose an agent searches for documentation and identifies the exact page it needs.
The next step can be fetching that specific resource.
Conceptually:
Search
|
+---- Result A
+---- Result B
+---- Result C
|
v
Select relevant URL
|
v
Web Fetch
|
v
Page content
|
v
Agent reasoning
This is useful for workflows where the agent needs to inspect a known web resource instead of relying only on search-result snippets.
However, web content should be treated as untrusted input.
Microsoft's web-search guidance explicitly recommends validating and sanitizing web-search results before using them in downstream systems and avoiding secrets or sensitive personal data in prompts that may be sent to external services.
MCP Connector: Connecting External Tools
The Model Context Protocol provides a standardized way for AI applications to interact with external tools and resources.
An MCP-enabled agent can potentially interact with systems such as:
Claude Agent
|
+---- MCP Server
|
+---- Issue tracker
+---- Documentation
+---- Internal APIs
+---- Business systems
This creates a significant architectural advantage: the agent does not have to contain custom integration logic for every external system.
But it also increases the security boundary.
An MCP connection should be treated like an application integration, not simply as another prompt feature.
The team should understand:
What tools are exposed?
What data can be read?
What actions can be performed?
What authentication is required?
What happens if the MCP server is unavailable?
Are tool calls logged?
Can the agent modify production data?
Tool Search for Large Tool Catalogs
A common problem appears when an agent has access to many tools.
Suppose an enterprise agent has:
100+ tools
|
+-- CRM
+-- Finance
+-- HR
+-- Engineering
+-- Documentation
+-- Operations
+-- Analytics
Giving the model the complete definition of every tool can increase context usage and make tool selection harder.
Tool search provides a mechanism for discovering relevant tools when they are needed.
The conceptual difference is:
Static Tools
Agent
|
+-- Tool A
+-- Tool B
+-- Tool C
+-- Tool D
+-- ...100 more
Tool Discovery
Agent
|
v
Search Tool Catalog
|
v
Relevant Tools
|
+-- Tool C
+-- Tool K
|
v
Execute
This is particularly interesting for enterprise environments because tool catalogs can grow considerably as more internal services become agent-accessible.
Structured Outputs for Reliable Application Integration
Agent responses are often consumed by another piece of software.
Parsing arbitrary natural-language text is fragile.
Structured output allows the application to request a predictable schema.
For example, an order-analysis workflow might expect:
{
"orderId": "ORD-10025",
"riskLevel": "medium",
"requiresReview": true,
"reasons": [
"Unusual order value",
"Address verification required"
]
}
The application can then deserialize the response into a strongly typed object.
In C#, that could look like:
public sealed class OrderRiskResult
{
public string OrderId { get; set; } = string.Empty;
public string RiskLevel { get; set; } = string.Empty;
public bool RequiresReview { get; set; }
public List<string> Reasons { get; set; } = [];
}
The important architectural point is that structured output should be used where the result becomes application data.
Do not force every conversational response into a rigid schema when a normal natural-language response is more appropriate.
Join the conversation! Your thoughts help the community grow.