Mark a policy as MCP-wide
Promotes a policy to run on every MCP consumer of the gateway and on the MCP Store, narrowed by its mcp_scope (groups, except_groups, registries, tools); a null mcp_scope means every MCP caller. It never runs on LLM or A2A consumers. Promoting clears global and removes the policy’s consumer links in the same write; while the flag is set a consumer cannot be attached (422). The policy takes the all-consumers levels of its scope, the ones a global policy of that scope takes, so it answers 409 when another policy of the same plugin already holds one of them, global ones included. A policy that changed while it was being promoted also answers 409: reload it and retry. A retry that finds the policy already MCP-wide answers 200 with the policy as stored. A plugin without MCP support answers 422. Plugin state such as rate-limit counters is shared gateway-wide, as for a global policy. The response may carry non-blocking warnings.
A valid request URL is required to generate request examples{
"consumer_ids": [
"<string>"
],
"created_at": "<string>",
"description": "<string>",
"enabled": true,
"gateway_id": "<string>",
"global": true,
"id": "<string>",
"mcp_scope": {
"except_groups": [
"<string>"
],
"groups": [
"<string>"
],
"registry_ids": [
"<string>"
],
"tools": [
{
"registry_id": "<string>",
"tool": "<string>"
}
]
},
"mcp_wide": true,
"mode": "<string>",
"name": "<string>",
"parallel": true,
"priority": 123,
"settings": {},
"slug": "<string>",
"stages": [
"<string>"
],
"status": "active",
"status_message": "<string>",
"updated_at": "<string>",
"warnings": [
"<string>"
]
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
Response
OK
MCPScope is echoed as stored: absent when the policy is consumer-wide, {} when a registry delete pruned every destination.
Show child attributes
Show child attributes
MCPWide marks a policy that runs on every MCP consumer of the gateway and on the MCP Store, narrowed by its mcp_scope. It is never true together with Global, and an MCP-wide policy has no consumer_ids.
Show child attributes
Show child attributes
Status is "active" (enabled and running), "paused" (disabled) or "error" (enabled but the gateway cannot run it; see status_message).
active, paused, error StatusMessage is the reason the gateway cannot run the policy. It is present only when status is "error".
Warnings are non-blocking notes about the write that just succeeded, such as a consumer that already runs the same plugin without scope.
A valid request URL is required to generate request examples{
"consumer_ids": [
"<string>"
],
"created_at": "<string>",
"description": "<string>",
"enabled": true,
"gateway_id": "<string>",
"global": true,
"id": "<string>",
"mcp_scope": {
"except_groups": [
"<string>"
],
"groups": [
"<string>"
],
"registry_ids": [
"<string>"
],
"tools": [
{
"registry_id": "<string>",
"tool": "<string>"
}
]
},
"mcp_wide": true,
"mode": "<string>",
"name": "<string>",
"parallel": true,
"priority": 123,
"settings": {},
"slug": "<string>",
"stages": [
"<string>"
],
"status": "active",
"status_message": "<string>",
"updated_at": "<string>",
"warnings": [
"<string>"
]
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}