Skip to content

Sample to create an AI Agent using OpenAI models with any MCP server running on Azure Container Apps

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

Azure-Samples/openai-mcp-agent-dotnet

name description languages products page_type urlFragment
.NET OpenAI MCP Agent
This is an MCP agent app written in .NET, using OpenAI, with a remote MCP server written in TypeScript.
csharp
bicep
azdeveloper
azure-openai
azure-container-apps
azure
sample
openai-mcp-agent-dotnet

.NET OpenAI MCP Agent

This is an MCP agent app written in .NET, using Azure OpenAI, with a remote MCP server written in TypeScript.

Features

This app provides features like:

  • The MCP host + MCP client app is written in .NET Blazor.
  • The MCP client app connects to a to-do MCP server written in TypeScript.
  • Both MCP client and server apps are running on Azure Container Apps (ACA).
  • The MCP client app is secured by the built-in auth of ACA.
  • The MCP server app is only accessible from the MCP client app.

Overall architecture diagram

Prerequisites

Getting Started

You can now use GitHub Codespaces to run this sample app (takes several minutes to open it)! 👉 Open in GitHub Codespaces.

Get Azure AI Foundry or GitHub Models

  • To run this app, you should have an Azure AI Foundry instance.
  • If you use Azure AI Foundry, make sure you have the GPT-5-mini models deployed.
  • As a default, the deployed model name is gpt-5-mini.

Get AI Agent App

  1. Create a directory for the app.

    # zsh/bash mkdir -p openai-mcp-agent-dotnet
    # PowerShell New-Item -ItemType Directory -Path openai-mcp-agent-dotnet -Force
  2. Initialize azd.

    cd openai-mcp-agent-dotnet azd init -t openai-mcp-agent-dotnet

    NOTE: You'll be asked to enter an environment name, which will be the name of your Azure Resource Group. For example, the environment name might be openai-mcp-agent.

Run on Azure

  1. Check that you have the necessary permissions:

  2. Login to Azure.

    azd auth login
  3. Deploy apps to Azure. It will automatically find the MCP server app and deploy it at the same time.

    azd up

    NOTE:

    1. By default, the MCP client app is protected by the ACA built-in auth feature. You can turn off this feature before running azd up by setting:

      azd env set USE_LOGIN false
    2. By default, the agent uses gpt-5-mini. You can change it to something else by setting:

      azd env set GPT_MODEL_NAME <azure-openai-model-name>
    3. By default, the agent uses the keyless approach for Azure OpenAI authentication. You can change it to use Azure OpenAI API key by setting:

      azd env set AOAI_USE_API_KEY true
    4. By default, the agent is production mode. You can change it to the development mode to either Both or Client that shows more detailed logs by setting:

      azd env set ENABLE_DEVELOPMENT_MODE Both
    5. By default, the MCP server app is production mode. You can change it to the development mode to either Both or Server that shows more detailed logs by setting:

      azd env set ENABLE_DEVELOPMENT_MODE Both
    6. During the deployment,

      • You will be asked to enter the Azure Subscription and two locations - one for Azure AI Foundry and the other for the rest of resources.
  4. In the terminal, get the client app URL deployed. It might look like:

    https://mcptodo-clientapp.{{some-random-string}}.{{location}}.azurecontainerapps.io/
  5. Navigate to the client app URL, log-in to the app and enter prompts like:

    Give me list of to do. Set "meeting at 1pm". Give me list of to do. Mark #1 as completed. Delete #1 from the to-do list. 

    NOTE: You might not be asked to login, if you've set the USE_LOGIN value to false.

  6. Clean up all the resources deployed.

    azd down --force --prune

Resources

About

Sample to create an AI Agent using OpenAI models with any MCP server running on Azure Container Apps

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors 5