From d3cbf0f32fa42090ca30c0194e8072ce3e6fe2c1 Mon Sep 17 00:00:00 2001
From: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
Date: Thu, 19 Mar 2026 16:17:20 +0000
Subject: [PATCH 1/3] Bump HostedAgents samples to AgentFramework beta.11 and
pass credential to UseFoundryTools
Update all 8 HostedAgents samples:
- Azure.AI.AgentServer.AgentFramework -> 1.0.0-beta.11
- Microsoft.Agents.AI.OpenAI -> 1.0.0-rc4
- Microsoft.Agents.AI/AzureAI/Workflows -> 1.0.0-rc4
- Azure.AI.Projects -> 2.0.0-beta.1
- Fix Workflow.AsAgent() -> AsAIAgent() in FoundryMultiAgent
- Pass credential to UseFoundryTools in AgentWithTools (resolves #56802)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.../AgentThreadAndHITL/AgentThreadAndHITL.csproj | 4 ++--
.../AgentWithHostedMCP/AgentWithHostedMCP.csproj | 6 +++---
.../AgentWithLocalTools/AgentWithLocalTools.csproj | 6 +++---
.../AgentWithTextSearchRag.csproj | 6 +++---
.../AgentWithTools/AgentWithTools.csproj | 6 +++---
.../HostedAgents/AgentWithTools/Program.cs | 2 +-
.../AgentsInWorkflows/AgentsInWorkflows.csproj | 4 ++--
.../FoundryMultiAgent/FoundryMultiAgent.csproj | 12 ++++++------
.../HostedAgents/FoundryMultiAgent/Program.cs | 2 +-
.../FoundrySingleAgent/FoundrySingleAgent.csproj | 8 ++++----
10 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentThreadAndHITL/AgentThreadAndHITL.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentThreadAndHITL/AgentThreadAndHITL.csproj
index 1afc7a7cec..a56157fe9d 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentThreadAndHITL/AgentThreadAndHITL.csproj
+++ b/dotnet/samples/05-end-to-end/HostedAgents/AgentThreadAndHITL/AgentThreadAndHITL.csproj
@@ -36,10 +36,10 @@
-
+
-
+
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj
index c0e14e74b8..5b0f617e5c 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj
+++ b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -35,10 +35,10 @@
-
+
-
+
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithLocalTools/AgentWithLocalTools.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithLocalTools/AgentWithLocalTools.csproj
index ccda3156e5..b7970f8c5f 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithLocalTools/AgentWithLocalTools.csproj
+++ b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithLocalTools/AgentWithLocalTools.csproj
@@ -36,11 +36,11 @@
-
-
+
+
-
+
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/AgentWithTextSearchRag.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/AgentWithTextSearchRag.csproj
index 19e5015912..7789abd315 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/AgentWithTextSearchRag.csproj
+++ b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/AgentWithTextSearchRag.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -35,10 +35,10 @@
-
+
-
+
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/AgentWithTools.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/AgentWithTools.csproj
index 19e5015912..7789abd315 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/AgentWithTools.csproj
+++ b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/AgentWithTools.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -35,10 +35,10 @@
-
+
-
+
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Program.cs b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Program.cs
index f564a0d8d3..37aac0d18d 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Program.cs
+++ b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Program.cs
@@ -22,7 +22,7 @@
.GetChatClient(deploymentName)
.AsIChatClient()
.AsBuilder()
- .UseFoundryTools(new { type = "mcp", project_connection_id = toolConnectionId }, new { type = "code_interpreter" })
+ .UseFoundryTools(credential, new { type = "mcp", project_connection_id = toolConnectionId }, new { type = "code_interpreter" })
.UseOpenTelemetry(sourceName: "Agents", configure: (cfg) => cfg.EnableSensitiveData = true)
.Build();
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/AgentsInWorkflows.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/AgentsInWorkflows.csproj
index 3b3af40664..7789abd315 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/AgentsInWorkflows.csproj
+++ b/dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/AgentsInWorkflows.csproj
@@ -35,10 +35,10 @@
-
+
-
+
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/FoundryMultiAgent/FoundryMultiAgent.csproj b/dotnet/samples/05-end-to-end/HostedAgents/FoundryMultiAgent/FoundryMultiAgent.csproj
index b2fb41ac5e..e8c7a434b0 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/FoundryMultiAgent/FoundryMultiAgent.csproj
+++ b/dotnet/samples/05-end-to-end/HostedAgents/FoundryMultiAgent/FoundryMultiAgent.csproj
@@ -1,4 +1,4 @@
-
+
Exe
net10.0
@@ -33,12 +33,12 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/FoundryMultiAgent/Program.cs b/dotnet/samples/05-end-to-end/HostedAgents/FoundryMultiAgent/Program.cs
index 6947c85e3f..8d21eef20a 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/FoundryMultiAgent/Program.cs
+++ b/dotnet/samples/05-end-to-end/HostedAgents/FoundryMultiAgent/Program.cs
@@ -41,7 +41,7 @@
.Build();
Console.WriteLine("Starting Writer-Reviewer Workflow Agent Server on http://localhost:8088");
- await workflow.AsAgent().RunAIAgentAsync();
+ await workflow.AsAIAgent().RunAIAgentAsync();
}
finally
{
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/FoundrySingleAgent/FoundrySingleAgent.csproj b/dotnet/samples/05-end-to-end/HostedAgents/FoundrySingleAgent/FoundrySingleAgent.csproj
index 756f3d30ee..70df458d90 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/FoundrySingleAgent/FoundrySingleAgent.csproj
+++ b/dotnet/samples/05-end-to-end/HostedAgents/FoundrySingleAgent/FoundrySingleAgent.csproj
@@ -33,11 +33,11 @@
-
-
+
+
-
-
+
+
From 68a4c48e4ad7a135b29fd6245be317b413d64130 Mon Sep 17 00:00:00 2001
From: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
Date: Mon, 23 Mar 2026 11:49:52 +0000
Subject: [PATCH 2/3] Remove AgentWithTools sample (UseFoundryTools no longer
supported)
Remove the AgentWithTools hosted agent sample as the UseFoundryTools
backend is no longer supported. Updated HostedAgents README and solution
file to remove all references.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
dotnet/agent-framework-dotnet.slnx | 1 -
.../AgentWithTools/AgentWithTools.csproj | 68 -------------------
.../HostedAgents/AgentWithTools/Dockerfile | 20 ------
.../HostedAgents/AgentWithTools/Program.cs | 46 -------------
.../HostedAgents/AgentWithTools/README.md | 45 ------------
.../HostedAgents/AgentWithTools/agent.yaml | 31 ---------
.../AgentWithTools/run-requests.http | 30 --------
.../05-end-to-end/HostedAgents/README.md | 33 +--------
8 files changed, 3 insertions(+), 271 deletions(-)
delete mode 100644 dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/AgentWithTools.csproj
delete mode 100644 dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Dockerfile
delete mode 100644 dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Program.cs
delete mode 100644 dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/README.md
delete mode 100644 dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/agent.yaml
delete mode 100644 dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/run-requests.http
diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx
index 576d2c5c54..af7ca9f0be 100644
--- a/dotnet/agent-framework-dotnet.slnx
+++ b/dotnet/agent-framework-dotnet.slnx
@@ -309,7 +309,6 @@
-
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/AgentWithTools.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/AgentWithTools.csproj
deleted file mode 100644
index 7789abd315..0000000000
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/AgentWithTools.csproj
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
- Exe
- net10.0
-
- enable
- enable
-
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Dockerfile b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Dockerfile
deleted file mode 100644
index c9f39f9574..0000000000
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Build the application
-FROM mcr.microsoft.com/dotnet/sdk:10.0-alpine AS build
-WORKDIR /src
-
-# Copy files from the current directory on the host to the working directory in the container
-COPY . .
-
-RUN dotnet restore
-RUN dotnet build -c Release --no-restore
-RUN dotnet publish -c Release --no-build -o /app -f net10.0
-
-# Run the application
-FROM mcr.microsoft.com/dotnet/aspnet:10.0-alpine AS final
-WORKDIR /app
-
-# Copy everything needed to run the app from the "build" stage.
-COPY --from=build /app .
-
-EXPOSE 8088
-ENTRYPOINT ["dotnet", "AgentWithTools.dll"]
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Program.cs b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Program.cs
deleted file mode 100644
index 37aac0d18d..0000000000
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/Program.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-
-// This sample demonstrates how to use Foundry tools (MCP and code interpreter)
-// with an AI agent hosted using the Azure AI AgentServer SDK.
-
-using Azure.AI.AgentServer.AgentFramework.Extensions;
-using Azure.AI.OpenAI;
-using Azure.Identity;
-using Microsoft.Agents.AI;
-using Microsoft.Extensions.AI;
-
-string openAiEndpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set.");
-string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
-string toolConnectionId = Environment.GetEnvironmentVariable("MCP_TOOL_CONNECTION_ID") ?? throw new InvalidOperationException("MCP_TOOL_CONNECTION_ID is not set.");
-
-// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production.
-// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid
-// latency issues, unintended credential probing, and potential security risks from fallback mechanisms.
-DefaultAzureCredential credential = new();
-
-IChatClient chatClient = new AzureOpenAIClient(new Uri(openAiEndpoint), credential)
- .GetChatClient(deploymentName)
- .AsIChatClient()
- .AsBuilder()
- .UseFoundryTools(credential, new { type = "mcp", project_connection_id = toolConnectionId }, new { type = "code_interpreter" })
- .UseOpenTelemetry(sourceName: "Agents", configure: (cfg) => cfg.EnableSensitiveData = true)
- .Build();
-
-AIAgent agent = chatClient.AsAIAgent(
- name: "AgentWithTools",
- instructions: @"You are a helpful assistant with access to tools for fetching Microsoft documentation.
-
- IMPORTANT: When the user asks about Microsoft Learn articles or documentation:
- 1. You MUST use the microsoft_docs_fetch tool to retrieve the actual content
- 2. Do NOT rely on your training data
- 3. Always fetch the latest information from the provided URL
-
- Available tools:
- - microsoft_docs_fetch: Fetches and converts Microsoft Learn documentation
- - microsoft_docs_search: Searches Microsoft/Azure documentation
- - microsoft_code_sample_search: Searches for code examples")
- .AsBuilder()
- .UseOpenTelemetry(sourceName: "Agents", configure: (cfg) => cfg.EnableSensitiveData = true)
- .Build();
-
-await agent.RunAIAgentAsync(telemetrySourceName: "Agents");
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/README.md b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/README.md
deleted file mode 100644
index 55333f9940..0000000000
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# What this sample demonstrates
-
-This sample demonstrates how to use Foundry tools with an AI agent via the `UseFoundryTools` extension. The agent is configured with two tool types: an MCP (Model Context Protocol) connection for fetching Microsoft Learn documentation and a code interpreter for running code when needed.
-
-Key features:
-
-- Configuring Foundry tools using `UseFoundryTools` with MCP and code interpreter
-- Connecting to an external MCP tool via a Foundry project connection
-- Using `DefaultAzureCredential` for Azure authentication
-- OpenTelemetry instrumentation for both the chat client and agent
-
-> For common prerequisites and setup instructions, see the [Hosted Agent Samples README](../README.md).
-
-## Prerequisites
-
-In addition to the common prerequisites:
-
-1. An **Azure AI Foundry project** with a chat model deployed (e.g., `gpt-5.2`, `gpt-4o-mini`)
-2. The **Azure AI Developer** role assigned on the Foundry resource (includes the `agents/write` data action required by `UseFoundryTools`)
-3. An **MCP tool connection** configured in your Foundry project pointing to `https://learn.microsoft.com/api/mcp`
-
-## Environment Variables
-
-In addition to the common environment variables in the root README:
-
-```powershell
-# Your Azure AI Foundry project endpoint (required by UseFoundryTools)
-$env:AZURE_AI_PROJECT_ENDPOINT="https://your-resource.services.ai.azure.com/api/projects/your-project"
-
-# Chat model deployment name (defaults to gpt-4o-mini if not set)
-$env:AZURE_OPENAI_DEPLOYMENT_NAME="gpt-4o-mini"
-
-# The MCP tool connection name (just the name, not the full ARM resource ID)
-$env:MCP_TOOL_CONNECTION_ID="SampleMCPTool"
-```
-
-## How It Works
-
-1. An `AzureOpenAIClient` is created with `DefaultAzureCredential` and used to get a chat client
-2. The chat client is wrapped with `UseFoundryTools` which registers two Foundry tool types:
- - **MCP connection**: Connects to an external MCP server (Microsoft Learn) via the project connection name, providing documentation fetch and search capabilities
- - **Code interpreter**: Allows the agent to execute code snippets when needed
-3. `UseFoundryTools` resolves the connection using `AZURE_AI_PROJECT_ENDPOINT` internally
-4. A `ChatClientAgent` is created with instructions guiding it to use the MCP tools for documentation queries
-5. The agent is hosted using `RunAIAgentAsync` which exposes the OpenAI Responses-compatible API endpoint
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/agent.yaml b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/agent.yaml
deleted file mode 100644
index 5d2b1f8d8d..0000000000
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/agent.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-name: AgentWithTools
-displayName: "Agent with Tools"
-description: >
- An AI agent that uses Foundry tools (MCP and code interpreter) with Azure OpenAI.
- The agent can fetch Microsoft Learn documentation and run code when needed.
-metadata:
- authors:
- - Microsoft Agent Framework Team
- tags:
- - Azure AI AgentServer
- - Microsoft Agent Framework
- - Tools
- - MCP
- - Code Interpreter
-template:
- kind: hosted
- name: AgentWithTools
- protocols:
- - protocol: responses
- version: v1
- environment_variables:
- - name: AZURE_OPENAI_ENDPOINT
- value: ${AZURE_OPENAI_ENDPOINT}
- - name: AZURE_OPENAI_DEPLOYMENT_NAME
- value: gpt-4o-mini
- - name: MCP_TOOL_CONNECTION_ID
- value: ${MCP_TOOL_CONNECTION_ID}
-resources:
- - name: "gpt-4o-mini"
- kind: model
- id: gpt-4o-mini
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/run-requests.http b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/run-requests.http
deleted file mode 100644
index 22a37ff54e..0000000000
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTools/run-requests.http
+++ /dev/null
@@ -1,30 +0,0 @@
-@host = http://localhost:8088
-@endpoint = {{host}}/responses
-
-### Health Check
-GET {{host}}/readiness
-
-### Simple string input
-POST {{endpoint}}
-Content-Type: application/json
-{
- "input": "Please use the microsoft_docs_fetch tool to fetch and summarize the Microsoft Learn article at https://learn.microsoft.com/azure/ai-services/openai/overview"
-}
-
-### Explicit input
-POST {{endpoint}}
-Content-Type: application/json
-{
- "input": [
- {
- "type": "message",
- "role": "user",
- "content": [
- {
- "type": "input_text",
- "text": "Please use the microsoft_docs_fetch tool to fetch and summarize the Microsoft Learn article at https://learn.microsoft.com/azure/ai-services/openai/overview"
- }
- ]
- }
- ]
-}
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/README.md b/dotnet/samples/05-end-to-end/HostedAgents/README.md
index a36a9bddd1..919aa4b580 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/README.md
+++ b/dotnet/samples/05-end-to-end/HostedAgents/README.md
@@ -6,7 +6,6 @@ These samples demonstrate how to build and host AI agents using the [Azure AI Ag
| Sample | Description |
|--------|-------------|
-| [`AgentWithTools`](./AgentWithTools/) | Foundry tools (MCP + code interpreter) via `UseFoundryTools` |
| [`AgentWithLocalTools`](./AgentWithLocalTools/) | Local C# function tool execution (Seattle hotel search) |
| [`AgentThreadAndHITL`](./AgentThreadAndHITL/) | Human-in-the-loop with `ApprovalRequiredAIFunction` and thread persistence |
| [`AgentWithHostedMCP`](./AgentWithHostedMCP/) | Hosted MCP server tool (Microsoft Learn search) |
@@ -40,19 +39,18 @@ Most samples require one or more of these environment variables:
|----------|---------|-------------|
| `AZURE_OPENAI_ENDPOINT` | Most samples | Your Azure OpenAI resource endpoint URL |
| `AZURE_OPENAI_DEPLOYMENT_NAME` | Most samples | Chat model deployment name (defaults to `gpt-4o-mini`) |
-| `AZURE_AI_PROJECT_ENDPOINT` | AgentWithTools, AgentWithLocalTools, FoundryMultiAgent, FoundrySingleAgent | Azure AI Foundry project endpoint |
-| `MCP_TOOL_CONNECTION_ID` | AgentWithTools | Foundry MCP tool connection name |
+| `AZURE_AI_PROJECT_ENDPOINT` | AgentWithLocalTools, FoundryMultiAgent, FoundrySingleAgent | Azure AI Foundry project endpoint |
| `MODEL_DEPLOYMENT_NAME` | AgentWithLocalTools, FoundryMultiAgent, FoundrySingleAgent | Chat model deployment name (defaults to `gpt-4o-mini`) |
See each sample's README for the specific variables required.
## Azure AI Foundry Setup (for samples that use Foundry)
-Some samples (`AgentWithTools`, `AgentWithLocalTools`) connect to an Azure AI Foundry project. If you're using these samples, you'll need additional setup.
+Some samples (`AgentWithLocalTools`, `FoundrySingleAgent`, `FoundryMultiAgent`) connect to an Azure AI Foundry project. If you're using these samples, you'll need additional setup.
### Azure AI Developer Role
-The `UseFoundryTools` extension requires the **Azure AI Developer** role on the Cognitive Services resource. Even if you created the project, you may not have this role by default.
+Some Foundry operations require the **Azure AI Developer** role on the Cognitive Services resource. Even if you created the project, you may not have this role by default.
```powershell
az role assignment create `
@@ -65,23 +63,6 @@ az role assignment create `
For more details on permissions, see [Azure AI Foundry Permissions](https://aka.ms/FoundryPermissions).
-### Creating an MCP Tool Connection
-
-The `AgentWithTools` sample requires an MCP tool connection configured in your Foundry project:
-
-1. Go to the [Azure AI Foundry portal](https://ai.azure.com)
-2. Navigate to your project
-3. Go to **Connected resources** → **+ New connection** → **Model Context Protocol tool**
-4. Fill in:
- - **Name**: `SampleMCPTool` (or any name you prefer)
- - **Remote MCP Server endpoint**: `https://learn.microsoft.com/api/mcp`
- - **Authentication**: `Unauthenticated`
-5. Click **Connect**
-
-The connection **name** (e.g., `SampleMCPTool`) is used as the `MCP_TOOL_CONNECTION_ID` environment variable.
-
-> **Important**: Use only the connection **name**, not the full ARM resource ID.
-
## Running a Sample
Each sample runs as a standalone hosted agent on `http://localhost:8088/`:
@@ -110,14 +91,6 @@ Each sample includes a `Dockerfile` and `agent.yaml` for deployment. To deploy y
Assign the **Azure AI Developer** role to your user. See [Azure AI Developer Role](#azure-ai-developer-role) above.
-### `Project connection ... was not found`
-
-Make sure `MCP_TOOL_CONNECTION_ID` contains only the connection **name** (e.g., `SampleMCPTool`), not the full ARM resource ID path.
-
-### `AZURE_AI_PROJECT_ENDPOINT must be set`
-
-The `UseFoundryTools` extension requires `AZURE_AI_PROJECT_ENDPOINT`. Set it to your Foundry project endpoint (e.g., `https://your-resource.services.ai.azure.com/api/projects/your-project`).
-
### Multi-framework error when running `dotnet run`
If you see "Your project targets multiple frameworks", specify the framework:
From e069e0408648977f2f1e52b6ef474e59ec9b7207 Mon Sep 17 00:00:00 2001
From: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
Date: Mon, 23 Mar 2026 12:56:43 +0000
Subject: [PATCH 3/3] Fix AgentWithHostedMCP: downgrade Azure.AI.OpenAI to
2.8.0-beta.1 for rc4 compatibility
Azure.AI.OpenAI 2.9.0-beta.1 has breaking changes (GetResponsesClient no
longer accepts deployment name, ResponsesClient.Model removed) that are
incompatible with Microsoft.Agents.AI.OpenAI rc4. Pin to 2.8.0-beta.1 and
use GetResponsesClient(deploymentName).AsAIAgent() pattern.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.../HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj | 3 +--
.../05-end-to-end/HostedAgents/AgentWithHostedMCP/Program.cs | 3 +--
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj
index 5b0f617e5c..4e46f10c11 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj
+++ b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj
@@ -36,10 +36,9 @@
-
+
-
diff --git a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/Program.cs b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/Program.cs
index 8559269dff..b7b610b663 100644
--- a/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/Program.cs
+++ b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/Program.cs
@@ -31,8 +31,7 @@
AIAgent agent = new AzureOpenAIClient(
new Uri(endpoint),
new DefaultAzureCredential())
- .GetResponsesClient()
- .AsIChatClient(deploymentName)
+ .GetResponsesClient(deploymentName)
.AsAIAgent(
instructions: "You answer questions by searching the Microsoft Learn content only.",
name: "MicrosoftLearnAgent",