* .NET Foundry: add CreateMcpTool projectConnectionId overload Adds FoundryAITool.CreateMcpTool(serverLabel, serverUri, projectConnectionId, ...) so hosted MCP tools can authenticate through a Foundry project connection, matching the Python FoundryChatClient.get_mcp_tool(..., project_connection_id=...) factory. The connection id is applied via the McpTool.ProjectConnectionId extension that ships in Azure.AI.Projects.Agents (patches project_connection_id), already referenced by the Foundry package. Includes unit tests and sample/README guidance plus the existing FromResponseTool workaround. * Fold projectConnectionId into existing CreateMcpTool overload Replaces the separate project-connection overload with an optional projectConnectionId parameter on the existing serverUri CreateMcpTool, so all settings (authorizationToken, headers, allowedTools, ...) stay available and there is no positional overload ambiguity. Adds tests for the default (no connection) path and for preserving other settings. Sample/README now show only the supported overload.
Getting started with Model Content Protocol
The getting started with Model Content Protocol samples demonstrate how to use MCP Server tools from an agent.
Getting started with agents prerequisites
Before you begin, ensure you have the following prerequisites:
- .NET 10.0 SDK or later
- Azure OpenAI service endpoint and deployment configured
- Azure CLI installed and authenticated (for Azure credential authentication)
- User has the
Cognitive Services OpenAI Contributorrole for the Azure OpenAI resource.
Note: These samples use Azure OpenAI models. For more information, see how to deploy Azure OpenAI models with Microsoft Foundry.
Note: These samples use Azure CLI credentials for authentication. Make sure you're logged in with az login and have access to the Azure OpenAI resource and have the Cognitive Services OpenAI Contributor role. For more information, see the Azure CLI documentation.
Samples
| Sample | Description |
|---|---|
| Agent with MCP server tools | This sample demonstrates how to use MCP server tools with a simple agent |
| Agent with MCP server tools and authorization | This sample demonstrates how to use MCP Server tools from a protected MCP server with a simple agent |
| Agent with per-run MCP authentication headers | This sample demonstrates how to attach per-run, refreshable authentication headers to MCP requests using a custom HttpClient handler and an AsyncLocal scope. Uses Microsoft Foundry (FOUNDRY_PROJECT_ENDPOINT / FOUNDRY_MODEL) rather than the Azure OpenAI variables in the prerequisites above. |
| Responses Agent with Hosted MCP tool | This sample demonstrates how to use the Hosted MCP tool with the Responses Service, where the service invokes any MCP tools directly |
| Agent with long-running MCP task (transparent polling) | This sample demonstrates how an agent transparently drives a long-running MCP task (SEP-2663) to completion. The wrapper polls the task internally on both RunAsync and RunStreamingAsync invocations. |
Running the samples from the console
To run the samples, navigate to the desired sample directory, e.g.
cd Agents_Step01_Running
Set the following environment variables:
$env:AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/" # Replace with your Azure OpenAI resource endpoint
$env:AZURE_OPENAI_DEPLOYMENT_NAME="gpt-5.4-mini" # Optional, defaults to gpt-5.4-mini
If the variables are not set, you will be prompted for the values when running the samples.
Execute the following command to build the sample:
dotnet build
Execute the following command to run the sample:
dotnet run --no-build
Or just build and run in one step:
dotnet run
Running the samples from Visual Studio
Open the solution in Visual Studio and set the desired sample project as the startup project. Then, run the project using the built-in debugger or by pressing F5.
You will be prompted for any required environment variables if they are not already set.