zscaler-aiguard-control-plane-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@zscaler-aiguard-control-plane-mcp list my detection policies"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Zscaler AI Guard Control Plane MCP
An unofficial Model Context Protocol (MCP) server that provides AI agents (Gemini, Claude, Cursor) with programmatic, REST-based access to the Zscaler AI Guard (Zseclipse) ecosystem.
This MCP server allows your AI assistants to autonomously list, create, update, and delete Detection Policies, Match Rules, LLM Applications, and LLM Providers.
Overview
The server wraps the Zscaler AI Guard Public API (https://api.zsapi.net/aiguard/v1). It handles secure OAuth 2.0 client_credentials authentication natively, meaning your AI agent simply calls high-level tools like create_policy or list_llm_apps, and the server manages the Bearer token lifecycle and REST payloads.
Related MCP server: zrok-mcp
Prerequisites & Authentication
To use this MCP server, you must provide three pieces of information from your Zscaler tenant.
How to obtain your API Credentials:
Log in to your Zscaler AI Guard (or ZIdentity) administration portal.
Navigate to the API Clients page.
Click Add API Client (or generate a new credential).
Ensure the client is granted the necessary scopes (all:read, all:write, all:delete).
Copy the Client Secret immediately, as it is only shown once at creation.
Environment Variables
The MCP server reads these credentials directly from your environment variables:
ZSCALER_CLIENT_ID: The OAuth Client ID generated in Step 3.
ZSCALER_CLIENT_SECRET: The OAuth Client Secret generated in Step 3.
ZSCALER_VANITY_DOMAIN: Your Zscaler organization's login domain (e.g., if you log in at https://mycompany.zslogin.net, your vanity domain is mycompany).
Available MCP Tools
This server maps directly to the Zscaler AI Guard API Reference. All tools expect and return standard JSON payloads.
Detection Policies
Manage AI guard detection policies that inspect and act on prompts and responses.
list_policy_summaries: Returns a lightweight list of all detection policies (IDs, names, versions, timestamps).
list_policies: Returns all detection policies with full detector configuration.
get_policy: Fetch a specific policy by its numeric ID.
get_policy_by_name: Fetch a specific policy by its exact name.
create_policy: Creates a new detection policy (requires JSON payload).
update_policy: Replaces a detection policy completely.
enable_policy_controls: Partially updates the enabled/disabled state of individual policy controls.
delete_policy: Permanently deletes a detection policy.
check_policy_references: Checks if a policy is actively referenced by match rules or LLM applications.
Detection Policy Match Rules
Manage match rules that define the conditions under which a detection policy triggers.
list_match_rules: Returns all match rules for the tenant.
get_match_rule / get_match_rule_by_name
create_match_rule
update_match_rule
delete_match_rule
LLM Applications
Manage the LLM applications registered with AI Guard.
list_llm_applications
get_llm_application / get_llm_application_by_name
create_llm_application
update_llm_application
delete_llm_application
check_application_references
LLM Providers
Manage the LLM providers configured for the tenant.
list_llm_providers
get_llm_provider / get_llm_provider_by_name
create_llm_provider
update_llm_provider
delete_llm_provider
check_provider_references
Installation & Usage
1. Gemini CLI (Native Integration)
The fastest way to install this MCP server into your Gemini CLI is to use the native command.
First, clone this repository:
git clone https://github.com/hshen-ai/zscaler-aiguard-control-plane-mcp.git
cd zscaler-aiguard-control-plane-mcpThen, run the simplified MCP installation command (ensure you replace the placeholder credentials with your actual ZIdentity keys):
gemini mcp add zscaler-aiguard-control-plane-mcp --env ZSCALER_CLIENT_ID=your_client_id --env ZSCALER_CLIENT_SECRET=your_client_secret --env ZSCALER_VANITY_DOMAIN=your_vanity_domain -- uv run --manifest-path ./pyproject.toml fastmcp run ./server.py2. Claude Desktop / Claude Code
Add the server to your claude_desktop_config.json or .claude/mcp-servers.json:
{ "mcpServers": { "zscaler-aiguard-control-plane-mcp": { "command": "uv", "args": ["run", "fastmcp", "run", "/path/to/Zscaler-AI-Guard-Control-Plane-MCP/server.py"], "env": { "ZSCALER_CLIENT_ID": "...", "ZSCALER_CLIENT_SECRET": "...", "ZSCALER_VANITY_DOMAIN": "..." } } } }
3. Cursor IDE
In Cursor Settings > Features > MCP, add a new server:
Name: zscaler-aiguard-control-plane-mcp
Type: command
Command: uv run fastmcp run /path/to/Zscaler-AI-Guard-Control-Plane-MCP/server.py
Available Tools
18 toolscheck_application_referencesA
Check if an LLM application is referenced by any active match rules.
Inputs: app_id (required). Returns: object
create_policyB
Creates a new detection policy. Provide the full JSON configuration payload.
Inputs: payload (required). Returns: object
delete_llm_providerA
Permanently deletes an LLM provider. Set delete_references=True to cascade-delete referencing LLM applications.
Inputs: provider_id (required), delete_references. Returns: object
delete_policyA
Permanently deletes a detection policy. Set delete_references=True to cascade-delete all referencing match rules and LLM assignments.
Inputs: policy_id (required), delete_references. Returns: object
get_llm_application_by_nameA
Fetch a specific LLM application by its exact name.
Inputs: app_name (required). Returns: object
get_llm_providerB
Fetch a specific LLM provider by its numeric ID.
Inputs: provider_id (required). Returns: object
get_llm_provider_by_nameB
Fetch a specific LLM provider by its exact name.
Inputs: provider_name (required). Returns: object
get_match_ruleB
Fetch a specific match rule by its numeric ID.
Inputs: rule_id (required). Returns: object
get_policyA
Fetch a specific detection policy by its numeric ID.
Inputs: policy_id (required). Returns: object
list_llm_applicationsB
Returns all LLM applications for the tenant.
Inputs: no named parameters. Returns: object
list_llm_providersB
Returns all LLM providers for the tenant.
Inputs: no named parameters. Returns: object
list_match_rulesB
Returns all match rules for the tenant.
Inputs: no named parameters. Returns: object
list_policiesA
Returns all detection policies with full detector configuration.
Inputs: no named parameters. Returns: object
list_policy_summariesA
Returns a lightweight list of all detection policies (IDs, names, versions, timestamps only).
Inputs: no named parameters. Returns: object
update_llm_applicationA
Replaces an LLM application completely. Provide the app ID and the full JSON payload.
Inputs: app_id (required), payload (required). Returns: object
update_llm_providerB
Replaces an LLM provider completely. Provide the provider ID and the full JSON payload.
Inputs: payload (required), provider_id (required). Returns: object
update_match_ruleA
Replaces a match rule completely. Provide the rule ID and the full JSON payload.
Inputs: payload (required), rule_id (required). Returns: object
update_policyA
Replaces a detection policy completely. Provide the policy ID and the full JSON payload.
Inputs: payload (required), policy_id (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Tools are clearly distinguished by resource type and action (e.g., list_llm_providers vs. get_llm_provider). The only potential ambiguity is between list_policies and list_policy_summaries, but descriptions clarify their differences.
All tool names follow the verb_noun pattern with snake_case, and prefixes like list_, get_, update_, delete_, create_, and check_ are used consistently across resources.
18 tools is reasonable for managing multiple resource types (LLM providers, applications, match rules, policies), though it is slightly high. The count is within the typical well-scoped range.
Missing create operations for LLM applications, providers, and match rules, and missing delete for applications and match rules. This creates workflow gaps where new resources cannot be created from scratch via the MCP.
Maintenance
Related MCP Connectors
Governed access to sensitive data, secrets and APIs for AI agents. A signed proof for each decision.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Credential broker for AI agents: scoped, revocable API access with policy enforcement and audit.
Zero-trust gateway for AI agents: score tool calls, verify agent cards, enforce policy, audit.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceConnects AI agents with the CrowdStrike Falcon platform to enable intelligent security analysis, providing programmatic access to detections, incidents, threat intelligence, vulnerabilities, and other security capabilities for advanced security operations and automation.281MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage zrok tunnels, shares, and access programmatically through environment management, share creation/deletion/listing, and access control actions.MIT

Britive MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceEnables AI agents and users to interact with the Britive platform for dynamic access, query configurations, reporting, and access activity.1-- AlicenseBqualityCmaintenanceEnables AI agents to directly manage Beyond Identity resources such as identities, groups, applications, SSO configurations, and credentials via natural language tool calls.3610 npmApache 2.0