Skip to content
Start here

AI Controls

AI ControlsMcp

AI ControlsMcpPortals

List MCP Portals
GET/accounts/{account_id}/access/ai-controls/mcp/portals
Create a new MCP Portal
POST/accounts/{account_id}/access/ai-controls/mcp/portals
Read details of an MCP Portal
GET/accounts/{account_id}/access/ai-controls/mcp/portals/{id}
Update an MCP Portal
PUT/accounts/{account_id}/access/ai-controls/mcp/portals/{id}
Delete an MCP Portal
DELETE/accounts/{account_id}/access/ai-controls/mcp/portals/{id}
ModelsExpand Collapse
PortalListResponse object { id, hostname, name, 9 more }
id: string

Unique identifier for the MCP portal.

maxLength32
minLength1
hostname: string

Hostname where the MCP portal is available.

name: string

Display name for the MCP portal.

maxLength350
servers: array of object { id, auth_type, hostname, 22 more }
id: string

Unique identifier for the MCP server.

maxLength32
minLength1
auth_type: "oauth" or "bearer" or "unauthenticated"

Authentication method used to connect to the upstream MCP server.

One of the following:
"oauth"
"bearer"
"unauthenticated"
hostname: string

URL of the upstream MCP endpoint.

formaturi
name: string

Display name for the MCP server.

maxLength350
prompts: array of map[unknown]
server_id: string

Unique identifier for the MCP server.

maxLength32
minLength1
tools: array of map[unknown]
auth_config_summary: optional object { auth_mode, client_secret_version, config, 2 more }

Safe subset of auth_credentials surfaced to the dashboard. Includes auth_mode (dcr|manual), has_client_secret, client_secret_version, and the OAuth endpoints + client_id for manual servers. Never includes the secret value.

auth_mode: optional "dcr" or "manual"
One of the following:
"dcr"
"manual"
client_secret_version: optional number
config: optional object { authorization_endpoint, issuer, resource, 2 more }
authorization_endpoint: optional string
issuer: optional string
resource: optional string
revocation_endpoint: optional string
token_endpoint: optional string
has_client_secret: optional boolean
registration_info: optional object { client_id, redirect_uris, scope, token_endpoint_auth_method }
client_id: optional string
redirect_uris: optional array of string
scope: optional string
token_endpoint_auth_method: optional string
authentication_status: optional "not_required" or "required" or "connected" or 2 more

Whether administrative authentication is required before capabilities can be synced. Manual OAuth is user-managed and has no administrative authentication flow.

One of the following:
"not_required"
"required"
"connected"
"stale"
"manual"
created_at: optional string
formatdate-time
created_by: optional string
default_disabled: optional boolean

Hide this server’s tools and prompts by default. To expose specific capabilities, set enabled: true for them in updated_tools or updated_prompts.

description: optional string

Optional description of the MCP server.

maxLength512
error: optional string
error_details: optional object { cause, is_upstream, mcp_code, 2 more }
cause: optional string

Underlying error message

is_upstream: optional boolean

True = MCP server returned an error. False = couldn’t reach the server

mcp_code: optional number

MCP protocol error code

retryable: optional boolean

Whether the error is transient and worth retrying

status_code: optional number

HTTP status code from the server

is_shared_oauth_callback_enabled: optional boolean

When true, the gateway worker uses the shared Cloudflare-owned OAuth callback endpoint as the redirect_uri for upstream on-behalf OAuth, instead of the customer portal hostname. Defaults to false (off); opt in per server by setting true.

last_successful_sync: optional string
formatdate-time
last_synced: optional string
formatdate-time
modified_at: optional string
formatdate-time
modified_by: optional string
on_behalf: optional boolean
secure_web_gateway: optional boolean

Route outbound traffic to this MCP server through Zero Trust Secure Web Gateway.

status: optional "waiting" or "ready" or "stale" or "error"

Current sync state of the server

One of the following:
"waiting"
"ready"
"stale"
"error"
updated_prompts: optional array of object { name, enabled, portal_alias, 3 more }
name: string
enabled: optional boolean
portal_alias: optional string
portal_description: optional string
server_alias: optional string
server_description: optional string
updated_tools: optional array of object { name, enabled, portal_alias, 3 more }
name: string
enabled: optional boolean
portal_alias: optional string
portal_description: optional string
server_alias: optional string
server_description: optional string
Deprecatedallow_code_mode: optional boolean

Deprecated: use code_mode for new integrations. true maps to any non-off Code Mode policy; false maps to code_mode: off. If both fields are sent, they must be consistent or the request returns a 400.

code_mode: optional "off" or "opt_in" or "default_on" or "enforced"

Code Mode policy for this portal. off: Code Mode is unavailable; query parameters are ignored. opt_in: Code Mode is off by default; clients turn it on with ?codemode=search_and_execute. default_on: Code Mode is on by default; clients can opt out with ?codemode=off. enforced: Code Mode is always on; query parameters are ignored. Defaults to opt_in when omitted on create. If both code_mode and allow_code_mode are sent, they must be consistent or the request returns a 400.

