Contributing
The Zscaler MCP Server is currently in preview and we are not accepting external pull requests at this time. The codebase, public APIs, and toolset shape are still stabilising, and merging outside contributions before the surface settles would create churn for early adopters and reviewers alike.
If you would like to report a bug, request a feature, or share feedback during the preview, please open an issue on GitHub Issues or start a thread in GitHub Discussions. We read every one.
This page is kept up to date so that, when the project moves to general availability, contributors will already have the development workflow documented. The instructions below also apply to internal Zscaler engineers working on the server today.
See the full CONTRIBUTING.md on GitHub for the canonical guide.
Getting started
git clone https://github.com/zscaler/zscaler-mcp-server.git
cd zscaler-mcp-server
# Create .venv and install dependencies
uv sync --all-extras
# Activate the venv
source .venv/bin/activate
Conventional Commits
This project uses Conventional Commits for automated releases and semantic versioning. Format your commit messages as:
feat(zia): add support for new URL filtering rule type
fix(zpa): handle empty server group response
docs(deployment): update Azure AKS preview limitations
Common types: feat, fix, docs, chore, test, refactor, perf, ci.
Running tests
# Unit + integration tests
pytest tests/ --ignore=tests/e2e -v
# End-to-end tests (requires Zscaler credentials)
pytest --run-e2e tests/e2e/
# E2E with verbose output (note: -s required to see output)
pytest --run-e2e -v -s tests/e2e/
Lint
ruff check .
ruff format .
Adding a new tool
- Create the tool module in
zscaler_mcp/tools/{service}/ - Add the tool definition to the service class in
services.py - Import the tool function in the service class's
register_toolsmethod - Run
make generate-docsto refresh the auto-generated docs - Commit using Conventional Commits (
feat({service}): add {tool_name})
See Building from source for the full dev environment setup.
Code of conduct
Please read our Code of Conduct before contributing.