|
6 | 6 | sidebar: |
7 | 7 | order: 1 |
8 | 8 | label: MCP server portals |
| 9 | + badge: |
| 10 | + text: Beta |
9 | 11 | --- |
10 | 12 |
|
11 | 13 | import { Render, GlossaryTooltip } from "~/components" |
12 | 14 |
|
13 | | -An MCP server portal centralizes multiple [Model Context Protocol (MCP) servers](https://www.cloudflare.com/learning/ai/what-is-model-context-protocol-mcp/) and their tools onto a single HTTP endpoint. Key benefits include: |
| 15 | +An MCP server portal centralizes multiple [Model Context Protocol (MCP) servers](https://www.cloudflare.com/learning/ai/what-is-model-context-protocol-mcp/) onto a single HTTP endpoint. Key benefits include: |
14 | 16 |
|
15 | | -- **Streamlined access to multiple MCP servers**: MCP server portals support both unauthenticated MCP servers (such as the [Cloudflare Documentation MCP server](https://github.com/cloudflare/mcp-server-cloudflare/tree/main/apps/docs-vectorize)) as well as MCP servers secured using any [third-party or custom OAuth provider](/agents/model-context-protocol/authorization/). Users log in to the portal through Cloudflare Access and are prompted to authenticate separately to each server that requires OAuth. |
| 17 | +- **Streamlined access to multiple MCP servers**: MCP server portals support both unauthenticated MCP servers (such as the [Cloudflare Documentation MCP server](https://github.com/cloudflare/mcp-server-cloudflare/tree/main/apps/docs-vectorize)) as well as MCP servers secured using any [third-party or custom OAuth provider](/agents/model-context-protocol/authorization/). Users log in to the portal URL through Cloudflare Access and are prompted to authenticate separately to each server that requires OAuth. |
16 | 18 |
|
17 | | -- **Customized tools per portal**: Admins can tailor an MCP portal to a particular use case by choosing the specific tools that they want to make available to users through the portal. This allows users to access a curated set of tools from a single URL — the less tools available to an LLM model, the smaller the context window and the better the AI responses tend to be. |
| 19 | +- **Customized tools per portal**: Admins can tailor an MCP portal to a particular use case by choosing the specific tools and prompt templates that they want to make available to users through the portal. This allows users to access a curated set of tools and prompts — the less external context exposed to the AI model, the better the AI responses tend to be. |
18 | 20 |
|
19 | 21 | - **Observability**: Once the user's AI agent is connected to the portal, Cloudflare Access logs the individual prompts and responses made using the tools in the portal. |
20 | 22 |
|
21 | 23 | ## Prerequisites |
22 | 24 |
|
23 | | -- Add an [identity provider](/cloudflare-one/identity/idp-integration/) to Cloudflare Zero Trust |
24 | | - |
25 | | -## Create an MCP server portal |
| 25 | +- An [active domain on Cloudflare](/fundamentals/manage-domains/add-site/) |
| 26 | +- Domain uses either a [full setup](/dns/zone-setups/full-setup/) or a [partial (`CNAME`) setup](/dns/zone-setups/partial-setup/) |
| 27 | +- An [identity provider](/cloudflare-one/identity/idp-integration/) configured on Cloudflare Zero Trust |
26 | 28 |
|
27 | 29 | ## Add an MCP server |
28 | 30 |
|
| 31 | +Add individual MCP servers to Cloudflare Access to bring them under centralized management. |
| 32 | + |
| 33 | +To add an MCP server: |
| 34 | + |
| 35 | +1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Access** > **Applications** > **AI controls**. |
| 36 | +2. Select the **MCP servers** tab. |
| 37 | +3. Select **Add an MCP server**. |
| 38 | +4. Enter any name for the server. |
| 39 | +5. (Optional) Enter a custom string for the **Server ID**. |
| 40 | +6. In **HTTP URL**, enter the full URL of your MCP server. For example, if you want to add the [Cloudflare Documentation MCP server](https://github.com/cloudflare/mcp-server-cloudflare/tree/main/apps/docs-vectorize), enter `https://docs.mcp.cloudflare.com/sse`. |
| 41 | +7. Add [Access policies](/cloudflare-one/policies/access/) to show or hide the server in an [MCP server portal](#create-a-portal). The MCP server link will only appear in the portal for users who match an Allow policy. Blocked users will not see the server in their portal. |
| 42 | + |
| 43 | + :::note |
| 44 | + Blocked users can still connect to the server (and bypass your Access policies) by using its direct URL. If you want to enforce authentication through Cloudflare Access, [configure Access as the server's OAuth provider](cloudflare-one/applications/configure-apps/mcp-servers/saas-mcp/). |
| 45 | + ::: |
| 46 | +8. Select **Add server**. |
| 47 | +9. If the MCP server supports OAuth, you will be redirected to log in to your OAuth provider. You can log in to any account on the MCP server. |
| 48 | + |
| 49 | +Cloudflare Access will validate the server connection and fetch a list of tools and prompts. Once the server is successfully connected, the [server status](#server-status) will change to **Ready**. You can now add the MCP server to an [MCP server portal](#create-a-portal). |
| 50 | + |
| 51 | +### Server status |
| 52 | + |
| 53 | +The MCP server status indicates the connectivity status of the MCP server to Cloudflare Access. |
| 54 | + |
| 55 | +| Status | Description | |
| 56 | +| ------ | ----------- | |
| 57 | +| Unknown | ?| |
| 58 | +| Inactive | ?| |
| 59 | +| Waiting | ?| |
| 60 | +| Ready | ?| |
| 61 | + |
| 62 | +### Refresh the MCP server |
| 63 | + |
| 64 | +If your MCP server updates its tools and prompts, you can instruct Cloudflare Access to refresh the server profile in Zero Trust: |
| 65 | + |
| 66 | +1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Access** > **Applications** > **AI controls**. |
| 67 | +2. Select the **MCP servers** tab and find the server that you want to refresh. |
| 68 | +3. Select the three dots > **Sync capabilities**. |
| 69 | + |
| 70 | +The MCP server page will show the updated list of tools and prompts. New tools and prompts are automatically enabled in the MCP server portal. |
| 71 | + |
| 72 | +## Create a portal |
| 73 | + |
| 74 | +To create an MCP server portal: |
| 75 | + |
| 76 | +1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Access** > **Applications** > **AI controls**. |
| 77 | +2. Select **Add an MCP server portal**. |
| 78 | +3. Enter any name for the portal. |
| 79 | +4. Under **Custom domain**, select a domain for the portal URL. Domains must belong to an active zone in your Cloudflare account. You can optionally specify a subdomain. |
| 80 | +5. [Add MCP servers](#add-an-mcp-server) to the portal. |
| 81 | +6. Add [Access policies](/cloudflare-one/policies/access/) to define the users who can connect to the portal URL. |
| 82 | +7. Select **Add an MCP server portal**. |
| 83 | +8. (Optional) [Customize the login experience](#customize-login-settings) for the portal. |
| 84 | + |
| 85 | +Users can now [connect to the portal](#connect-to-a-portal) at `https//<subdomain>.<domain>/sse` using an MCP client. |
| 86 | + |
| 87 | +### Customize login settings |
| 88 | + |
| 89 | +Cloudflare Access automatically creates an Access application for each MCP server portal. You can customize the portal login experience by updating Access application settings: |
| 90 | + |
| 91 | +1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Access** > **Applications**. |
| 92 | +2. Find the portal that you want to configure, then select the three dots > **Edit**. |
| 93 | +3. To configure identity providers for the portal: |
| 94 | + 1. Select the **Login methods** tab. |
| 95 | + 2. Select the [identity providers](/cloudflare-one/identity/idp-integration/) that you want to enable for your application. |
| 96 | + 3. (Recommended) If you plan to only allow access via a single identity provider, turn on **Instant Auth**. End users will not be shown the [Cloudflare Access login page](/cloudflare-one/applications/login-page/). Instead, Cloudflare will redirect users directly to your SSO login event. |
| 97 | +4. To customize the block page: |
| 98 | + 1. Select the **Experience settings** tab. |
| 99 | + 2. <Render file="access/access-block-page" product="cloudflare-one" /> |
| 100 | +5. Select **Save application**. |
| 101 | + |
| 102 | +## Connect to a portal |
| 103 | + |
| 104 | +Users can connect to your MCP server running at `https//<subdomain>.<domain>/sse` using [Workers AI Playground](https://playground.ai.cloudflare.com/), [MCP inspector](https://github.com/modelcontextprotocol/inspector), or [other MCP clients](/agents/guides/remote-mcp-server/#connect-your-mcp-server-to-claude-and-other-mcp-clients) that support remote MCP servers. |
| 105 | + |
| 106 | +To test in Workers AI Playground: |
| 107 | + |
| 108 | +1. Go to [Workers AI Playground](https://playground.ai.cloudflare.com/). |
| 109 | +2. Under **MCP Servers**, enter `https//<subdomain>.<domain>/sse` for the portal URL. |
| 110 | +3. Select **Connect**. |
| 111 | +4. A popup window will appear requesting access to the MCP server portal. Select **Approve**. |
| 112 | +5. Follow the prompts to log in to your Cloudflare Access identity provider. |
| 113 | +6. ?? How do you log in to the individual MCP servers in the portal? |
| 114 | + |
| 115 | +Workers AI Playground will show a **Connected** status. |
0 commit comments