One of the following:
"off"
"opt_in"
"default_on"
"enforced"
created_at: optional string
formatdate-time
created_by: optional string
description: optional string

Optional description of the MCP portal.

maxLength512
modified_at: optional string
formatdate-time
modified_by: optional string
secure_web_gateway: optional boolean

Route outbound MCP traffic through Zero Trust Secure Web Gateway.

PortalCreateResponse object { id, hostname, name, 9 more }
id: string

Unique identifier for the MCP portal.

maxLength32
minLength1
hostname: string

Hostname where the MCP portal is available.

name: string

Display name for the MCP portal.

maxLength350
servers: array of object { id, auth_type, hostname, 22 more }
id: string

Unique identifier for the MCP server.

maxLength32
minLength1
auth_type: "oauth" or "bearer" or "unauthenticated"

Authentication method used to connect to the upstream MCP server.

One of the following:
"oauth"
"bearer"
"unauthenticated"
hostname: string

URL of the upstream MCP endpoint.

formaturi
name: string

Display name for the MCP server.

maxLength350
prompts: array of map[unknown]
server_id: string

Unique identifier for the MCP server.

maxLength32
minLength1
tools: array of map[unknown]
auth_config_summary: optional object { auth_mode, client_secret_version, config, 2 more }

Safe subset of auth_credentials surfaced to the dashboard. Includes auth_mode (dcr|manual), has_client_secret, client_secret_version, and the OAuth endpoints + client_id for manual servers. Never includes the secret value.

auth_mode: optional "dcr" or "manual"
One of the following:
"dcr"
"manual"
client_secret_version: optional number
config: optional object { authorization_endpoint, issuer, resource, 2 more }
authorization_endpoint: optional string
issuer: optional string
resource: optional string
revocation_endpoint: optional string
token_endpoint: optional string
has_client_secret: optional boolean
registration_info: optional object { client_id, redirect_uris, scope, token_endpoint_auth_method }
client_id: optional string
redirect_uris: optional array of string
scope: optional string
token_endpoint_auth_method: optional string
authentication_status: optional "not_required" or "required" or "connected" or 2 more

Whether administrative authentication is required before capabilities can be synced. Manual OAuth is user-managed and has no administrative authentication flow.

One of the following:
"not_required"
"required"
"connected"
"stale"
"manual"
created_at: optional string
formatdate-time
created_by: optional string
default_disabled: optional boolean

Hide this server’s tools and prompts by default. To expose specific capabilities, set enabled: true for them in updated_tools or updated_prompts.

description: optional string

Optional description of the MCP server.

maxLength512
error: optional string
error_details: optional object { cause, is_upstream, mcp_code, 2 more }
cause: optional string

Underlying error message

is_upstream: optional boolean

True = MCP server returned an error. False = couldn’t reach the server

mcp_code: optional number

MCP protocol error code

retryable: optional boolean

Whether the error is transient and worth retrying

status_code: optional number

HTTP status code from the server

is_shared_oauth_callback_enabled: optional boolean

When true, the gateway worker uses the shared Cloudflare-owned OAuth callback endpoint as the redirect_uri for upstream on-behalf OAuth, instead of the customer portal hostname. Defaults to false (off); opt in per server by setting true.

last_successful_sync: optional string
formatdate-time
last_synced: optional string
formatdate-time
modified_at: optional string
formatdate-time
modified_by: optional string
on_behalf: optional boolean
secure_web_gateway: optional boolean

Route outbound traffic to this MCP server through Zero Trust Secure Web Gateway.

status: optional "waiting" or "ready" or "stale" or "error"

Current sync state of the server

One of the following:
"waiting"
"ready"
"stale"
"error"
updated_prompts: optional array of object { name, enabled, portal_alias, 3 more }
name: string
enabled: optional boolean
portal_alias: optional string
portal_description: optional string
server_alias: optional string
server_description: optional string
updated_tools: optional array of object { name, enabled, portal_alias, 3 more }
name: string
enabled: optional boolean
portal_alias: optional string
portal_description: optional string
server_alias: optional string
server_description: optional string
Deprecatedallow_code_mode: optional boolean

Deprecated: use code_mode for new integrations. true maps to any non-off Code Mode policy; false maps to code_mode: off. If both fields are sent, they must be consistent or the request returns a 400.

code_mode: optional "off" or "opt_in" or "default_on" or "enforced"

Code Mode policy for this portal. off: Code Mode is unavailable; query parameters are ignored. opt_in: Code Mode is off by default; clients turn it on with ?codemode=search_and_execute. default_on: Code Mode is on by default; clients can opt out with ?codemode=off. enforced: Code Mode is always on; query parameters are ignored. Defaults to opt_in when omitted on create. If both code_mode and allow_code_mode are sent, they must be consistent or the request returns a 400.

