Skip to main content

MCP Server for Qlik Sense Enterprise APIs

Project description

Qlik Sense MCP Server

PyPI version PyPI downloads License: MIT Python versions

Model Context Protocol server for Qlik Sense Enterprise. Exposes Qlik's Repository (HTTP) and Engine (WebSocket) APIs as 24 MCP tools so an LLM client can discover apps, inspect data models, build hypercubes, and manage reload tasks through a single uniform interface.

What's in the box

Area Tools Used for
Repository (apps & metadata) get_about, get_apps, get_app_details Discover apps, list tables and fields with cardinalities
Engine (data & script) get_app_script, get_app_variables, get_app_sheets, get_app_sheet_objects, get_app_object, get_app_field, engine_get_field_range, get_app_field_statistics, engine_create_hypercube Read load script, list visualizations, query field values, build hypercubes
Reload tasks get_tasks, get_task_details, get_task_dependencies, get_task_schedule, get_task_executions, get_task_script_log, get_failed_tasks_with_logs, start_task, create_task, update_task, delete_task, create_task_schedule Inspect, trigger and manage reload tasks

Full list with descriptions: docs/tools.md.

Quick start

uvx qlik-sense-mcp-server

The server starts in Streamable HTTP mode on http://127.0.0.1:8000/mcp. Configure it via environment variables — see docs/configuration.md.

For stdio mode (legacy MCP transport), pass --stdio.

Documentation

Document What's inside
docs/installation.md Requirements, install via uvx / pip / source, certificate setup
docs/configuration.md All QLIK_* environment variables, sample .env, MCP client config snippet
docs/usage.md Transports, server start commands, recommended call order, hard limits enforced by this server
docs/tools.md Inventory of all 24 tools, response/error envelope, error categories
docs/architecture.md Project layout, components, connection caching, strict id-matching, two-tier timeout
docs/development.md make targets, tests, versioning, how to add a new tool
docs/troubleshooting.md Common errors, hypercube planning failures, verbose logging, configuration self-test
CHANGELOG.md Release notes

Key facts about the v1.4.0 line

  • Cached Engine WebSocket connections. Once an app is opened, every subsequent tool call against the same app_id reuses the same WebSocket and the same open document. Switching app_id closes the old document and opens the new one on the same socket. Dropped connections are reopened transparently. Implementation: engine_api.py and docs/architecture.md.
  • Streamable HTTP transport by default. The server is a long-lived process; multiple MCP clients can talk to it in parallel. The legacy stdio mode still works behind --stdio.
  • tool_call_seconds is injected as the first key of every tool response — wall-clock time of the call in milliseconds. Use it to spot slow tools.
  • Hard hypercube limits. engine_create_hypercube rejects requests with max_rows > 5000 or columns * max_rows > 9900 immediately, with a structured error and a hint pointing at set-analysis or top-N patterns. Qlik Engine itself returns error 7009 calc-pages-too-large for any single page over 10000 cells.
  • Single timeout knob. QLIK_WS_TIMEOUT (default 180.0 seconds) controls both the WebSocket handshake and every Engine API call.

Requirements

  • Python 3.12 (the package is built and tested against this version; see pyproject.toml)
  • Qlik Sense Enterprise (Repository on port 4242, Engine on port 4747 — the standard ports)
  • Client certificate, private key and root CA from the Qlik Sense node
  • Network access from the host running this server to Qlik

Disclaimer

This project is an independent, community-built integration. It is NOT affiliated with, endorsed by, sponsored by, or supported by Qlik Technologies Inc., QlikTech International AB, or any other Qlik entity. "Qlik", "Qlik Sense", "QlikView" and all related product names are trademarks of their respective owners.

All information about Qlik Sense APIs, port allocations, error codes, protocol behavior and usage patterns used in this project was obtained exclusively from publicly available sources — the Qlik Developer Portal (help.qlik.com, qlik.dev), the Qlik Community forums, and other public documentation. No proprietary, confidential or reverse-engineered material is used.

License

MIT © 2025-2026 Stanislav Chernov

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qlik_sense_mcp_server-1.5.0.tar.gz (93.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qlik_sense_mcp_server-1.5.0-py3-none-any.whl (67.2 kB view details)

Uploaded Python 3

File details

Details for the file qlik_sense_mcp_server-1.5.0.tar.gz.

File metadata

  • Download URL: qlik_sense_mcp_server-1.5.0.tar.gz
  • Upload date:
  • Size: 93.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for qlik_sense_mcp_server-1.5.0.tar.gz
Algorithm Hash digest
SHA256 77b82ac1e6d314543b37a5a8103b82bcebe5dc8dd2d5ee951015a5ffcf74844a
MD5 539052cfa922b74574d7b81037f03419
BLAKE2b-256 7f5419ffaf49c53b3a414bc9daf7d68ee28d351d43b4fe58b52150fc0d06f92e

See more details on using hashes here.

File details

Details for the file qlik_sense_mcp_server-1.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for qlik_sense_mcp_server-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff5870f731686b5ee2f0f387c16e00b2e5101280334549aa9ac569fb46c6ee6a
MD5 7a251852ea2c06a1df2025fc6794a81a
BLAKE2b-256 96b3aa2899df78a05fbafc97faad58fc3e95d2a586a480dbb28300d206411b69

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page