Skip to content

MCP fixes

Copilot Studio: cannot connect to your MCP server

The server URL format, Streamable HTTP requirement, OAuth and Entra settings, network reachability, and maker permissions to check when Copilot Studio will not connect to an MCP server.

Quick answer

Copilot Studio connects to MCP servers over Streamable HTTP only, from Microsoft's cloud, through a connection created with maker permissions. The four failures that cover almost every case: the Server URL is missing its MCP path (it must be the full endpoint, like https://hjarni.com/mcp), the server still speaks the retired SSE transport, the server sits on localhost or a private network Microsoft cannot reach, or the OAuth and Entra configuration does not match what the server publishes. Work through those in order.

The symptom

You add a Model Context Protocol tool in Copilot Studio and the wizard refuses the URL with Enter the complete server path to continue, or the tool saves but creating the connection fails, or the agent shows Could not reach the MCP server in the test pane. If the connection works once and then drops on idle, that is a different problem with its own page: MCP: SSE timeout or unexpected disconnect. This page is for connections that never establish at all.

Check 1: the server URL is the complete endpoint

The wizard's Server URL field wants the full https endpoint including the MCP path, for example https://hjarni.com/mcp. Pasting just the domain, or a docs page URL, trips the complete-server-path validation. If you do not know the path, it is in the server's connection instructions; /mcp is the common convention for hosted servers.

Check 2: the server speaks Streamable HTTP

Copilot Studio dropped the SSE transport for MCP after August 2025 and now speaks Streamable HTTP only. A server that only implements the older HTTP+SSE transport will not connect, and a hand-built Power Apps connector whose OpenAPI schema still declares SSE will not either: the schema needs x-ms-agentic-protocol: mcp-streamable-1.0. If you carried a connector over from an early setup, the clean fix is to delete it and recreate the tool through the MCP onboarding wizard against a Streamable endpoint.

Check 3: Microsoft's cloud can reach the server

Copilot Studio calls your server from Microsoft's infrastructure, not from your browser, so a URL that only resolves on your machine or inside your network cannot work: no localhost, no VPN-only hostnames, no private IPs. For an internal or on-premises server, put a publicly reachable front on it, most commonly Azure API Management or an application gateway, and point the wizard at that. A hosted server with a public https endpoint skips this class of problem entirely. Also note that government and sovereign cloud environments trail the public cloud on MCP feature availability, so check the current Microsoft documentation if you are on one.

Check 4: authentication matches what the server expects

The wizard offers None, API key, and OAuth 2.0. Mismatches fail at connection time, often as a 401 or an authorization dialog that never completes. For OAuth servers that support it, choose Dynamic discovery: Copilot Studio registers itself through OAuth dynamic client registration and no manual client setup is needed. If you configure OAuth manually instead, the authorization, token, and redirect values must come from the server's OAuth metadata, and the app registration in Microsoft Entra must include the redirect URL that Copilot Studio shows you during setup. A sign-in window that opens and never finishes is usually blocked third-party cookies in the maker portal; try a fresh browser profile.

Check 5: you have maker permissions in the environment

Tools are backed by connections in the Power Platform environment, and creating a connection needs maker permissions there. If everything validates but the connection step fails with an authorization error, you are missing that role: ask your Power Platform admin to grant maker access, or build the agent in an environment where you already have it. Admins can also restrict which connectors an environment allows through data policies, which surfaces as the connection being blocked rather than failing to authenticate.

Start here

Write once. You both remember.

Free to start. No credit card required.

Works with Claude and ChatGPT today.