One of the following:
"off"
"opt_in"
"default_on"
"enforced"
created_at: optional string
formatdate-time
created_by: optional string
description: optional string

Optional description of the MCP portal.

maxLength512
modified_at: optional string
formatdate-time
modified_by: optional string
secure_web_gateway: optional boolean

Route outbound MCP traffic through Zero Trust Secure Web Gateway.

PortalReadResponse object { id, hostname, name, 9 more }
id: string

Unique identifier for the MCP portal.

maxLength32
minLength1
hostname: string

Hostname where the MCP portal is available.

name: string

Display name for the MCP portal.

maxLength350
servers: array of object { id, auth_type, hostname, 22 more }
id: string

Unique identifier for the MCP server.

maxLength32
minLength1
auth_type: "oauth" or "bearer" or "unauthenticated"

Authentication method used to connect to the upstream MCP server.

One of the following:
"oauth"
"bearer"
"unauthenticated"
hostname: string

URL of the upstream MCP endpoint.

formaturi
name: string

Display name for the MCP server.

maxLength350
prompts: array of map[unknown]
server_id: string

Unique identifier for the MCP server.

maxLength32
minLength1
tools: array of map[unknown]
auth_config_summary: optional object { auth_mode, client_secret_version, config, 2 more }

Safe subset of auth_credentials surfaced to the dashboard. Includes auth_mode (dcr|manual), has_client_secret, client_secret_version, and the OAuth endpoints + client_id for manual servers. Never includes the secret value.

auth_mode: optional "dcr" or "manual"
One of the following:
"dcr"
"manual"
client_secret_version: optional number
config: optional object { authorization_endpoint, issuer, resource, 2 more }
authorization_endpoint: optional string
issuer: optional string
resource: optional string
revocation_endpoint: optional string
token_endpoint: optional string
has_client_secret: optional boolean
registration_info: optional object { client_id, redirect_uris, scope, token_endpoint_auth_method }
client_id: optional string
redirect_uris: optional array of string
scope: optional string
token_endpoint_auth_method: optional string
authentication_status: optional "not_required" or "required" or "connected" or 2 more

Whether administrative authentication is required before capabilities can be synced. Manual OAuth is user-managed and has no administrative authentication flow.

One of the following:
"not_required"
"required"
"connected"
"stale"
"manual"
created_at: optional string
formatdate-time
created_by: optional string
default_disabled: optional boolean

Hide this server’s tools and prompts by default. To expose specific capabilities, set enabled: true for them in updated_tools or updated_prompts.

description: optional string

Optional description of the MCP server.

maxLength512
error: optional string
error_details: optional object { cause, is_upstream, mcp_code, 2 more }
cause: optional string

Underlying error message

is_upstream: optional boolean

True = MCP server returned an error. False = couldn’t reach the server

mcp_code: optional number

MCP protocol error code

retryable: optional boolean

Whether the error is transient and worth retrying

status_code: optional number

HTTP status code from the server

is_shared_oauth_callback_enabled: optional boolean

When true, the gateway worker uses the shared Cloudflare-owned OAuth callback endpoint as the redirect_uri for upstream on-behalf OAuth, instead of the customer portal hostname. Defaults to false (off); opt in per server by setting true.

last_successful_sync: optional string
formatdate-time
last_synced: optional string
formatdate-time
modified_at: optional string
formatdate-time
modified_by: optional string
on_behalf: optional boolean
secure_web_gateway: optional boolean

Route outbound traffic to this MCP server through Zero Trust Secure Web Gateway.

status: optional "waiting" or "ready" or "stale" or "error"

Current sync state of the server

One of the following:
"waiting"
"ready"
"stale"
"error"
updated_prompts: optional array of object { name, enabled, portal_alias, 3 more }
name: string
enabled: optional boolean
portal_alias: optional string
portal_description: optional string
server_alias: optional string
server_description: optional string
updated_tools: optional array of object { name, enabled, portal_alias, 3 more }
name: string
enabled: optional boolean
portal_alias: optional string
portal_description: optional string
server_alias: optional string
server_description: optional string
Deprecatedallow_code_mode: optional boolean

Deprecated: use code_mode for new integrations. true maps to any non-off Code Mode policy; false maps to code_mode: off. If both fields are sent, they must be consistent or the request returns a 400.

code_mode: optional "off" or "opt_in" or "default_on" or "enforced"

Code Mode policy for this portal. off: Code Mode is unavailable; query parameters are ignored. opt_in: Code Mode is off by default; clients turn it on with ?codemode=search_and_execute. default_on: Code Mode is on by default; clients can opt out with ?codemode=off. enforced: Code Mode is always on; query parameters are ignored. Defaults to opt_in when omitted on create. If both code_mode and allow_code_mode are sent, they must be consistent or the request returns a 400.

One of the following:
"off"
"opt_in"
"default_on"
"enforced"
created_at: optional string
formatdate-time
created_by: optional string
description: optional string

Optional description of the MCP portal.

