Contributing¶
Warning
Preview release — external contributions paused.
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.pyImport the tool function in the service class’s
register_toolsmethodRun
make generate-docsto refresh the auto-generated docsCommit 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.