Can you please explain to us how we can connect Azure Copilot to our custom MCP server running in our Azure environment ?

Turic, Mario 0 Reputation points
2026-02-09T15:19:18.2533333+00:00

Can you please explain to us how we can connect Azure Copilot to our custom MCP server running in our Azure environment ?

We are running our own custom MCP server on an Azure Function app service inside our private network architecture all in Azure. We want to connect to this custom MCP server over multiple MCP client application like Azure Copilot.

Can you please give us a proper documentation and/or step by step guide how we can achieve this ?

Thank you,

Mario Turic

Foundry Tools
Foundry Tools

Formerly known as Azure AI Services or Azure Cognitive Services is a unified collection of prebuilt AI capabilities within the Microsoft Foundry platform


2 answers

Sort by: Most helpful
  1. Manas R Mohanty 17,270 Reputation points Moderator
    2026-02-16T09:41:15.72+00:00

    Hi Turic, Mario

    We can connect our MCP server via tools from Agents we are creating.

    Go to your created Agent, and click on tools

    Screenshot 2026-02-16 144515

    Select MCP tool and add details of MCP server.

    Screenshot 2026-02-16 145141

    Ideally to communicate within virtual network, all azure resources need to be virtual network. If you hosted any MCP server, please bring it to Virtual network via Private endpoint or VNET whitelisting.

    In case of Bring your own VNET scenarios, you can modify the inbound and outbound rules from your network security group and route table.

    https://learn.microsoft.com/en-us/microsoft-copilot-studio/admin-network-isolation-vnet

    You can also create a custom MCP connection through PowerApp as discussed in below documentation.

    Connect your agent to an existing Model Context Protocol (MCP) server - Microsoft Copilot Studio | Microsoft Learn

    Troubleshooting Model Context Protocol (MCP) integration - Microsoft Copilot Studio | Microsoft Learn

    Regarding Security aspect

    You can follow this document to secure with virtual network.

    Use Virtual Network support for agent calls to private endpoints - Microsoft Copilot Studio | Microsoft Learn

    We can check content filtering, prompt, Data compliance policies (GDPR) which can be configured from admin center.

    You can also audio logs from Microsoft Purview.

    Customer can also use customer managed keys

    Attached relevant documentation for reference.

    Agent runtime protection status - Microsoft Copilot Studio | Microsoft Learn

    Data, privacy, and security for web search - Microsoft Copilot Studio | Microsoft Learn

    View audit logs for admins, makers, and users of Copilot Studio - Microsoft Copilot Studio | Microsoft Learn (Audit logs from Microsoft purview)

    View sensitivity labels in agent responses - Microsoft Copilot Studio | Microsoft Learn (Apply Sensitivity labels on Share point resources)

    Please accept this answer as verified one if you appreciated our inputs.

    Thank you.

    Was this answer helpful?


  2. Anonymous
    2026-02-09T17:07:31.0133333+00:00

    Hi Turic, Mario

    Connecting Azure Copilot to a custom MCP server means enabling Copilot (via Copilot Studio, Microsoft 365 Copilot agents, or Azure AI Foundry agents) to call backend tools exposed through the Model Context Protocol (MCP). In this architecture, Copilot acts as an MCP client, while your custom MCP server runs as a secure HTTPS service in Azure and exposes tools that Copilot can dynamically discover and invoke at runtime.

    Microsoft Copilot does not directly call internal APIs or databases. Instead, Copilot communicates through MCP servers using the Power Platform connector infrastructure. MCP standardizes tool discovery, invocation, and response formats so that Copilot agents can reason about which tools to call without hard‑coding API contracts. This allows one MCP server to be reused across Copilot Studio agents, Microsoft 365 Copilot agents, Azure AI Foundry agents, and even VS Code Copilot.

    Microsoft supports hosting custom MCP servers on Azure App Service, Azure Functions, Azure Container Apps, or Kubernetes, as long as the server exposes an HTTPS endpoint and supports the Streamable HTTP transport. Server‑Sent Events (SSE) are deprecated and no longer supported by Copilot Studio. The MCP server must remain continuously reachable over HTTPS so Copilot can fetch tool metadata and invoke tools on demand.

    Copilot services run outside customer virtual networks. Because of this, Copilot cannot directly access private endpoints, private IPs, or internal load balancers. Any MCP server that Copilot connects to must be reachable through a public HTTPS endpoint. This is a critical architectural constraint and often misunderstood when designing “private‑only” deployments.

    Recommended enterprise network architecture:

    The recommended enterprise pattern is to expose the MCP server publicly while keeping sensitive dependencies private. This is commonly achieved by placing Azure API Management (APIM) in front of the MCP server. APIM provides a public HTTPS endpoint for Copilot while forwarding traffic into a VNet‑integrated backend. Web Application Firewall (WAF), IP restrictions, throttling, logging, and token validation can all be enforced at the APIM layer.

    Alternative public endpoint pattern without APIM:

    For simpler deployments, the MCP server can be hosted directly on Azure Functions or App Service with a public endpoint. In this pattern, security is enforced using OAuth 2.0 (Microsoft Entra ID) or API keys. Network isolation is achieved by ensuring that only downstream resources (databases, storage, internal APIs) remain private, while the MCP server itself is hardened and monitored.

    MCP authentication options supported by Copilot:

    Copilot Studio supports two authentication models when connecting to an MCP server. The first is API key authentication, which is simple and suitable for development or internal tools. The second, recommended for production, is OAuth 2.0 using Microsoft Entra ID. OAuth enables per‑user authorization, Conditional Access policies, audit logging, and on‑behalf‑of (OBO) flows for Microsoft 365 Copilot.

    MCP server functional requirements:

    A valid MCP server must support tool discovery, tool invocation, and structured JSON responses. Tools must include clear natural‑language descriptions, input schemas, and output schemas so Copilot can reason about them. Resources and prompts are optional, but tools are required. The server must implement the Streamable HTTP transport and expose a stable MCP endpoint path.

    Copilot Studio connects to the MCP server:

    In Copilot Studio, the MCP server is added through the “Add tool → Model Context Protocol” experience. During onboarding, you provide the MCP server URL, a description of its capabilities, and authentication details. Copilot Studio automatically discovers tools from the server and makes them available to the agent without manual schema mapping or connector definitions.

    Copilot cannot access private endpoints directly, so MCP servers must be publicly reachable over HTTPS. Security is achieved through OAuth 2.0, APIM, and layered defense rather than network isolation alone. MCP enables clean separation between Copilot reasoning and enterprise business logic, making it the recommended integration model for Azure‑hosted tools.

    I Hope this helps. Do let me know if you have any further queries.

    Thank you!

    Was this answer helpful?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.