Create a new MCP Portal
client.zeroTrust.access.aiControls.mcp.portals.create(PortalCreateParams { account_id, id, hostname, 5 more } params, RequestOptionsoptions?): PortalCreateResponse { id, hostname, name, 8 more }
POST/accounts/{account_id}/access/ai-controls/mcp/portals
Creates a new MCP portal for managing AI tool access through Cloudflare Access.
Security
API Token
The preferred authorization scheme for interacting with the Cloudflare API. Create a token.
Example:
API Email + API Key
The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.
Example:
The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.
Example:
Create a new MCP Portal
import Cloudflare from 'cloudflare';
const client = new Cloudflare({
apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});
const portal = await client.zeroTrust.access.aiControls.mcp.portals.create({
account_id: 'a86a8f5c339544d7bdc89926de14fb8c',
id: 'my-mcp-portal',
hostname: 'exmaple.com',
name: 'My MCP Portal',
});
console.log(portal.id);{
"result": {
"id": "my-mcp-portal",
"hostname": "exmaple.com",
"name": "My MCP Portal",
"servers": [
{
"id": "my-mcp-server",
"auth_type": "unauthenticated",
"hostname": "https://example.com/mcp",
"name": "My MCP Server",
"prompts": [
{
"foo": "bar"
}
],
"tools": [
{
"foo": "bar"
}
],
"created_at": "2019-12-27T18:11:19.117Z",
"created_by": "created_by",
"default_disabled": true,
"description": "This is one remote mcp server",
"error": "error",
"last_successful_sync": "2019-12-27T18:11:19.117Z",
"last_synced": "2019-12-27T18:11:19.117Z",
"modified_at": "2019-12-27T18:11:19.117Z",
"modified_by": "modified_by",
"on_behalf": true,
"status": "status",
"updated_prompts": [
{
"name": "name",
"description": "description",
"enabled": true,
"portal_alias": "portal-tool-alias",
"server_alias": "server-tool-alias"
}
],
"updated_tools": [
{
"name": "name",
"description": "description",
"enabled": true,
"portal_alias": "portal-tool-alias",
"server_alias": "server-tool-alias"
}
]
}
],
"allow_code_mode": true,
"created_at": "2019-12-27T18:11:19.117Z",
"created_by": "created_by",
"description": "This is my custom MCP Portal",
"modified_at": "2019-12-27T18:11:19.117Z",
"modified_by": "modified_by",
"secure_web_gateway": false
},
"success": true
}Returns Examples
{
"result": {
"id": "my-mcp-portal",
"hostname": "exmaple.com",
"name": "My MCP Portal",
"servers": [
{
"id": "my-mcp-server",
"auth_type": "unauthenticated",
"hostname": "https://example.com/mcp",
"name": "My MCP Server",
"prompts": [
{
"foo": "bar"
}
],
"tools": [
{
"foo": "bar"
}
],
"created_at": "2019-12-27T18:11:19.117Z",
"created_by": "created_by",
"default_disabled": true,
"description": "This is one remote mcp server",
"error": "error",
"last_successful_sync": "2019-12-27T18:11:19.117Z",
"last_synced": "2019-12-27T18:11:19.117Z",
"modified_at": "2019-12-27T18:11:19.117Z",
"modified_by": "modified_by",
"on_behalf": true,
"status": "status",
"updated_prompts": [
{
"name": "name",
"description": "description",
"enabled": true,
"portal_alias": "portal-tool-alias",
"server_alias": "server-tool-alias"
}
],
"updated_tools": [
{
"name": "name",
"description": "description",
"enabled": true,
"portal_alias": "portal-tool-alias",
"server_alias": "server-tool-alias"
}
]
}
],
"allow_code_mode": true,
"created_at": "2019-12-27T18:11:19.117Z",
"created_by": "created_by",
"description": "This is my custom MCP Portal",
"modified_at": "2019-12-27T18:11:19.117Z",
"modified_by": "modified_by",
"secure_web_gateway": false
},
"success": true
}