Qlik MCP Server
Connects 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.
README
Qlik MCP Server
A Model Context Protocol (MCP) server that connects AI assistants like Claude to your Qlik Cloud and Qlik Sense Enterprise environments. This enables natural language interactions with your analytics platform.
Own your AI. Create your own way to interact with your data.
Features
- 34 MCP Tools across 12 categories
- Dual Platform Support - Qlik Cloud and Qlik Sense Enterprise (On-Premise)
- Natural Language Analytics - Ask questions about your data in plain English
- Full Lifecycle Management - Apps, reloads, users, spaces, and more
- AI/ML Integration - AutoML experiments, Qlik Answers assistants
- Enterprise Governance - Users, roles, permissions, compliance
Quick Start
Prerequisites
- Node.js 18+ - Download from nodejs.org
- Claude Desktop - Download from claude.ai/download
- Qlik Cloud tenant OR Qlik Sense Enterprise server
Step 1: Download the MCP Server
Windows (Recommended)
-
Download the ZIP file from GitHub:
- Go to: https://github.com/undsoul/qlik-claude-mcp
- Click green "Code" button → "Download ZIP"
-
*Extract to C:* (recommended for simple paths):
- Right-click the downloaded ZIP → Extract All
- Extract to:
C:\ - You should now have:
C:\qlik-claude-mcp-main\
-
Open PowerShell and install dependencies:
cd C:\qlik-claude-mcp-main npm install
macOS / Linux
git clone https://github.com/undsoul/qlik-claude-mcp.git
cd qlik-claude-mcp
npm install
Step 2: Install Claude Desktop
- Download Claude Desktop from claude.ai/download
- Install and sign in with your Anthropic account
Step 3: Get Your Qlik API Key
For Qlik Cloud:
- Log in to your Qlik Cloud tenant
- Click your profile icon (top right) → Profile settings
- Go to API keys section
- Click Generate new key
- Copy and save the API key (you won't see it again!)
For Qlik Sense Enterprise (On-Premise):
- Open QMC → Start → Certificates
- Add a machine name (e.g.,
MCP-Client) - Click Export certificates
- Important settings:
- Certificate file format: Choose PEM format (not Windows format)
- Check Include secret key
- Export and save the files:
client.pem- Client certificateclient_key.pem- Private key
- Note the paths where you saved these files
Step 4: Configure Claude Desktop
Open Config File (Easiest Way)
- Open Claude Desktop
- Click Settings (gear icon) or File menu
- Click "Edit Config" or "Settings" → "Developer" → "Edit Config"
- This opens
claude_desktop_config.jsonin your default text editor - Paste the configuration below and Save (Ctrl+S)
Config file location:
- Windows:
C:\Users\{YourName}\AppData\Roaming\Claude\claude_desktop_config.json- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Qlik Cloud Examples
Windows:
{
"mcpServers": {
"qlik-mcp-os": {
"command": "node",
"args": ["C:/qlik-claude-mcp-main/dist/index.js"],
"env": {
"QLIK_TENANT_URL": "https://your-tenant.eu.qlikcloud.com",
"QLIK_API_KEY": "your-api-key-here"
}
}
}
}
macOS:
{
"mcpServers": {
"qlik-mcp-os": {
"command": "node",
"args": ["/Users/yourname/qlik-claude-mcp/dist/index.js"],
"env": {
"QLIK_TENANT_URL": "https://your-tenant.us.qlikcloud.com",
"QLIK_API_KEY": "your-api-key-here"
}
}
}
}
Qlik Sense Enterprise (On-Premise) Examples
Step 1: Export Certificates from QMC
- Open Qlik Management Console (QMC)
- Go to Certificates under Configure System
- Click Export certificates
- Enter machine name (e.g., your server hostname)
- Check Include secret key
- Export format: Platform independent PEM-format
- Click Export - saves to:
C:\ProgramData\Qlik\Sense\Repository\Exported Certificates\<machinename>\
The folder will contain:
client.pem- Client certificateclient_key.pem- Client private keyroot.pem- Root CA certificate
Step 2: Configure Claude Desktop
Windows:
{
"mcpServers": {
"qlik-onprem": {
"command": "node",
"args": ["C:/qlik-claude-mcp-main/dist/index.js"],
"env": {
"QLIK_TENANT_URL": "https://qlik-server.company.com",
"QLIK_DEPLOYMENT": "on-premise",
"QLIK_CERT_PATH": "C:/ProgramData/Qlik/Sense/Repository/Exported Certificates/YourServer",
"QLIK_USER_DIRECTORY": "COMPANY",
"QLIK_USER_ID": "administrator"
}
}
}
}
macOS/Linux:
{
"mcpServers": {
"qlik-onprem": {
"command": "node",
"args": ["/Users/yourname/qlik-claude-mcp/dist/index.js"],
"env": {
"QLIK_TENANT_URL": "https://qlik-server.company.com",
"QLIK_DEPLOYMENT": "on-premise",
"QLIK_CERT_PATH": "/path/to/exported-certificates",
"QLIK_USER_DIRECTORY": "DOMAIN",
"QLIK_USER_ID": "administrator"
}
}
}
}
Note:
QLIK_CERT_PATHis the folder containingclient.pem,client_key.pem, androot.pemQLIK_USER_DIRECTORYandQLIK_USER_IDspecify which user to act as (e.g.,DOMAIN\administrator)- The user must have appropriate access rights in QMC
Multi-Tenant & Hybrid Configurations
You can configure multiple MCP servers in the same config file to connect to different Qlik environments simultaneously. This supports:
- Multiple Qlik Cloud tenants (e.g., Dev, Test, Prod)
- Multiple On-Premise servers
- Hybrid setups (Cloud + On-Premise together)
Example: Two Cloud Tenants + One On-Premise:
{
"mcpServers": {
"qlik-cloud-dev": {
"command": "node",
"args": ["C:/qlik-claude-mcp-main/dist/index.js"],
"env": {
"QLIK_TENANT_URL": "https://dev-tenant.eu.qlikcloud.com",
"QLIK_API_KEY": "dev-api-key-here"
}
},
"qlik-cloud-prod": {
"command": "node",
"args": ["C:/qlik-claude-mcp-main/dist/index.js"],
"env": {
"QLIK_TENANT_URL": "https://prod-tenant.eu.qlikcloud.com",
"QLIK_API_KEY": "prod-api-key-here"
}
},
"qlik-onprem": {
"command": "node",
"args": ["C:/qlik-claude-mcp-main/dist/index.js"],
"env": {
"QLIK_TENANT_URL": "https://qlik-server.company.com",
"QLIK_DEPLOYMENT": "on-premise",
"QLIK_CERT_PATH": "C:/ProgramData/Qlik/Sense/Repository/Exported Certificates/MyServer",
"QLIK_USER_DIRECTORY": "COMPANY",
"QLIK_USER_ID": "administrator"
}
}
}
}
Each server appears as a separate MCP connection in Claude Desktop. You can specify which environment to use when asking questions:
- "Using qlik-cloud-dev, list all apps"
- "On qlik-onprem, trigger reload for Sales Dashboard"
Step 5: Build the MCP Server
After saving your config, go back to PowerShell (Windows) or Terminal (macOS) and run:
Windows
npm run build
macOS / Linux
npm run build
Verify build succeeded - you should see dist/index.js created.
Step 6: Restart Claude Desktop
- Quit Claude Desktop completely (not just close the window)
- macOS: Right-click Claude in menu bar → Quit
- Windows: Right-click Claude in system tray → Exit
- Reopen Claude Desktop
- Start a new conversation and try: "Check my Qlik health"
Verify It's Working
In Claude Desktop, type:
Check my Qlik environment health
You should see Claude use the qlik_health_check tool and return your tenant status.
Tool Capabilities (33 Tools)
1. Search Tools (1)
Unified search across all resources.
| Tool | Description | Platforms |
|---|---|---|
qlik_search |
Search apps, datasets, automations, and more | Cloud, On-Prem |
Example prompts:
- "Search for apps containing 'Sales'"
- "Find all datasets in the Finance space"
- "List apps modified in the last week"
2. Governance Tools (5)
Manage users, tenants, and licenses.
| Tool | Description | Platforms |
|---|---|---|
qlik_health_check |
Check server status and connectivity | Cloud, On-Prem |
qlik_get_tenant_info |
Get tenant/server information | Cloud, On-Prem |
qlik_search_users |
Search users by name or email | Cloud, On-Prem |
qlik_get_user_info |
Get detailed user information | Cloud, On-Prem |
qlik_get_license_info |
Get license and seat allocation | Cloud, On-Prem |
Example prompts:
- "Check the health of my Qlik environment"
- "Search for users with 'admin' in their name"
- "Show me the license information"
3. Reload Tools (3)
Manage app reloads.
| Tool | Description | Platforms |
|---|---|---|
qlik_trigger_app_reload |
Trigger an app reload | Cloud, On-Prem |
qlik_get_reload_status |
Check reload task status | Cloud, On-Prem |
qlik_cancel_reload |
Cancel a running reload | Cloud, On-Prem |
Example prompts:
- "Reload the Sales Dashboard app"
- "What's the status of reload task abc123?"
- "Cancel the current reload"
4. Catalog Tools (1)
Browse spaces and streams.
| Tool | Description | Platforms |
|---|---|---|
qlik_get_spaces_catalog |
List all spaces with details | Cloud (Spaces), On-Prem (Streams) |
Example prompts:
- "List all spaces in my tenant"
- "Show me the catalog of available spaces"
5. Lineage Tools (1) - Cloud Only
Track data lineage.
| Tool | Description | Platforms |
|---|---|---|
qlik_get_lineage |
Get data lineage for a resource | Cloud |
Example prompts:
- "Show me the data lineage for dataset xyz"
6. Data Tools (5)
Interact with data and selections.
| Tool | Description | Platforms |
|---|---|---|
qlik_get_dataset_details |
Get dataset/data connection details | Cloud, On-Prem |
qlik_apply_selections |
Apply field selections | Cloud, On-Prem |
qlik_clear_selections |
Clear all selections | Cloud, On-Prem |
qlik_get_current_selections |
Get active selections | Cloud, On-Prem |
qlik_get_available_fields |
List all fields in an app | Cloud, On-Prem |
Example prompts:
- "What fields are available in app xyz?"
- "Select 'USA' in the Country field"
- "Clear all selections in the app"
7. Misc Tools (2)
Natural language and reload info.
| Tool | Description | Platforms |
|---|---|---|
qlik_insight_advisor |
Ask natural language questions | Cloud, On-Prem |
qlik_get_reload_info |
Get reload history for an app | Cloud, On-Prem |
Example prompts:
- "Ask Sales app: What were total sales last year?"
- "Show me the reload history for app xyz"
Note: On-premise
qlik_insight_advisorrequires Insight Advisor Chat license enabled in QMC.
8. App Tools (1)
Create, update apps and manage data connections.
| Tool | Description | Platforms |
|---|---|---|
qlik_generate_app |
Create or update a Qlik app with script and data connections | Cloud, On-Prem |
Example prompts:
- "Create a new app called Sales Report"
- "Update the load script for app xyz"
Cloud Workflow
On Qlik Cloud, qlik_generate_app uses REST APIs to create apps and trigger reloads asynchronously.
Cloud Example Prompts:
| What you say | What happens |
|---|---|
| "Create a Qlik app with sample sales data" | Creates app with inline LOAD script |
| "Create a new app called 'Dashboard' and load this data..." | Creates app in personal space |
| "Update the load script for app abc-123" | Updates existing app's script |
Typical Cloud Workflow:
-
Create app with inline data:
"Create a Qlik app called 'Sales Analysis' with sample data for products, regions, and sales amounts" -
Create app using existing dataset:
"Create a Qlik app that loads from the 'Sales.qvd' dataset in my Data space" -
Update existing app:
"Update app abc-123 with a new load script that adds a calculated field for profit margin"
Cloud Data Connection Note:
On Cloud, data connections are managed via the Qlik Cloud hub or Spaces. Use qlik_search with types: ["dataconnection"] to find existing connections, then reference them in your load script using LIB CONNECT TO.
On-Premise Workflow (Engine API)
On Qlik Sense Enterprise, the tool uses the Engine API via WebSocket (port 4747) with certificate authentication:
- Create App -
Global.CreateApp() - Create Data Connection (optional) -
Doc.CreateConnection() - Set Load Script -
Doc.SetScript() - Execute Reload -
Doc.DoReload() - Save App -
Doc.DoSave()
On-Premise Example Prompts:
| What you say | What happens |
|---|---|
| "List available ODBC data sources on the server" | Lists all DSNs configured on the Qlik server |
| "Show me the data connections in app abc-123" | Lists all connections in the specified app |
| "Create a Qlik app with sample sales data" | Creates app with inline LOAD script |
| "Create an app that loads data from C:\Data\sales.csv" | Creates folder connection + app |
| "Create an app connected to SQL Server DSN 'MySQLServer'" | Creates ODBC connection + app |
Typical On-Premise Workflow:
-
Discover data sources:
"What ODBC data sources are available on the Qlik server?" -
Explore existing app connections:
"List the data connections in the Sales Dashboard app" -
Create app with data:
"Create a new Qlik app called 'Customer Analysis' that connects to the folder C:\QlikData and loads customers.csv"
Discovery Parameters:
// List available ODBC data sources on the server
{ "listOdbcDsns": true }
// List connections in an existing app
{ "appId": "abc-123", "listConnections": true }
On-Premise Data Connection Examples:
Folder Connection:
{
"appName": "SalesReport",
"dataConnection": {
"connectionName": "SalesData",
"connectionType": "folder",
"connectionString": "C:\\Data\\Sales\\"
},
"loadScript": "LOAD * FROM [lib://SalesData/sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);"
}
ODBC Connection:
{
"appName": "SQLReport",
"dataConnection": {
"connectionName": "SQLServer",
"connectionType": "ODBC",
"connectionString": "DSN=MyDSN",
"username": "user",
"password": "pass"
},
"loadScript": "LIB CONNECT TO 'SQLServer';\nSQL SELECT * FROM Sales;"
}
Note: On-premise uses Engine API (port 4747) with certificate auth. Ensure certificates are properly exported from QMC.
9. Automation Tools (4) - Cloud Only
Manage automations.
| Tool | Description | Platforms |
|---|---|---|
qlik_automation_list |
List all automations | Cloud |
qlik_automation_get_details |
Get automation details | Cloud |
qlik_automation_run |
Execute an automation | Cloud |
qlik_automation_list_runs |
List automation runs | Cloud |
Example prompts:
- "List all automations"
- "Run the daily ETL automation"
- "Show me the run history for automation xyz"
10. Alerts Tools (4) - Cloud Only
Data alerting and notifications.
| Tool | Description | Platforms |
|---|---|---|
qlik_alert_list |
List all data alerts | Cloud |
qlik_alert_get |
Get alert details | Cloud |
qlik_alert_trigger |
Manually trigger an alert | Cloud |
qlik_alert_delete |
Delete an alert | Cloud |
Example prompts:
- "List all data alerts"
- "Show me the details of alert xyz"
- "Trigger the inventory alert"
11. Qlik Answers Tools (3) - Cloud Only
AI assistants with Q&A capabilities.
| Tool | Description | Platforms |
|---|---|---|
qlik_answers_list_assistants |
List AI assistants | Cloud |
qlik_answers_get_assistant |
Get assistant details | Cloud |
qlik_answers_ask_question |
Ask a question to an assistant | Cloud |
Example prompts:
- "List all Qlik Answers assistants"
- "Show me the details of the Sales Assistant"
- "Ask the Sales Assistant: What were our top products last quarter?"
12. AutoML Tools (4) - Cloud Only
Machine learning experiments and deployments.
| Tool | Description | Platforms |
|---|---|---|
qlik_automl_get_experiments |
List all experiments | Cloud |
qlik_automl_get_experiment |
Get experiment details | Cloud |
qlik_automl_list_deployments |
List deployments | Cloud |
qlik_automl_get_deployment |
Get deployment details | Cloud |
Example prompts:
- "List all AutoML experiments"
- "Show me the deployments"
- "Get details for experiment xyz"
Usage Examples
Basic Queries
You: "Check the health of my Qlik Cloud tenant"
Claude: [Uses qlik_health_check] Your tenant is healthy...
You: "List all spaces"
Claude: [Uses qlik_get_spaces_catalog] Found 57 spaces...
You: "Search for users named John"
Claude: [Uses qlik_search_users] Found 3 users matching 'John'...
Data Analysis
You: "Analyze the data model for my Sales Dashboard app"
Claude: [Uses qlik_analyze_data_model] The app has 5 tables,
45 fields, with 1.2M rows in the main fact table...
You: "Select USA in the Country field, then show me the current selections"
Claude: [Uses qlik_apply_selections, qlik_get_current_selections]
Selection applied. Current selections: Country = USA
Reload Management
You: "Show me all currently running reloads"
Claude: [Uses qlik_monitor_active_reloads] 2 reloads in progress...
You: "Reload the Finance Dashboard"
Claude: [Uses qlik_trigger_app_reload] Reload started. Task ID: xyz...
You: "Check the reload history for that app"
Claude: [Uses qlik_get_app_reload_history] Last 5 reloads shown...
AI/ML Features
You: "List all Qlik Answers assistants"
Claude: [Uses qlik_answers_list_assistants] Found 3 assistants...
You: "Ask the Sales Assistant: What were our top products last quarter?"
Claude: [Uses qlik_answers_ask_question] Based on the data,
your top 5 products were...
You: "List AutoML experiments"
Claude: [Uses qlik_automl_get_experiments] Found 2 experiments...
Platform Support
Qlik Cloud
All 34 tools are available on Qlik Cloud.
Qlik Sense Enterprise (On-Premise)
17 tools work on-premise. Cloud-only features return informative messages:
{
"success": false,
"error": "This feature is only available on Qlik Cloud",
"platform": "on-premise",
"suggestion": "Alternative approach for on-premise..."
}
Cloud-Only Features (16 tools)
- Qlik Answers (2 tools)
- AutoML (4 tools)
- Data Alerts (4 tools)
- Automation (4 tools)
- Lineage (1 tool)
- Dataset Details (1 tool)
On-Premise Equivalents
| Cloud Feature | On-Premise Alternative |
|---|---|
| Spaces | Streams (via QRS /qrs/stream) |
| Items API | QRS App API (/qrs/app) |
| Cloud Reloads | QRS Reload Tasks (/qrs/reloadtask) |
| Insight Advisor | NL Query API (/api/v1/nl/query) |
| App Create/Script | Engine API (Global.CreateApp, Doc.SetScript, Doc.DoReload) |
| Data Connections | Engine API (Doc.CreateConnection, Doc.GetConnections) |
| ODBC Discovery | Engine API (Global.GetOdbcDsns) |
Testing
Quick Smoke Test
export QLIK_TENANT_URL=https://your-tenant.qlikcloud.com
export QLIK_API_KEY=your-api-key
node test-cloud-quick.cjs
Full Handler Test
node test-mcp-handlers.mjs
Environment Variables
| Variable | Required | Description |
|---|---|---|
QLIK_TENANT_URL |
Yes | Qlik Cloud URL or Qlik Sense Enterprise server URL |
QLIK_DEPLOYMENT |
No | cloud (default) or on-premise |
For Qlik Cloud:
| Variable | Required | Description |
|---|---|---|
QLIK_API_KEY |
Yes | API key from Qlik Cloud hub |
For Qlik Sense Enterprise (On-Premise):
| Variable | Required | Description |
|---|---|---|
QLIK_CERT_PATH |
Yes | Folder containing client.pem, client_key.pem, root.pem |
QLIK_USER_DIRECTORY |
Yes | Windows domain (e.g., COMPANY) |
QLIK_USER_ID |
Yes | Username to act as (e.g., admin) |
QLIK_VIRTUAL_PROXY |
No | Virtual proxy prefix (if configured) |
Troubleshooting
"Tool not found" Error
Ensure the MCP server is running and Claude Desktop was restarted after configuration.
Authentication Errors
Qlik Cloud:
- Verify your API key is valid and not expired
- Ensure the API key has appropriate permissions
Qlik Sense Enterprise (On-Premise):
- Verify certificate paths are correct and files exist
- Ensure certificates were exported with the private key
- Check that the certificate hasn't expired
- Verify the machine name in the certificate matches your setup
"Cloud-only feature" Message
Some tools are only available on Qlik Cloud. The error message will suggest alternatives.
Connection Timeout
Check network connectivity to your Qlik server. Ensure firewalls allow the connection.
Empty MCP Server / Tools Not Showing
If Claude Desktop shows empty MCP server with no tools:
-
Check if dist/ folder exists:
dir C:\qlik-claude-mcp-main\dist\If not, run
npm run buildfirst. -
Check MCP server logs:
type "$env:APPDATA\Claude\logs\mcp-server-qlik-mcp-os.log" -
Fully restart Claude Desktop:
- Close Claude Desktop
- Open Task Manager (Ctrl+Shift+Esc)
- Find "Claude" and click End Task
- Reopen Claude Desktop
-
Verify config file location:
type "$env:APPDATA\Claude\claude_desktop_config.json"
Server Hangs or Slow Response
If the server hangs or responds slowly, use optimized config with memory settings:
{
"mcpServers": {
"qlik-mcp-os": {
"command": "node",
"args": [
"--max-old-space-size=4096",
"C:\\qlik-claude-mcp-main\\dist\\index.js"
],
"env": {
"QLIK_TENANT_URL": "https://your-tenant.qlikcloud.com",
"QLIK_API_KEY": "your-api-key",
"NODE_ENV": "production"
}
}
}
}
"Cannot find module" Error
This means npm run build was not executed:
cd C:\qlik-claude-mcp-main
npm install
npm run build
Then restart Claude Desktop.
Architecture
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Desktop │────▶│ MCP Server │────▶│ Qlik Cloud │
│ │ │ │ │ (REST APIs) │
│ Natural Lang │◀────│ 33 Tools │◀────│ │
│ Interface │ │ 12 Categories │ ├─────────────────┤
└─────────────────┘ └─────────────────┘ │ Qlik Sense Ent. │
│ (QRS + Engine) │
└─────────────────┘
Cloud: REST APIs (/api/v1/*) with API key authentication
On-Premise:
- QRS API (port 4242) - Management operations
- Engine API (port 4747) - App creation, scripts, data connections via WebSocket
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
npm test - Submit a pull request
License
MIT License - See LICENSE file for details.
Support
- Issues: GitHub Issues
- Documentation: See
/docsfolder - Qlik Community: community.qlik.com
Built with the Model Context Protocol (MCP) for seamless AI-analytics integration.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。