Okta vs Zscaler Zero Trust Exchange
Okta is an MCP server published by fctr-id. Marketplaces we read that list it: 1 (Docker MCP Catalog). Zscaler Zero Trust Exchange is an MCP server published by zscaler. Marketplaces we read that list it: 5 (Official MCP Registry, Claude Code: claude-plugins-official, Docker MCP Catalog, Claude Code: claude-plugins-community, Community GitHub marketplaces). As of our marketplace pass on 2026-11-10. This pair was picked by a reader, not by our comparison rule, so search engines are asked not to index the page.
Where each is published
| Marketplace | ||
|---|---|---|
| Docker MCP Catalog | Listed Version: sha256:8d6cd51e1836 Forks (GitHub): 8 Pulls (Docker Hub): 33 923 Stars (Docker Hub): 0 Stars (GitHub): 38 Not marked · First seen |
Listed Version: sha256:a3951ea456e1 Forks (GitHub): 34 Pulls (Docker Hub): 7 561 Stars (Docker Hub): 0 Stars (GitHub): 55 Not marked · First seen |
| Official MCP Registry | Not listed | Listed Version: 0.15.4 Downloads/month (PyPI): 1 348 Downloads/week (PyPI): 2 399 Forks (GitHub): 34 Stars (GitHub): 55 Not marked · First seen |
| Claude Code: claude-plugins-official | Not listed | Listed Version: 0.15.4 Forks (GitHub): 34 Stars (GitHub): 55 Not marked · First seen |
| Claude Code: claude-plugins-community | Not listed | Listed Version: 0.15.0 Forks (GitHub): 34 Stars (GitHub): 55 Not marked · First seen |
Each figure is the marketplace's own and is never added up across marketplaces. A marketplace that publishes no figure shows none: no number is not zero.
The facts side by side
| Fact | Okta | Zscaler Zero Trust Exchange |
|---|---|---|
| Marketplaces that list it (differs) | 1 (worse) | 5 (better) |
| Stars (GitHub) (differs) | 38 (worse) | 55 (better) |
| Pulls (Docker Hub) (differs) | 33 923 (better) | 7 561 (worse) |
| Forks (GitHub) (differs) | 8 (worse) | 34 (better) |
| Last release (differs) | Not published | 2026-11-04 |
| Where it runs (differs) | On your machine (mcp/okta-mcp-fctr) | On your machine (zscaler-mcp) |
| Transport | stdio | stdio |
| Tools it declares (differs) | 20 | 302 |
| Environment variables it asks for (differs) | 4, secrets among them: 1 | 10, secrets among them: 5 |
| Parts of the bundle (differs) | Not a bundle | 28 |
| Licence (differs) | Apache-2.0 | MIT |
| Repository (differs) | github.com/fctr-id/okta-mcp-server | github.com/zscaler/zscaler-mcp-server |
| Changes in the last 7 days (differs) | 0 | 1 |
| First seen | 2026-10-11 | 2026-10-11 |
Lines where the two differ have a tinted background and bold values. Where the data itself says which value is better (more marketplaces, a larger figure of the same marketplace, a fresher release, a verified mark on a marketplace that lists both), the better one is also marked green with ▲ and the worse one red with ▼. Where it runs, the transport, the tools, the settings, hooks, the bundle's parts, the licence and the week's changes are marked only as different: more or fewer is not better in itself.
What each says it does
Okta
Secure Okta identity and access management via Model Context Protocol (MCP). Access Okta users, groups, applications, logs, and policies through AI assistants with enterprise-grade security.
Zscaler Zero Trust Exchange
Manage Zscaler Zero Trust Exchange via 400+ tools — ZPA, ZIA, ZDX, ZCC, ZTW, ZMS, EASM, and more.
How to run each
Okta As a local MCP server: Docker image
claude mcp add --env "OKTA_API_TOKEN=<YOUR_OKTA_API_TOKEN>" --transport stdio okta-mcp-fctr -- docker run -i --rm -e OKTA_API_TOKEN mcp/okta-mcp-fctr
Requires: OKTA_API_TOKEN (secret)
Zscaler Zero Trust Exchange As a local MCP server: PyPI package
claude mcp add --env "ZSCALER_CLIENT_ID=<YOUR_ZSCALER_CLIENT_ID>" --env "ZSCALER_CLIENT_SECRET=<YOUR_ZSCALER_CLIENT_SECRET>" --env "ZSCALER_CUSTOMER_ID=<YOUR_ZSCALER_CUSTOMER_ID>" --env "ZSCALER_VANITY_DOMAIN=<YOUR_ZSCALER_VANITY_DOMAIN>" --transport stdio zscaler-mcp-server -- uvx zscaler-mcp
Requires: ZSCALER_CLIENT_ID (secret), ZSCALER_CLIENT_SECRET (secret), ZSCALER_CUSTOMER_ID, ZSCALER_VANITY_DOMAIN
Commands built only from what the marketplaces declare; the full set for every client is on each card.
Tools each declares
Only Okta declares
analyze_login_riskanalyze_user_app_accessget_current_timeget_okta_applicationget_okta_event_logsget_okta_groupget_okta_policy_ruleget_okta_userlist_okta_application_groupslist_okta_application_userslist_okta_applicationslist_okta_group_users
Show the remaining 8
list_okta_groupslist_okta_network_zoneslist_okta_policy_ruleslist_okta_user_applicationslist_okta_user_factorslist_okta_user_groupslist_okta_usersparse_relative_time
Only Zscaler Zero Trust Exchange declares
get_zia_dlp_dictionariesget_zia_dlp_enginesget_zia_user_departmentsget_zia_user_groupsget_zia_usersget_zpa_app_protection_profileget_zpa_app_segments_by_typeget_zpa_enrollment_certificateget_zpa_isolation_profileget_zpa_posture_profileget_zpa_saml_attributeget_zpa_scim_attribute
Show the remaining 188
get_zpa_scim_groupget_zpa_trusted_networkzcc_list_deviceszcc_list_forwarding_profileszcc_list_trusted_networkszdx_delete_analysiszdx_delete_deeptracezdx_get_alertzdx_get_analysiszdx_get_applicationzdx_get_application_metriczdx_get_application_score_trendzdx_get_application_userzdx_get_deeptrace_cloudpathzdx_get_deeptrace_cloudpath_metricszdx_get_deeptrace_eventszdx_get_deeptrace_health_metricszdx_get_deeptrace_webprobe_metricszdx_get_devicezdx_get_device_deep_tracezdx_get_software_detailszdx_get_web_probeszdx_list_alert_affected_deviceszdx_list_alertszdx_list_application_userszdx_list_applicationszdx_list_cloudpath_probeszdx_list_deeptrace_top_processeszdx_list_departmentszdx_list_device_deep_traceszdx_list_deviceszdx_list_historical_alertszdx_list_locationszdx_list_softwarezdx_start_analysiszdx_start_deeptracezeasm_get_finding_detailszeasm_get_finding_evidencezeasm_get_finding_scan_outputzeasm_get_lookalike_domainzeasm_list_findingszeasm_list_lookalike_domainszeasm_list_organizationszia_activate_configurationzia_add_atp_malicious_urlszia_add_auth_exempt_urlszia_add_urls_to_categoryzia_bulk_update_cloud_applicationszia_create_cloud_firewall_rulezia_create_gre_tunnelzia_create_ip_destination_groupzia_create_ip_source_groupzia_create_locationzia_create_network_app_groupzia_create_network_servicezia_create_network_svc_groupzia_create_rule_labelzia_create_ssl_inspection_rulezia_create_static_ipzia_create_url_categoryzia_create_url_filtering_rulezia_create_vpn_credentialzia_create_web_dlp_rulezia_delete_atp_malicious_urlszia_delete_auth_exempt_urlszia_delete_cloud_firewall_rulezia_delete_gre_tunnelzia_delete_ip_destination_groupzia_delete_ip_source_groupzia_delete_locationzia_delete_network_app_groupzia_delete_network_servicezia_delete_network_svc_groupzia_delete_rule_labelzia_delete_ssl_inspection_rulezia_delete_static_ipzia_delete_url_categoryzia_delete_url_filtering_rulezia_delete_vpn_credentialzia_delete_web_dlp_rulezia_geo_searchzia_get_activation_statuszia_get_cloud_firewall_rulezia_get_gre_tunnelzia_get_ip_destination_groupzia_get_ip_source_groupzia_get_locationzia_get_network_appzia_get_network_app_groupzia_get_network_servicezia_get_network_svc_groupzia_get_rule_labelzia_get_sandbox_behavioral_analysiszia_get_sandbox_file_hash_countzia_get_sandbox_quotazia_get_sandbox_reportzia_get_ssl_inspection_rulezia_get_static_ipzia_get_url_categoryzia_get_url_filtering_rulezia_get_vpn_credentialzia_get_web_dlp_rulezia_list_atp_malicious_urlszia_list_auth_exempt_urlszia_list_cloud_app_control_actionszia_list_cloud_application_custom_tagszia_list_cloud_applicationszia_list_cloud_firewall_ruleszia_list_device_groupszia_list_deviceszia_list_devices_litezia_list_gre_rangeszia_list_gre_tunnelszia_list_ip_destination_groupszia_list_ip_source_groupszia_list_locationszia_list_network_app_groupszia_list_network_appszia_list_network_serviceszia_list_network_svc_groupszia_list_rule_labelszia_list_ssl_inspection_ruleszia_list_static_ipszia_list_url_categorieszia_list_url_filtering_ruleszia_list_vpn_credentialszia_list_web_dlp_ruleszia_list_web_dlp_rules_litezia_remove_urls_from_categoryzia_update_cloud_firewall_rulezia_update_ip_destination_groupzia_update_ip_source_groupzia_update_locationzia_update_network_app_groupzia_update_network_servicezia_update_network_svc_groupzia_update_rule_labelzia_update_ssl_inspection_rulezia_update_static_ipzia_update_url_categoryzia_update_url_filtering_rulezia_update_vpn_credentialzia_update_web_dlp_rulezia_url_lookupzid_get_groupzid_get_group_userszid_get_group_users_by_namezid_get_userzid_get_user_groupszid_get_user_groups_by_namezid_list_groupszid_list_userszid_search_groupszid_search_userszins_get_casb_app_reportzins_get_cyber_incidentszins_get_cyber_incidents_by_locationzins_get_cyber_incidents_by_threat_and_appzins_get_cyber_incidents_dailyzins_get_firewall_by_actionzins_get_firewall_by_locationzins_get_firewall_network_serviceszins_get_iot_device_statszins_get_shadow_it_appszins_get_shadow_it_summaryzins_get_threat_classzins_get_threat_super_categorieszins_get_web_protocolszins_get_web_traffic_by_locationzins_get_web_traffic_no_groupingzms_get_agent_connection_status_statisticszms_get_agent_group_totp_secretszms_get_agent_version_statisticszms_get_metadatazms_get_noncezms_get_resource_group_memberszms_get_resource_group_protection_statuszms_get_resource_protection_statuszms_list_agent_groupszms_list_agentszms_list_app_catalogzms_list_app_zoneszms_list_default_policy_ruleszms_list_nonceszms_list_policy_ruleszms_list_resource_groupszms_list_resourceszms_list_tag_keys
Both declare
None
Tool names as each marketplace publishes them. More tools is not better in itself: compare what each needs for the job.
Settings each asks for
Only Okta asks for
LOG_LEVELOKTA_API_TOKEN (secret)OKTA_CLIENT_ORGURLOKTA_CONCURRENT_LIMIT
Only Zscaler Zero Trust Exchange asks for
ZSCALER_CLIENT_ID (secret)ZSCALER_CLIENT_SECRET (secret)ZSCALER_CLOUD (secret)ZSCALER_CUSTOMER_ID (secret)ZSCALER_MCP_DISABLED_SERVICESZSCALER_MCP_DISABLED_TOOLSZSCALER_MCP_SKIP_CONFIRMATIONSZSCALER_MCP_WRITE_ENABLEDZSCALER_MCP_WRITE_TOOLSZSCALER_VANITY_DOMAIN (secret)
Settings as each marketplace publishes them. Asking for fewer is not better in itself.
What it can do: Okta · What it can do: Zscaler Zero Trust Exchange · Compare two other plugins
Data comes from the Docker MCP Catalog (desktop.docker.com/mcp/catalog) and Docker Hub. Data comes from the Official MCP Registry (registry.modelcontextprotocol.io), CC0 1.0. Data comes from the public marketplace file https://github.com/anthropics/claude-plugins-official/blob/HEAD/.claude-plugin/marketplace.json. Data comes from the public marketplace file https://github.com/anthropics/claude-plugins-community/blob/HEAD/.claude-plugin/marketplace.json. Data comes from public marketplace files in GitHub repositories of their authors. Figures come from our own regular passes over the marketplaces, last read on . We publish no contact details for plugin publishers.