Skip to content

Commit 266648b

Browse files
committed
draft portal UI
1 parent fb756f3 commit 266648b

File tree

2 files changed

+94
-7
lines changed

2 files changed

+94
-7
lines changed

src/content/docs/cloudflare-one/applications/configure-apps/mcp-servers/mcp-portals.mdx

Lines changed: 93 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,110 @@ tags:
66
sidebar:
77
order: 1
88
label: MCP server portals
9+
badge:
10+
text: Beta
911
---
1012

1113
import { Render, GlossaryTooltip } from "~/components"
1214

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:
1416

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.
1618

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.
1820

1921
- **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.
2022

2123
## Prerequisites
2224

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
2628

2729
## Add an MCP server
2830

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.

src/content/glossary/cloudflare-one.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ entries:
129129
130130
- term: MCP server portal
131131
general_definition: |-
132-
a web application in Cloudflare Zero Trust that serves as a single entry point to multiple MCP servers and tools.
132+
a web application in Cloudflare Zero Trust that serves as a gateway to multiple MCP servers.
133133
134134
- term: MCP server tool
135135
general_definition: |-

0 commit comments

Comments
 (0)