MCP Server for Qlik Sense Enterprise APIs
Project description
Qlik Sense MCP Server
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_idreuses the same WebSocket and the same open document. Switchingapp_idcloses the old document and opens the new one on the same socket. Dropped connections are reopened transparently. Implementation:engine_api.pyanddocs/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_secondsis 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_hypercuberejects requests withmax_rows > 5000orcolumns * max_rows > 9900immediately, with a structured error and a hint pointing at set-analysis or top-N patterns. Qlik Engine itself returns error 7009calc-pages-too-largefor any single page over 10000 cells. - Single timeout knob.
QLIK_WS_TIMEOUT(default180.0seconds) 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qlik_sense_mcp_server-1.4.1.tar.gz.
File metadata
- Download URL: qlik_sense_mcp_server-1.4.1.tar.gz
- Upload date:
- Size: 75.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af27f14d60b1194fd5a36d60302917240b14c65c8e3d7c3a004d154cf42e4555
|
|
| MD5 |
8b8ba66c80c29b053282da20b6b1bba7
|
|
| BLAKE2b-256 |
352ec653fc86f00997204e12bacc4ec46fd0d5bf661d25280fa967939f939d97
|
File details
Details for the file qlik_sense_mcp_server-1.4.1-py3-none-any.whl.
File metadata
- Download URL: qlik_sense_mcp_server-1.4.1-py3-none-any.whl
- Upload date:
- Size: 57.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb955f429bbff143e4dc22ad3e0f7ae6b0881f41cb8299e91879f7fa97a89ee7
|
|
| MD5 |
f458a5a0b3cca61ec2d01b59f427d815
|
|
| BLAKE2b-256 |
184883ba43136158b16b9caaf6ac3c2ff4bd630e1b71577a080879beede1f00d
|