maxLength512
modified_at: optional string
formatdate-time
modified_by: optional string
secure_web_gateway: optional boolean

Route outbound MCP traffic through Zero Trust Secure Web Gateway.

PortalUpdateResponse object { id, hostname, name, 9 more }
id: string

Unique identifier for the MCP portal.

maxLength32
minLength1
hostname: string

Hostname where the MCP portal is available.

name: string

Display name for the MCP portal.

maxLength350
servers: array of object { id, auth_type, hostname, 22 more }
id: string

Unique identifier for the MCP server.

maxLength32
minLength1
auth_type: "oauth" or "bearer" or "unauthenticated"

Authentication method used to connect to the upstream MCP server.

One of the following:
"oauth"
"bearer"
"unauthenticated"
hostname: string

URL of the upstream MCP endpoint.

formaturi
name: string

Display name for the MCP server.

maxLength350
prompts: array of map[unknown]
server_id: string

Unique identifier for the MCP server.

maxLength32
minLength1
tools: array of map[unknown]
auth_config_summary: optional object { auth_mode, client_secret_version, config, 2 more }

Safe subset of auth_credentials surfaced to the dashboard. Includes auth_mode (dcr|manual), has_client_secret, client_secret_version, and the OAuth endpoints + client_id for manual servers. Never includes the secret value.

auth_mode: optional "dcr" or "manual"
One of the following:
"dcr"
"manual"
client_secret_version: optional number
config: optional object { authorization_endpoint, issuer, resource, 2 more }
authorization_endpoint: optional string
issuer: optional string
resource: optional string
revocation_endpoint: optional string
token_endpoint: optional string
has_client_secret: optional boolean
registration_info: optional object { client_id, redirect_uris, scope, token_endpoint_auth_method }
client_id: optional string
redirect_uris: optional array of string
scope: optional string
token_endpoint_auth_method: optional string
authentication_status: optional "not_required" or "required" or "connected" or 2 more

Whether administrative authentication is required before capabilities can be synced. Manual OAuth is user-managed and has no administrative authentication flow.

One of the following:
"not_required"
"required"
"connected"
"stale"
"manual"
created_at: optional string
formatdate-time
created_by: optional string
default_disabled: optional boolean

Hide this server’s tools and prompts by default. To expose specific capabilities, set enabled: true for them in updated_tools or updated_prompts.

description: optional string

Optional description of the MCP server.

maxLength512
error: optional string
error_details: optional object { cause, is_upstream, mcp_code, 2 more }
cause: optional string

Underlying error message

is_upstream: optional boolean

True = MCP server returned an error. False = couldn’t reach the server

mcp_code: optional number

MCP protocol error code

retryable: optional boolean

Whether the error is transient and worth retrying

status_code: optional number

HTTP status code from the server

is_shared_oauth_callback_enabled: optional boolean

When true, the gateway worker uses the shared Cloudflare-owned OAuth callback endpoint as the redirect_uri for upstream on-behalf OAuth, instead of the customer portal hostname. Defaults to false (off); opt in per server by setting true.

last_successful_sync: optional string
formatdate-time
last_synced: optional string
formatdate-time
modified_at: optional string
formatdate-time
modified_by: optional string
on_behalf: optional boolean
secure_web_gateway: optional boolean

Route outbound traffic to this MCP server through Zero Trust Secure Web Gateway.

status: optional "waiting" or "ready" or "stale" or "error"

Current sync state of the server

One of the following:
"waiting"
"ready"
"stale"
"error"
updated_prompts: optional array of object { name, enabled, portal_alias, 3 more }
name: string
enabled: optional boolean
portal_alias: optional string
portal_description: optional string
server_alias: optional string
server_description: optional string
updated_tools: optional array of object { name, enabled, portal_alias, 3 more }
name: string
enabled: optional boolean
portal_alias: optional string
portal_description: optional string
server_alias: optional string
server_description: optional string
Deprecatedallow_code_mode: optional boolean

Deprecated: use code_mode for new integrations. true maps to any non-off Code Mode policy; false maps to code_mode: off. If both fields are sent, they must be consistent or the request returns a 400.

code_mode: optional "off" or "opt_in" or "default_on" or "enforced"

Code Mode policy for this portal. off: Code Mode is unavailable; query parameters are ignored. opt_in: Code Mode is off by default; clients turn it on with ?codemode=search_and_execute. default_on: Code Mode is on by default; clients can opt out with ?codemode=off. enforced: Code Mode is always on; query parameters are ignored. Defaults to opt_in when omitted on create. If both code_mode and allow_code_mode are sent, they must be consistent or the request returns a 400.

One of the following:
"off"
"opt_in"
"default_on"
"enforced"
created_at: optional string
formatdate-time
created_by: optional string
description: optional string

Optional description of the MCP portal.

maxLength512
modified_at: optional string
formatdate-time
modified_by: optional string
secure_web_gateway: optional boolean

Route outbound MCP traffic through Zero Trust Secure Web Gateway.

