qlik_get_appsLABSCO SUMMARY
Dashboard data, extracted rather than described.
Getting the rows behind a Qlik chart normally means an export; here it is a call that returns headers and rows, so an assistant can do arithmetic on the same numbers the dashboard is showing.
What it is
A server over the Qlik Cloud API. It walks the hierarchy — applications, then sheets, then charts — and extracts a chart's underlying data with headers and rows, paging through results that are too large for one request.
What you get
- qlik_get_apps lists the applications in your workspace with their IDs
- qlik_get_app_sheets lists an application's sheets with titles and metadata
- qlik_get_sheet_charts lists a sheet's charts with IDs, types and positions
- qlik_get_chart_data returns the data behind one chart as headers and rows, paged at 1000 rows per request up to 10000 by default
- Chart metadata comes back alongside the data unless you turn it off
Requirements
A Qlik Cloud tenant and an API key created under Settings > API keys. The key, your tenant URL and a default application id go in a .env, alongside row limits, request delay and retry behaviour. Runs from source, or as a Docker container pointed at that same file.
Setup effort
Build from source — git clone https://github.com/jwaxman19/qlik-mcp.git
USE CASES
Finding the chart you mean
Applications, then sheets, then charts — each step returns the IDs the next one needs.
Getting the numbers behind a visualisation
Headers and rows come back as data, so the figure can be recalculated rather than read off a picture.
Pulling a large table without hitting a wall
Rows page at 1000 per request up to a 10000-row default, both adjustable, so a wide extract finishes.
Answering a question the dashboard has no chart for
Take the rows from the closest chart and do the rest of the work yourself.
4 tools
Listed in project docs. Your client may show a different list.
qlik_get_app_sheetsqlik_get_sheet_chartsqlik_get_chart_dataBEFORE YOU INSTALL
What to know first
Tools you get
4 tools named in the project's documentation.
Requires
- npx on PATH
- QLIK_API_KEY in your environment
Where it runs
All 3 documented setups run the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
# Clone repository
git clone https://github.com/jwaxman19/qlik-mcp.git
cd qlik-mcp
# Install dependencies (for IDE support)
npm install
# Create your .env from the template, then fill in QLIK_API_KEY, QLIK_BASE_URL and QLIK_APP_ID
cp .env.example .env
# Run server
deno task devMCP Clients
Claude Desktop — Deno
{
"mcpServers": {
"qlik": {
"command": "<YOUR_PATH_TO_DENO>",
"args": [
"run",
"--allow-all",
"--env-file=<YOUR_PATH_TO_QLIK_MCP>/.env",
"<YOUR_PATH_TO_QLIK_MCP>/src/index.ts"
]
}
}
}Claude Desktop does not apply a cwd field, so the README's relative .env and src/index.ts are written here as paths inside your clone. <YOUR_PATH_TO_DENO> is your Deno binary (usually ~/.deno/bin/deno), and <YOUR_PATH_TO_QLIK_MCP> is the absolute path to the cloned repository. The .env holds QLIK_API_KEY, QLIK_BASE_URL and QLIK_APP_ID.
Claude Desktop — Node.js
{
"mcpServers": {
"qlik": {
"command": "npx",
"args": [
"tsx",
"<YOUR_PATH_TO_QLIK_MCP>/src/index.ts"
],
"env": {
"QLIK_API_KEY": "<YOUR_QLIK_API_KEY>",
"QLIK_BASE_URL": "<YOUR_QLIK_BASE_URL>",
"QLIK_APP_ID": "<YOUR_QLIK_APP_ID>"
}
}
}
}Claude Desktop does not apply a cwd field, so src/index.ts is written as a path inside your clone. <YOUR_PATH_TO_QLIK_MCP> is the absolute path to the cloned repository.
Cursor
{
"mcpServers": {
"qlik": {
"command": "<YOUR_PATH_TO_DENO>",
"args": [
"run",
"--allow-all",
"--env-file=<YOUR_PATH_TO_QLIK_MCP>/.env",
"<YOUR_PATH_TO_QLIK_MCP>/src/index.ts"
]
}
}
}Cursor's mcp.json has no cwd field, so the README's relative .env and src/index.ts are written here as paths inside your clone. <YOUR_PATH_TO_DENO> is your Deno binary (usually ~/.deno/bin/deno), and <YOUR_PATH_TO_QLIK_MCP> is the absolute path to the cloned repository.