v1.20
Highlights
πͺ Client MCP Wizard (beta) β new
A standalone /wizard page in the admin portal that replaces hand-editing JSON / TOML config files for 14 AI clients:
Claude Desktop, Claude Code (CLI), OpenAI Codex, ChatGPT, VS Code + GitHub Copilot, Cursor, Cline, JetBrains AI, Goose (Block), Open WebUI, 5ire, Gemini CLI, n8n, Generic.
Four-step flow: pick a Zabbix server β pick a token β pick a client β copy the config. Handles URL composition, 0.0.0.0 host override (auto-detected Docker IPs de-emphasized behind a <details> since they are not client-reachable), transport picker with a "detected" badge on the running transport, live Bearer token substitution in both the config snippet and a matching curl quick-test block, copy-on-hover overlay icons. When the MCP server is in no-auth mode a Continue without token card generates a tokenless snippet.
Per-client snippets come from a single-source-of-truth catalog (src/zabbix_mcp/admin/wizard_clients.py) cross-checked against each client's current April 2026 documentation:
- Claude Desktop β uses
mcp-remotenpx wrapper because the in-app Custom Connectors UI only accepts OAuth 2.0 (not raw Bearer). - Claude Code β new
--transport/--headerflags (2025 rename from-t/-h),stdiotransport via-- <command>. - ChatGPT β Developer mode Apps & Connectors path (replaces the old "Beta features > Custom Connectors").
- Gemini CLI β
httpUrlfor Streamable HTTP,urlfor SSE (different JSON keys, not a type discriminator). - Goose β Streamable HTTP YAML schema at
~/.config/goose/config.yaml(type: streamable_http,uri,headers). - Open WebUI β native MCP support since v0.6.31 (no
mcpobridge needed for Streamable HTTP). - n8n β HTTP Streamable supported since 1.104.0 (July 2025).
Marked beta pending real-world feedback on OAuth-vs-Bearer handling and Docker / NAT / reverse-proxy host override edge cases β report issues at https://github.com/initMAX/zabbix-mcp-server/issues.
π§Ή Admin portal polish
- Dashboard Zabbix Servers card β fixed text overflow when the server URL error message is long (ellipsis + full error in tooltip,
min-width: 0on flex children sotext-overflow: ellipsiscan actually kick in). - Tokens list β removed the non-functional
Copy prefixclipboard button (prefix is a hash identifier, not a valid credential), dropped the duplicate...suffix from the displayed prefix, aligned Activate/Revoke/Delete action buttons withmin-width: 78px, bumped.btn-ghostborder color so it stays visible against the hover row tint in light mode,min-width: 70pxon status badges so Revoked does not stick out. - /tokens/create β card is now full-width to match the
/tokenslist page.
πΈ Screenshots refreshed
Every admin screenshot in docs/ (dashboard, tokens, transport settings, wizard) has a dark + light variant at 1280x800, plus three wizard variants (steps 1-2, step 3 client picker, step 4 output).
Verification
- pytest: 285/287 (2 pre-existing symlink path-handling fails unrelated to this release)
- Docker build + runtime: v1.20 healthy (
/healthreturns{"status":"ok","version":"1.20"}) - Installer tests: 18/18 PASS across RHEL 8/9/10, AlmaLinux 8/9/10, Oracle 8/9/10, Fedora, Amazon 2023, SUSE Leap 15, Ubuntu 22/24, Debian 12/13, Minimal
- Template render: 0/14 errors across all wizard client snippets with sample inputs
- Visual: Playwright regression of all admin portal pages in both themes
Upgrade
# host install
sudo ./deploy/install.sh update
# docker
docker compose pull && docker compose up -dFull changelog: CHANGELOG.md