PortalDeleteResponse object { id, hostname, name, 8 more }
id: string

Unique identifier for the MCP portal.

maxLength32
minLength1
hostname: string

Hostname where the MCP portal is available.

name: string

Display name for the MCP portal.

maxLength350
Deprecatedallow_code_mode: optional boolean

Deprecated: use code_mode for new integrations. true maps to any non-off Code Mode policy; false maps to code_mode: off. If both fields are sent, they must be consistent or the request returns a 400.

code_mode: optional "off" or "opt_in" or "default_on" or "enforced"

Code Mode policy for this portal. off: Code Mode is unavailable; query parameters are ignored. opt_in: Code Mode is off by default; clients turn it on with ?codemode=search_and_execute. default_on: Code Mode is on by default; clients can opt out with ?codemode=off. enforced: Code Mode is always on; query parameters are ignored. Defaults to opt_in when omitted on create. If both code_mode and allow_code_mode are sent, they must be consistent or the request returns a 400.

One of the following:
"off"
"opt_in"
"default_on"
"enforced"
created_at: optional string
formatdate-time
created_by: optional string
description: optional string

Optional description of the MCP portal.

maxLength512
modified_at: optional string
formatdate-time
modified_by: optional string
secure_web_gateway: optional boolean

Route outbound MCP traffic through Zero Trust Secure Web Gateway.

AI ControlsMcpServers

List MCP Servers
GET/accounts/{account_id}/access/ai-controls/mcp/servers
Create a new MCP Server
POST/accounts/{account_id}/access/ai-controls/mcp/servers
Read the details of an MCP Server
GET/accounts/{account_id}/access/ai-controls/mcp/servers/{id}
Update an MCP Server
PUT/accounts/{account_id}/access/ai-controls/mcp/servers/{id}
Delete an MCP Server
DELETE/accounts/{account_id}/access/ai-controls/mcp/servers/{id}
Sync MCP Server Capabilities
POST/accounts/{account_id}/access/ai-controls/mcp/servers/{id}/sync
ModelsExpand Collapse
ServerListResponse object { id, auth_type, hostname, 19 more }
id: string

Unique identifier for the MCP server.

maxLength32
minLength1
auth_type: "oauth" or "bearer" or "unauthenticated"

Authentication method used to connect to the upstream MCP server.

One of the following:
"oauth"
"bearer"
"unauthenticated"
hostname: string

URL of the upstream MCP endpoint.

formaturi
name: string

Display name for the MCP server.

maxLength350
prompts: array of map[unknown]
tools: array of map[unknown]
auth_config_summary: optional object { auth_mode, client_secret_version, config, 2 more }

Safe subset of auth_credentials surfaced to the dashboard. Includes auth_mode (dcr|manual), has_client_secret, client_secret_version, and the OAuth endpoints + client_id for manual servers. Never includes the secret value.

auth_mode: optional "dcr" or "manual"
One of the following:
"dcr"
"manual"
client_secret_version: optional number
config: optional object { authorization_endpoint, issuer, resource, 2 more }
authorization_endpoint: optional string
issuer: optional string
resource: optional string
revocation_endpoint: optional string
token_endpoint: optional string
has_client_secret: optional boolean
registration_info: optional object { client_id, redirect_uris, scope, token_endpoint_auth_method }
client_id: optional string
redirect_uris: optional array of string
scope: optional string
token_endpoint_auth_method: optional string
authentication_status: optional "not_required" or "required" or "connected" or 2 more

Whether administrative authentication is required before capabilities can be synced. Manual OAuth is user-managed and has no administrative authentication flow.

One of the following:
"not_required"
"required"
"connected"
"stale"
"manual"
created_at: optional string
formatdate-time
created_by: optional string
description: optional string

Optional description of the MCP server.

maxLength512
error: optional string
error_details: optional object { cause, is_upstream, mcp_code, 2 more }
cause: optional string

Underlying error message

is_upstream: optional boolean

True = MCP server returned an error. False = couldn’t reach the server

mcp_code: optional number

MCP protocol error code

retryable: optional boolean

Whether the error is transient and worth retrying

status_code: optional number

HTTP status code from the server

is_shared_oauth_callback_enabled: optional boolean

When true, the gateway worker uses the shared Cloudflare-owned OAuth callback endpoint as the redirect_uri for upstream on-behalf OAuth, instead of the customer portal hostname. Defaults to false (off); opt in per server by setting true.

last_successful_sync: optional string
formatdate-time
last_synced: optional string
formatdate-time
modified_at: optional string
formatdate-time
modified_by: optional string
secure_web_gateway: optional boolean

Route outbound traffic to this MCP server through Zero Trust Secure Web Gateway.

status: optional "waiting" or "ready" or "stale" or "error"

Current sync state of the server

One of the following:
"waiting"
"ready"
"stale"
"error"
updated_prompts: optional array of object { name, alias, description, enabled }

Server-wide prompt capability overrides.

name: string

Name of the tool or prompt capability to override.

