Skip to content

Commit e8126bf

Browse files
authored
fix: Tool Registration & Naming Updates (#14)
* fix: Tool Registration & Naming Updates * fix: Fixed Ruff Linter
1 parent 84b3620 commit e8126bf

File tree

4 files changed

+121
-13
lines changed

4 files changed

+121
-13
lines changed

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,41 @@
11
# Zscaler Integrations MCP Server Changelog
22

3+
## 0.3.1 (October 28, 2025) - Tool Registration & Naming Updates
4+
5+
### Added
6+
7+
[PR #14](https://github.com/zscaler/zscaler-mcp-server/pull/14)
8+
9+
- **ZIA Tools**: Added missing read-only tools to services registration
10+
- `get_zia_dlp_dictionaries` - Manage ZIA DLP dictionaries for data loss prevention
11+
- `get_zia_dlp_engines` - Manage ZIA DLP engines for rule processing
12+
- `get_zia_user_departments` - Manage ZIA user departments for organizational structure
13+
- `get_zia_user_groups` - Manage ZIA user groups for access control
14+
- `get_zia_users` - Manage ZIA users for authentication and access control
15+
16+
- **ZPA Tools**: Added missing read-only tools to services registration
17+
- `get_zpa_app_protection_profile` - Manage ZPA App Protection Profiles (Inspection Profiles)
18+
- `get_zpa_enrollment_certificate` - Manage ZPA Enrollment Certificates
19+
- `get_zpa_isolation_profile` - Manage ZPA Cloud Browser Isolation (CBI) profiles
20+
- `get_zpa_posture_profile` - Manage ZPA Posture Profiles
21+
- `get_zpa_saml_attribute` - Manage ZPA SAML Attributes
22+
- `get_zpa_scim_attribute` - Manage ZPA SCIM Attributes
23+
- `get_zpa_scim_group` - Manage ZPA SCIM Groups
24+
- `get_zpa_app_segments_by_type` - Manage ZPA application segments by type
25+
- `get_zpa_trusted_network` - Manage ZPA Trusted Networks
26+
27+
### Changed
28+
29+
- **Tool Naming Convention**: Updated tool names to follow consistent `get_*` pattern for read-only operations
30+
- ZIA tools: `zia_*_manager``get_zia_*`
31+
- ZPA tools: `*_manager``get_zpa_*`
32+
- Maintains backward compatibility with existing `zia_get_*` and `zpa_get_*` patterns
33+
34+
### Fixed
35+
36+
- **Tool Registration**: Resolved missing tool registrations in `zscaler_mcp/services.py`
37+
- **Documentation**: Updated README.md with correct tool names and comprehensive tool listings
38+
339
## 0.3.0 (October 27, 2025) - Security & Confirmation Release
440

541
### Notes

docsrc/guides/release-notes.rst

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,44 @@ Release Notes
66
Zscaler Integrations MCP Server Changelog
77
------------------------------------------
88

9+
0.3.1 (October 28, 2025) - Tool Registration & Naming Updates
10+
--------------------------------------------------------------
11+
12+
Added
13+
------
14+
15+
`PR #14 <https://github.com/zscaler/zscaler-mcp-server/pull/14>`_
16+
17+
- **ZIA Tools**: Added missing read-only tools to services registration
18+
- `get_zia_dlp_dictionaries` - Manage ZIA DLP dictionaries for data loss prevention
19+
- `get_zia_dlp_engines` - Manage ZIA DLP engines for rule processing
20+
- `get_zia_user_departments` - Manage ZIA user departments for organizational structure
21+
- `get_zia_user_groups` - Manage ZIA user groups for access control
22+
- `get_zia_users` - Manage ZIA users for authentication and access control
23+
24+
- **ZPA Tools**: Added missing read-only tools to services registration
25+
- `get_zpa_app_protection_profile` - Manage ZPA App Protection Profiles (Inspection Profiles)
26+
- `get_zpa_enrollment_certificate` - Manage ZPA Enrollment Certificates
27+
- `get_zpa_isolation_profile` - Manage ZPA Cloud Browser Isolation (CBI) profiles
28+
- `get_zpa_posture_profile` - Manage ZPA Posture Profiles
29+
- `get_zpa_saml_attribute` - Manage ZPA SAML Attributes
30+
- `get_zpa_scim_attribute` - Manage ZPA SCIM Attributes
31+
- `get_zpa_scim_group` - Manage ZPA SCIM Groups
32+
- `get_zpa_app_segments_by_type` - Manage ZPA application segments by type
33+
- `get_zpa_trusted_network` - Manage ZPA Trusted Networks
34+
35+
### Changed
36+
37+
- **Tool Naming Convention**: Updated tool names to follow consistent `get_*` pattern for read-only operations
38+
- ZIA tools: `zia_*_manager` → `get_zia_*`
39+
- ZPA tools: `*_manager` → `get_zpa_*`
40+
- Maintains backward compatibility with existing `zia_get_*` and `zpa_get_*` patterns
41+
42+
### Fixed
43+
44+
- **Tool Registration**: Resolved missing tool registrations in `zscaler_mcp/services.py`
45+
- **Documentation**: Updated README.md with correct tool names and comprehensive tool listings
46+
947
0.3.0 (October 27, 2025) - Security & Confirmation Release
1048
-----------------------------------------------------------
1149

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "zscaler-mcp"
3-
version = "0.3.0"
3+
version = "0.3.1"
44
description = "Official Zscaler Integrations MCP Server"
55
readme = "README.md"
66
requires-python = ">=3.11,<4.0"

zscaler_mcp/services.py

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ def __init__(self, zscaler_client):
7171
def register_tools(self, server, enabled_tools=None, enable_write_tools=False, write_tools=None):
7272
"""Register ZCC tools with the server."""
7373
from zscaler_mcp.common.tool_helpers import register_read_tools, register_write_tools
74-
74+
7575
# Register verb-based tools with proper annotations (all read-only)
7676
read_count = register_read_tools(server, self.read_tools, enabled_tools)
7777
write_count = register_write_tools(server, self.write_tools, enabled_tools, enable_write_tools, write_tools)
78-
78+
7979
logger.info(f"ZCC Service: Registered {read_count} read tools, {write_count} write tools")
8080

8181

@@ -136,11 +136,11 @@ def __init__(self, zscaler_client):
136136
def register_tools(self, server, enabled_tools=None, enable_write_tools=False, write_tools=None):
137137
"""Register ZDX tools with the server."""
138138
from zscaler_mcp.common.tool_helpers import register_read_tools, register_write_tools
139-
139+
140140
# Register verb-based tools with proper annotations (all read-only)
141141
read_count = register_read_tools(server, self.read_tools, enabled_tools)
142142
write_count = register_write_tools(server, self.write_tools, enabled_tools, enable_write_tools, write_tools)
143-
143+
144144
logger.info(f"ZDX Service: Registered {read_count} read tools, {write_count} write tools")
145145

146146

@@ -212,6 +212,15 @@ def __init__(self, zscaler_client):
212212
zpa_get_ba_certificate,
213213
zpa_list_ba_certificates,
214214
)
215+
from .tools.zpa.get_app_protection_profile import app_protection_profile_manager
216+
from .tools.zpa.get_enrollment_certificate import enrollment_certificate_manager
217+
from .tools.zpa.get_isolation_profile import isolation_profile_manager
218+
from .tools.zpa.get_posture_profiles import posture_profile_manager
219+
from .tools.zpa.get_saml_attributes import saml_attribute_manager
220+
from .tools.zpa.get_scim_attributes import scim_attribute_manager
221+
from .tools.zpa.get_scim_groups import scim_group_manager
222+
from .tools.zpa.get_segments_by_type import app_segments_by_type_manager
223+
from .tools.zpa.get_trusted_networks import trusted_network_manager
215224
from .tools.zpa.pra_credential import (
216225
zpa_create_pra_credential,
217226
zpa_delete_pra_credential,
@@ -287,6 +296,18 @@ def __init__(self, zscaler_client):
287296
{"func": zpa_get_pra_portal, "name": "zpa_get_pra_portal", "description": "Get a specific ZPA PRA portal by ID (read-only)"},
288297
{"func": zpa_list_pra_credentials, "name": "zpa_list_pra_credentials", "description": "List ZPA PRA credentials (read-only)"},
289298
{"func": zpa_get_pra_credential, "name": "zpa_get_pra_credential", "description": "Get a specific ZPA PRA credential by ID (read-only)"},
299+
# Profile and Certificate Management
300+
{"func": app_protection_profile_manager, "name": "get_zpa_app_protection_profile", "description": "Manage ZPA App Protection Profiles (Inspection Profiles) (read-only)"},
301+
{"func": enrollment_certificate_manager, "name": "get_zpa_enrollment_certificate", "description": "Manage ZPA Enrollment Certificates (read-only)"},
302+
{"func": isolation_profile_manager, "name": "get_zpa_isolation_profile", "description": "Manage ZPA Cloud Browser Isolation (CBI) profiles (read-only)"},
303+
{"func": posture_profile_manager, "name": "get_zpa_posture_profile", "description": "Manage ZPA Posture Profiles (read-only)"},
304+
# Identity and Access Management
305+
{"func": saml_attribute_manager, "name": "get_zpa_saml_attribute", "description": "Manage ZPA SAML Attributes (read-only)"},
306+
{"func": scim_attribute_manager, "name": "get_zpa_scim_attribute", "description": "Manage ZPA SCIM Attributes (read-only)"},
307+
{"func": scim_group_manager, "name": "get_zpa_scim_group", "description": "Manage ZPA SCIM Groups (read-only)"},
308+
# Network and Segment Management
309+
{"func": app_segments_by_type_manager, "name": "get_zpa_app_segments_by_type", "description": "Manage ZPA application segments by type (read-only)"},
310+
{"func": trusted_network_manager, "name": "get_zpa_trusted_network", "description": "Manage ZPA Trusted Networks (read-only)"},
290311
]
291312

292313
# Define write tools
@@ -340,11 +361,11 @@ def __init__(self, zscaler_client):
340361
def register_tools(self, server, enabled_tools=None, enable_write_tools=False, write_tools=None):
341362
"""Register ZPA tools with the server."""
342363
from zscaler_mcp.common.tool_helpers import register_read_tools, register_write_tools
343-
364+
344365
# Register verb-based tools with proper annotations
345366
read_count = register_read_tools(server, self.read_tools, enabled_tools)
346367
write_count = register_write_tools(server, self.write_tools, enabled_tools, enable_write_tools, write_tools)
347-
368+
348369
logger.info(f"ZPA Service: Registered {read_count} read tools, {write_count} write tools")
349370

350371

@@ -398,6 +419,11 @@ def __init__(self, zscaler_client):
398419
zia_list_ip_source_groups,
399420
zia_update_ip_source_group,
400421
)
422+
from .tools.zia.list_dlp_dictionaries import zia_dlp_dictionary_manager
423+
from .tools.zia.list_dlp_engines import zia_dlp_engine_manager
424+
from .tools.zia.list_user_departments import zia_user_department_manager
425+
from .tools.zia.list_user_groups import zia_user_group_manager
426+
from .tools.zia.list_users import zia_users_manager
401427
from .tools.zia.location_management import (
402428
zia_create_location,
403429
zia_delete_location,
@@ -470,6 +496,14 @@ def __init__(self, zscaler_client):
470496
{"func": zia_list_web_dlp_rules, "name": "zia_list_web_dlp_rules", "description": "List ZIA web DLP rules (read-only)"},
471497
{"func": zia_list_web_dlp_rules_lite, "name": "zia_list_web_dlp_rules_lite", "description": "List ZIA web DLP rules in lite format (read-only)"},
472498
{"func": zia_get_web_dlp_rule, "name": "zia_get_web_dlp_rule", "description": "Get a specific ZIA web DLP rule by ID (read-only)"},
499+
# DLP Dictionaries
500+
{"func": zia_dlp_dictionary_manager, "name": "get_zia_dlp_dictionaries", "description": "Manage ZIA DLP dictionaries for data loss prevention pattern and phrase matching (read-only)"},
501+
# DLP Engines
502+
{"func": zia_dlp_engine_manager, "name": "get_zia_dlp_engines", "description": "Manage ZIA DLP engines for data loss prevention rule processing (read-only)"},
503+
# User Management
504+
{"func": zia_user_department_manager, "name": "get_zia_user_departments", "description": "Manage ZIA user departments for organizational structure (read-only)"},
505+
{"func": zia_user_group_manager, "name": "get_zia_user_groups", "description": "Manage ZIA user groups for access control and policy assignment (read-only)"},
506+
{"func": zia_users_manager, "name": "get_zia_users", "description": "Manage ZIA users for authentication and access control (read-only)"},
473507
# IP Source Groups
474508
{"func": zia_list_ip_source_groups, "name": "zia_list_ip_source_groups", "description": "List ZIA IP source groups (read-only)"},
475509
{"func": zia_get_ip_source_group, "name": "zia_get_ip_source_group", "description": "Get a specific ZIA IP source group by ID (read-only)"},
@@ -575,11 +609,11 @@ def __init__(self, zscaler_client):
575609
def register_tools(self, server, enabled_tools=None, enable_write_tools=False, write_tools=None):
576610
"""Register ZIA tools with the server."""
577611
from zscaler_mcp.common.tool_helpers import register_read_tools, register_write_tools
578-
612+
579613
# Register verb-based tools with proper annotations
580614
read_count = register_read_tools(server, self.read_tools, enabled_tools)
581615
write_count = register_write_tools(server, self.write_tools, enabled_tools, enable_write_tools, write_tools)
582-
616+
583617
logger.info(f"ZIA Service: Registered {read_count} read tools, {write_count} write tools")
584618

585619

@@ -637,11 +671,11 @@ def __init__(self, zscaler_client):
637671
def register_tools(self, server, enabled_tools=None, enable_write_tools=False, write_tools=None):
638672
"""Register ZTW tools with the server."""
639673
from zscaler_mcp.common.tool_helpers import register_read_tools, register_write_tools
640-
674+
641675
# Register verb-based tools with proper annotations
642676
read_count = register_read_tools(server, self.read_tools, enabled_tools)
643677
write_count = register_write_tools(server, self.write_tools, enabled_tools, enable_write_tools, write_tools)
644-
678+
645679
logger.info(f"ZTW Service: Registered {read_count} read tools, {write_count} write tools")
646680

647681

@@ -685,11 +719,11 @@ def __init__(self, zscaler_client):
685719
def register_tools(self, server, enabled_tools=None, enable_write_tools=False, write_tools=None):
686720
"""Register ZIdentity tools with the server."""
687721
from zscaler_mcp.common.tool_helpers import register_read_tools, register_write_tools
688-
722+
689723
# Register verb-based tools with proper annotations (all read-only)
690724
read_count = register_read_tools(server, self.read_tools, enabled_tools)
691725
write_count = register_write_tools(server, self.write_tools, enabled_tools, enable_write_tools, write_tools)
692-
726+
693727
logger.info(f"ZIdentity Service: Registered {read_count} read tools, {write_count} write tools")
694728

695729

0 commit comments

Comments
 (0)