Contact Us 1-800-596-4880

MCP Global Access Policy

Policy Name

MCP Global Access

Summary

Restricts which MCP tools, resources, and prompts are exposed by defining Allow and Block rules

Category

MCP

First Omni Gateway version available

v1.9.3

Release Notes

MCP Global Access

Returned Status Codes

200 with JSON-RPC error code -32008 — Returned when a call targets a blocked tool, resource, or prompt

This policy supports Model Context Protocol (MCP) version 2025-06-18 and earlier. To learn more about MCP, see MCP Specification.

Summary

The MCP Global Access policy controls which MCP tools, resources, and prompts are available. Use it to filter the overall list of MCP capabilities that enter your network.

You define rules to allow or block specific items based on their names (for tools and prompts) or URIs (for resources). When both Allow and Block rules exist, Block rules always take precedence. The policy applies to:

  • Request authorization: The gateway rejects calls to blocked items with a JSON-RPC error stating Access denied to: <name-or-uri>:

    • tools/call requests

    • resources/read requests

    • prompts/get requests

  • Response filtering: The list returned to the client includes only permitted items:

    • tools/list responses

    • resources/list responses

    • prompts/list responses

Filtering applies to both JSON-RPC and SSE response formats.

Configuring Policy Parameters

Omni Gateway Local Mode

The MCP Global Access policy isn’t supported in Local Mode.

Managed Omni Gateway and Omni Gateway Connected Mode

When you apply the policy from the UI, the following parameters are displayed:

Element Description

Rules

Defines the access control rules. At least one rule is required. Each rule allows or blocks access to matching tools, resources, or prompts.

Rule

Defines whether to Allow or Block access.

Match type

Determines how to match the value. Use literal for an exact name match or pattern for a regular expression.

Value

The tool name, resource URI, or prompt name for literal match type, or the regex pattern for pattern match type.

Rule behavior

Rule order doesn’t matter. The policy evaluates all rules and applies this logic depending on the combination of rule types are applied:

Only Allow rules

Only items that match at least one Allow rule are permitted. All others are blocked.

Only Block rules

All items are permitted except those that match a Block rule.

Both Allow and Block rules

Only items that match at least one Allow rule and do not match any Block rule are permitted. If an item matches both an Allow and a Block rule, it is blocked. Items that match no Allow rule are also blocked.

Example: Allow list only

To expose only specific tools:

rules:
  - rule: Allow
    match_type: literal
    value: get_weather
  - rule: Allow
    match_type: literal
    value: get_user

Only get_weather and get_user can be called. All other tools are blocked and omitted from tools/list responses.

To expose only specific resources by URI pattern:

rules:
  - rule: Allow
    match_type: pattern
    value: ^file://public/.*

In the previous example, only resources matching the file://public/ URI pattern are exposed and blocks all tools and prompts, since their names don’t match the pattern. To scope by type, combine allow rules that cover each capability you want to expose:

rules:
  - rule: Allow
    match_type: pattern
    value: ^file://public/.*
  - rule: Allow
    match_type: literal
    value: get_user

Example: Block List Only

To block specific tools and allow everything else:

rules:
  - rule: Block
    match_type: literal
    value: admin_delete
  - rule: Block
    match_type: literal
    value: get_secret

All tools except admin_delete and get_secret are exposed.

Example: Allow and Block with Pattern

To allow a family of tools but block one of them:

rules:
  - rule: Allow
    match_type: pattern
    value: ^get_.*
  - rule: Block
    match_type: literal
    value: get_secret

Tools whose names match the pattern ^get_.*, such as get_weather or get_user, are exposed. get_secret is explicitly blocked even though it matches the Allow pattern, because Block takes precedence.