alias: optional string

Custom name exposed for the capability.

maxLength40
description: optional string

Custom description exposed for the capability.

enabled: optional boolean

Whether the capability is available through the MCP server.

updated_tools: optional array of object { name, alias, description, enabled }

Server-wide tool capability overrides.

name: string

Name of the tool or prompt capability to override.

alias: optional string

Custom name exposed for the capability.

maxLength40
description: optional string

Custom description exposed for the capability.

enabled: optional boolean

Whether the capability is available through the MCP server.

ServerCreateResponse object { id, auth_type, hostname, 19 more }
id: string

Unique identifier for the MCP server.

maxLength32
minLength1
auth_type: "oauth" or "bearer" or "unauthenticated"

Authentication method used to connect to the upstream MCP server.

One of the following:
"oauth"
"bearer"
"unauthenticated"
hostname: string

URL of the upstream MCP endpoint.

formaturi
name: string

Display name for the MCP server.

maxLength350
prompts: array of map[unknown]
tools: array of map[unknown]
auth_config_summary: optional object { auth_mode, client_secret_version, config, 2 more }

Safe subset of auth_credentials surfaced to the dashboard. Includes auth_mode (dcr|manual), has_client_secret, client_secret_version, and the OAuth endpoints + client_id for manual servers. Never includes the secret value.

auth_mode: optional "dcr" or "manual"
One of the following:
"dcr"
"manual"
client_secret_version: optional number
config: optional object { authorization_endpoint, issuer, resource, 2 more }
authorization_endpoint: optional string
issuer: optional string
resource: optional string
revocation_endpoint: optional string
token_endpoint: optional string
has_client_secret: optional boolean
registration_info: optional object { client_id, redirect_uris, scope, token_endpoint_auth_method }
client_id: optional string
redirect_uris: optional array of string
scope: optional string
token_endpoint_auth_method: optional string
authentication_status: optional "not_required" or "required" or "connected" or 2 more

Whether administrative authentication is required before capabilities can be synced. Manual OAuth is user-managed and has no administrative authentication flow.

One of the following:
"not_required"
"required"
"connected"
"stale"
"manual"
created_at: optional string
formatdate-time
created_by: optional string
description: optional string

Optional description of the MCP server.

maxLength512
error: optional string
error_details: optional object { cause, is_upstream, mcp_code, 2 more }
cause: optional string

Underlying error message

is_upstream: optional boolean

True = MCP server returned an error. False = couldn’t reach the server

mcp_code: optional number

MCP protocol error code

retryable: optional boolean

Whether the error is transient and worth retrying

status_code: optional number

HTTP status code from the server

is_shared_oauth_callback_enabled: optional boolean

When true, the gateway worker uses the shared Cloudflare-owned OAuth callback endpoint as the redirect_uri for upstream on-behalf OAuth, instead of the customer portal hostname. Defaults to false (off); opt in per server by setting true.

last_successful_sync: optional string
formatdate-time
last_synced: optional string
formatdate-time
modified_at: optional string
formatdate-time
modified_by: optional string
secure_web_gateway: optional boolean

Route outbound traffic to this MCP server through Zero Trust Secure Web Gateway.

status: optional "waiting" or "ready" or "stale" or "error"

Current sync state of the server

One of the following:
"waiting"
"ready"
"stale"
"error"
updated_prompts: optional array of object { name, alias, description, enabled }

Server-wide prompt capability overrides.

name: string

Name of the tool or prompt capability to override.

alias: optional string

Custom name exposed for the capability.

maxLength40
description: optional string

Custom description exposed for the capability.

enabled: optional boolean

Whether the capability is available through the MCP server.

updated_tools: optional array of object { name, alias, description, enabled }

Server-wide tool capability overrides.

name: string

Name of the tool or prompt capability to override.

alias: optional string

Custom name exposed for the capability.

maxLength40
description: optional string

Custom description exposed for the capability.

enabled: optional boolean

Whether the capability is available through the MCP server.

ServerReadResponse object { id, auth_type, hostname, 19 more }
id: string

Unique identifier for the MCP server.

maxLength32
minLength1
auth_type: "oauth" or "bearer" or "unauthenticated"

Authentication method used to connect to the upstream MCP server.

One of the following:
"oauth"
"bearer"
"unauthenticated"
hostname: string

URL of the upstream MCP endpoint.

formaturi
name: string

Display name for the MCP server.

maxLength350
prompts: array of map[unknown]
tools: array of map[unknown]
auth_config_summary: optional object { auth_mode, client_secret_version, config, 2 more }

Safe subset of auth_credentials surfaced to the dashboard. Includes auth_mode (dcr|manual), has_client_secret, client_secret_version, and the OAuth endpoints + client_id for manual servers. Never includes the secret value.

