Qlik Sense MCP Server
The Qlik Sense MCP Server provides a unified interface for interacting with Qlik Sense Enterprise APIs, enabling comprehensive application management, data analysis, and administrative operations.
Core Capabilities:
Application Management: Retrieve application lists with filtering and pagination (
get_apps), detailed metadata including object counts (get_app_details,get_app_metadata), and load scripts (engine_get_script)Data Analysis & Extraction: Extract field values with frequency (
engine_get_field_values), generate statistical analysis including min/max/median/standard deviation (engine_get_field_statistics), create hypercubes for advanced analysis (engine_create_hypercube), and export data in JSON/CSV formats (engine_create_data_export)Administrative Management: Access users (
get_users), streams (get_streams), data connections (get_data_connections), tasks (get_tasks), extensions (get_extensions), and content libraries (get_content_libraries)Task Automation: Execute specific tasks by ID (
start_task) for automated workflowsEngine API Integration: Direct interaction with Qlik Sense Engine API for document listing (
engine_get_doc_list), application operations, sheet retrieval (engine_get_sheets), and table data extraction (engine_get_table_data)Security & Performance: Certificate-based authentication for secure access, optimized queries, and pagination for efficient data retrieval
Uses .ENV files for configuration management of Qlik Sense connection details, authentication credentials, and API settings.
Integrates with GitHub Actions for automated build and publication processes to PyPI when new version tags are pushed.
Supports installation from PyPI and automated publication of new versions through GitHub Actions workflows.
Provides unified interface for Qlik Sense Enterprise Repository API and Engine API operations, enabling access to applications, users, data models, analytics, and data export functionality through 21 specialized tools.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Qlik Sense MCP Serverlist all applications with their metadata"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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. In JWT mode the 12 reload-task tools are hidden, since QRS task administration needs certificate auth.
What's in the box
Area | Tools | Used for |
Repository (apps & metadata) |
| Discover apps, list tables and fields with cardinalities |
Engine (data & script) |
| Read load script, list visualizations, query field values, build hypercubes |
Reload tasks (certificate mode only) |
| Inspect, trigger and manage reload tasks |
Full list with descriptions: docs/tools.md.
The main analysis call maps onto SQL one-to-one — dimensions is the
GROUP BY, measures are the aggregates, sort_by / sort_order are
the ORDER BY, limit is the LIMIT:
// engine_create_hypercube — "the 10 clients with the highest GGR"
{
"app_id": "<app guid>",
"dimensions": [{"field": "clientid"}],
"measures": [{"expression": "Sum(ggr)", "label": "GGR"}],
"sort_by": "GGR",
"sort_order": "desc",
"limit": 10
}Related MCP server: Looker Admin MCP
Quick start
uvx qlik-sense-mcp-serverThe 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.
Two authentication modes are supported: client certificate (legacy,
full QRS access) and JWT via virtual proxy (per-analyst, no on-disk
secrets). See docs/AUTH_JWT.md for the JWT setup.
Documentation
Document | What's inside |
Requirements, install via | |
All | |
JWT authentication via virtual proxy: key generation, virtual proxy setup, | |
Transports, server start commands, recommended call order, hard limits enforced by this server | |
Inventory of all 24 tools, response/error envelope, error categories | |
Project layout, components, connection caching, strict id-matching, two-tier timeout | |
| |
Common errors, hypercube planning failures, verbose logging, configuration self-test | |
Release notes |
Key facts about the v1.7.0 line
Column meanings, not just column names. Fields and tables commented in the load script (
COMMENT FIELD/COMMENT TABLE) carry that text intoget_app_detailsascomment, and intoget_app_fieldasfield_comment, so the model reads what a column means instead of guessing from its name. Added in 1.7.2.Runs on both MCP SDK lines. SDK 2.0 dropped
FastMCP; the server now picksMCPServer(2.x) orFastMCP(1.x) at import time, somcp>=1.1.0,<3.0.0all work. Both lines are covered by the test suite and were verified end to end against a live Qlik app.Ranked queries (top-N) in one call.
engine_create_hypercubetakessort_by(a measure label, a measure expression or a dimension field),sort_order(desc/asc) andlimit, so "the 10 clients with the highest GGR" is a single request. Before v1.6.0 sorting by a measure silently did nothing —qInterColumnSortOrderwas hard-coded to the dimensions, so the server returned the alphabetically first rows instead of the largest ones.NULL groups stay out of rankings. Facts with no value for the grouping field collapse into Qlik's
"-"row, which often holds a large total and would otherwise take first place in a top-N. It is dropped by default; passexclude_null_dimensions=falseto measure how much data is unattributed.Compact, LLM-friendly results. The hypercube response is
columns+rowswith real numbers, plusgrand_totaland per-steptimings. Passinclude_raw_layout=truefor the full Qlik layout.Failures name the query that failed. Every error reply, timeouts included, echoes
toolandrequestwith the exact arguments sent.Fewer useless tools in JWT mode. Reload-task administration needs QRS admin rights, so those 12 tools are registered only in certificate mode: 24 tools with a certificate, 12 with a JWT.
One Qlik session per server. Qlik allows max 5 concurrent sessions per user and can lock the account beyond that, so all tool calls share a single cached Engine session — never fan them out in parallel.
JWT authentication via virtual proxy. Set
QLIK_JWT_TOKENinstead of certificate paths and the server will authenticate every Repository and Engine call as the analyst encoded in the token. No certificates or private keys live on the host. The legacy certificate mode is unchanged and still required for full QRS access. Setup guide:docs/AUTH_JWT.md.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
Maintenance
Related MCP Servers
- AlicenseBqualityCmaintenanceConnects AI assistants like Claude to Qlik Cloud and Qlik Sense Enterprise environments, enabling natural language interactions for analytics, app management, reloads, user administration, and data governance across 34 tools.3416MIT
- Flicense-qualityDmaintenanceProvides over 60 administrative tools for managing users, groups, roles, schedules, alerts, and content access within Looker through the Model Context Protocol. It enables full administration of Looker environments, including permission management and system configuration.1
- Alicense-qualityBmaintenanceA comprehensive Model Context Protocol server providing full CRUD operations for 29 QuickBooks Online entities and 11 financial reports.343Apache 2.0
- AlicenseAqualityAmaintenanceEnables querying and acting on any Acumatica ERP tenant's contract-based REST API through 8 generic tools, covering all entities with read-only by default safety.81MIT
Related MCP Connectors
34 production API tools over one hosted MCP endpoint.
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
One key for 284 tools across 59 US public-data domains. Resale-safe government and open data.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bintocher/qlik-sense-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server