auth_mode: optional "dcr" or "manual"
One of the following:
"dcr"
"manual"
client_secret_version: optional number
config: optional object { authorization_endpoint, issuer, resource, 2 more }
authorization_endpoint: optional string
issuer: optional string
resource: optional string
revocation_endpoint: optional string
token_endpoint: optional string
has_client_secret: optional boolean
registration_info: optional object { client_id, redirect_uris, scope, token_endpoint_auth_method }
client_id: optional string
redirect_uris: optional array of string
scope: optional string
token_endpoint_auth_method: optional string
authentication_status: optional "not_required" or "required" or "connected" or 2 more

Whether administrative authentication is required before capabilities can be synced. Manual OAuth is user-managed and has no administrative authentication flow.

One of the following:
"not_required"
"required"
"connected"
"stale"
"manual"
created_at: optional string
formatdate-time
created_by: optional string
description: optional string

Optional description of the MCP server.

maxLength512
error: optional string
error_details: optional object { cause, is_upstream, mcp_code, 2 more }
cause: optional string

Underlying error message

is_upstream: optional boolean

True = MCP server returned an error. False = couldn’t reach the server

mcp_code: optional number

MCP protocol error code

retryable: optional boolean

Whether the error is transient and worth retrying

status_code: optional number

HTTP status code from the server

is_shared_oauth_callback_enabled: optional boolean

When true, the gateway worker uses the shared Cloudflare-owned OAuth callback endpoint as the redirect_uri for upstream on-behalf OAuth, instead of the customer portal hostname. Defaults to false (off); opt in per server by setting true.

last_successful_sync: optional string
formatdate-time
last_synced: optional string
formatdate-time
modified_at: optional string
formatdate-time
modified_by: optional string
secure_web_gateway: optional boolean

Route outbound traffic to this MCP server through Zero Trust Secure Web Gateway.

status: optional "waiting" or "ready" or "stale" or "error"

Current sync state of the server

One of the following:
"waiting"
"ready"
"stale"
"error"
updated_prompts: optional array of object { name, alias, description, enabled }

Server-wide prompt capability overrides.

name: string

Name of the tool or prompt capability to override.

alias: optional string

Custom name exposed for the capability.

maxLength40
description: optional string

Custom description exposed for the capability.

enabled: optional boolean

Whether the capability is available through the MCP server.

updated_tools: optional array of object { name, alias, description, enabled }

Server-wide tool capability overrides.

name: string

Name of the tool or prompt capability to override.

alias: optional string

Custom name exposed for the capability.

maxLength40
description: optional string

Custom description exposed for the capability.

enabled: optional boolean

Whether the capability is available through the MCP server.

ServerUpdateResponse object { id, auth_type, hostname, 19 more }
id: string

Unique identifier for the MCP server.

maxLength32
minLength1
auth_type: "oauth" or "bearer" or "unauthenticated"

Authentication method used to connect to the upstream MCP server.

One of the following:
"oauth"
"bearer"
"unauthenticated"
hostname: string

URL of the upstream MCP endpoint.

formaturi
name: string

Display name for the MCP server.

maxLength350
prompts: array of map[unknown]
tools: array of map[unknown]
auth_config_summary: optional object { auth_mode, client_secret_version, config, 2 more }

Safe subset of auth_credentials surfaced to the dashboard. Includes auth_mode (dcr|manual), has_client_secret, client_secret_version, and the OAuth endpoints + client_id for manual servers. Never includes the secret value.

auth_mode: optional "dcr" or "manual"
One of the following:
"dcr"
"manual"
client_secret_version: optional number
config: optional object { authorization_endpoint, issuer, resource, 2 more }
authorization_endpoint: optional string
issuer: optional string
resource: optional string
revocation_endpoint: optional string
token_endpoint: optional string
has_client_secret: optional boolean
registration_info: optional object { client_id, redirect_uris, scope, token_endpoint_auth_method }
client_id: optional string
redirect_uris: optional array of string
scope: optional string
token_endpoint_auth_method: optional string
authentication_status: optional "not_required" or "required" or "connected" or 2 more

Whether administrative authentication is required before capabilities can be synced. Manual OAuth is user-managed and has no administrative authentication flow.

One of the following:
"not_required"
"required"
"connected"
"stale"
"manual"
created_at: optional string
formatdate-time
created_by: optional string
description: optional string

Optional description of the MCP server.

maxLength512
error: optional string
error_details: optional object { cause, is_upstream, mcp_code, 2 more }
cause: optional string

Underlying error message

is_upstream: optional boolean

True = MCP server returned an error. False = couldn’t reach the server

mcp_code: optional number

MCP protocol error code

retryable: optional boolean

Whether the error is transient and worth retrying

status_code: optional number

HTTP status code from the server

is_shared_oauth_callback_enabled: optional boolean

When true, the gateway worker uses the shared Cloudflare-owned OAuth callback endpoint as the redirect_uri for upstream on-behalf OAuth, instead of the customer portal hostname. Defaults to false (off); opt in per server by setting true.

last_successful_sync: optional string
formatdate-time
last_synced: optional string
formatdate-time
modified_at: optional string
formatdate-time
modified_by: optional string
secure_web_gateway: optional boolean

Route outbound traffic to this MCP server through Zero Trust Secure Web Gateway.

status: optional "waiting" or "ready" or "stale" or "error"

Current sync state of the server

One of the following:
"waiting"
"ready"
"stale"
"error"
updated_prompts: optional array of object { name, alias, description, enabled }

Server-wide prompt capability overrides.

name: string

Name of the tool or prompt capability to override.

alias: optional string

Custom name exposed for the capability.

maxLength40
description: optional string

Custom description exposed for the capability.

enabled: optional boolean

Whether the capability is available through the MCP server.

updated_tools: optional array of object { name, alias, description, enabled }

Server-wide tool capability overrides.

name: string

Name of the tool or prompt capability to override.

alias: optional string

Custom name exposed for the capability.

maxLength40
description: optional string

Custom description exposed for the capability.

enabled: optional boolean

Whether the capability is available through the MCP server.

ServerDeleteResponse object { id, auth_type, hostname, 19 more }
id: string

Unique identifier for the MCP server.

maxLength32
minLength1
auth_type: "oauth" or "bearer" or "unauthenticated"

Authentication method used to connect to the upstream MCP server.

One of the following:
"oauth"
"bearer"
"unauthenticated"
hostname: string

URL of the upstream MCP endpoint.

formaturi
name: string

Display name for the MCP server.

maxLength350
prompts: array of map[unknown]
tools: array of map[unknown]
auth_config_summary: optional object { auth_mode, client_secret_version, config, 2 more }

Safe subset of auth_credentials surfaced to the dashboard. Includes auth_mode (dcr|manual), has_client_secret, client_secret_version, and the OAuth endpoints + client_id for manual servers. Never includes the secret value.

auth_mode: optional "dcr" or "manual"
One of the following:
"dcr"
"manual"
client_secret_version: optional number
config: optional object { authorization_endpoint, issuer, resource, 2 more }
authorization_endpoint: optional string
issuer: optional string
resource: optional string
revocation_endpoint: optional string
token_endpoint: optional string
has_client_secret: optional boolean
registration_info: optional object { client_id, redirect_uris, scope, token_endpoint_auth_method }
client_id: optional string
redirect_uris: optional array of string
scope: optional string
token_endpoint_auth_method: optional string
authentication_status: optional "not_required" or "required" or "connected" or 2 more

Whether administrative authentication is required before capabilities can be synced. Manual OAuth is user-managed and has no administrative authentication flow.

One of the following:
"not_required"
"required"
"connected"
"stale"
"manual"
created_at: optional string
formatdate-time
created_by: optional string
description: optional string

Optional description of the MCP server.

maxLength512
error: optional string
error_details: optional object { cause, is_upstream, mcp_code, 2 more }
cause: optional string

Underlying error message

is_upstream: optional boolean

True = MCP server returned an error. False = couldn’t reach the server

mcp_code: optional number

MCP protocol error code

retryable: optional boolean

Whether the error is transient and worth retrying

status_code: optional number

HTTP status code from the server

is_shared_oauth_callback_enabled: optional boolean

When true, the gateway worker uses the shared Cloudflare-owned OAuth callback endpoint as the redirect_uri for upstream on-behalf OAuth, instead of the customer portal hostname. Defaults to false (off); opt in per server by setting true.

last_successful_sync: optional string
formatdate-time
last_synced: optional string
formatdate-time
modified_at: optional string
formatdate-time
modified_by: optional string
secure_web_gateway: optional boolean

Route outbound traffic to this MCP server through Zero Trust Secure Web Gateway.

status: optional "waiting" or "ready" or "stale" or "error"

Current sync state of the server

One of the following:
"waiting"
"ready"
"stale"
"error"
updated_prompts: optional array of object { name, alias, description, enabled }

Server-wide prompt capability overrides.

name: string

Name of the tool or prompt capability to override.

alias: optional string

Custom name exposed for the capability.

maxLength40
description: optional string

Custom description exposed for the capability.

enabled: optional boolean

Whether the capability is available through the MCP server.

updated_tools: optional array of object { name, alias, description, enabled }

Server-wide tool capability overrides.

name: string

Name of the tool or prompt capability to override.

alias: optional string

Custom name exposed for the capability.

maxLength40
description: optional string

Custom description exposed for the capability.

enabled: optional boolean

Whether the capability is available through the MCP server.

ServerSyncResponse object { error, error_details, status }
error: optional string
error_details: optional object { cause, is_upstream, mcp_code, 2 more }
cause: optional string

Underlying error message

is_upstream: optional boolean

True = MCP server returned an error. False = couldn’t reach the server

mcp_code: optional number

MCP protocol error code

retryable: optional boolean

Whether the error is transient and worth retrying

status_code: optional number

HTTP status code from the server

status: optional "waiting" or "ready" or "stale" or "error"
One of the following:
"waiting"
"ready"
"stale"
"error"