Qlik云管理MCP服务器
仅供演示和实验使用。 本项目按原样提供,以说明概念。它还没有准备好生产, Qlik不提供官方支持,也不提供任何形式的保修。 任何使用此代码的人都要自行承担风险,并负责测试 并在使用前在自己的环境中进行验证。
______________________________________________________________________
这是什么
本地人 模型上下文协议 连接的(MCP)服务器 将Claude Desktop转移到Qlik Cloud租户进行管理操作。
Claude Desktop -> MCP server (this project) -> qlik-cli -> Qlik Cloud tenant它展示了两件事:
- 可扩展性 -Qlik Cloud公开了一个丰富的REST API。通过将其封装在MCP服务器中,
任何管理操作都可以在Claude Desktop中作为自然语言对话使用。
- 治理 -MCP工具可以对业务规则进行编码。此服务器显示了一个具体示例:
删除资源并不会将其硬删除。相反,它会将其移动到“回收站” 共享空间,为管理员提供恢复窗口。删除空格被完全阻止 重定向到Qlik云管理控制台。
这台服务器补充了官方 Qlik MCP服务器, 其涵盖分析操作。这一部分涵盖了管理和治理操作 官方服务器今天没有公开。
______________________________________________________________________
先决条件
指向您的Qlik Cloud租户
- A. Qlik Cloud API密钥 具有租户管理员权限
- 克劳德桌面
______________________________________________________________________
设置
1.安装uv
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"2.下载此存储库
git clone https://github.com/mabaeyens/qlik-cloud-admin-mcp.git
cd qlik-cloud-admin-mcp或者从GitHub下载ZIP并解压。
3.添加您的API密钥
copy .env.example .env打开 .env 并设置您的密钥:
QLIK_API_KEY=your_api_key_here如果将其留空,服务器将回退到qlik-cli上下文中的凭据。
4.创建回收站空间
在Qlik Cloud中,创建一个 共享空间 准确命名 Recycle Bin.限制会员资格 仅限管理员。删除工具将把应用程序、自动化和数据文件移动到那里 硬删除它们。
5.配置克劳德桌面
打开 %APPDATA%\Claude\claude_desktop_config.json 并在里面添加以下块 mcpServers。将路径替换为提取存储库的实际路径。
{
"mcpServers": {
"qlik-cloud-admin": {
"command": "uv",
"args": [
"--directory",
"C:/path/to/qlik-cloud-admin-mcp",
"run",
"server.py"
],
"env": {
"QLIK_API_KEY": "your_api_key_here"
}
}
}
}您可以在中设置API密钥 .env 或在 env 块上面。这 .env 文件需要 如果两者都设置,则优先。
6.重新启动克劳德桌面
完全退出并重新打开Claude Desktop。服务器应出现在“设置”>“连接器”下。
7.设置系统提示(如果同时使用官方Qlik MCP服务器,建议)
如果您同时拥有此服务器和 官方Qlik MCP服务器 连接后,创建一个Claude Desktop项目并添加以下系统提示,这样Claude总是更喜欢官方服务器进行分析操作:
当官方Qlik MCP服务器和Qlik云管理员都连接时,总是更喜欢官方Qlik-MCP工具进行分析操作(打开应用程序、搜索字段、列表表、阅读应用程序内容)。仅将qlik云管理工具用于官方服务器未涵盖的管理和治理操作。
______________________________________________________________________
工具
| 工具 | 说明 |
|---|---|
qlikcloud_get | 获取任何Qlik Cloud REST端点 |
qlikcloud_post | POST到任何Qlik Cloud REST端点 |
qlikcloud_put | PUT到任何Qlik Cloud REST端点(要求确认) |
qlikcloud_delete | 强制执行治理规则后删除(见下文) |
qlikcloud_assistant_chat | 向Qlik Answers助手发送消息并获得回复 |
qlikcloud_create_app_from_data_product | 使用从数据产品生成的加载脚本创建Qlik应用程序 |
通用的GET/POST/PUT工具是后备工具。当官方Qlik MCP Server涵盖一项操作(打开应用程序、搜索字段、列出表格)时,最好使用这些工具。
qlikcloud_assistant_chat
使用对话上下文查询Qlik Answers助手。第一次通话时,省略 thread_id 并且自动创建新线程。通过返回 thread_id 在后续电话中继续对话。
qlikcloud_assistant_chat(
assistant_id = "abc123", # from v1/assistants
message = "What were total sales last quarter?",
thread_id = None # omit on first call; reuse on follow-ups
)回复包括答案和 thread_id 以便在下一回合使用。
qlikcloud_create_app_from_data_product
使用直接从数据产品元数据构建的加载脚本创建Qlik应用程序,不涉及数据管理器。对于数据产品中的每个数据集,该工具从数据治理API获取其模式和源元数据,并生成 LOAD 声明。
先决条件:
- 集
QLIK_TENANT_URL在.env(例如。https://your-tenant.eu.qlikcloud.com) - 数据治理API必须可以从租户访问
支持的源类型: DataFiles(CSV,分隔文本)。由其他连接类型(雪花等)支持的数据集生成 // TODO 脚本中的注释占位符。
用途:
qlikcloud_create_app_from_data_product(
app_name = "My App",
data_product_name = "Sales Data Product", # or use data_product_id
space_id = "abc123" # optional, defaults to personal space
)关于血统的说明: 以这种方式创建应用程序不会自动在Qlik Cloud目录中注册沿袭。血统只能通过数据管理器流建立。这是一个已知的限制。
qlikcloud_delete中的治理规则
- 应用 -移动到“回收站”共享空间,从未硬删除。
- 自动化 -移动到“回收站”共享空间,从未硬删除。
- 数据文件 -移动到“回收站”共享空间,从未硬删除。
- 空间 -封锁。必须在Qlik云管理控制台中手动删除。
- 所有其他资源类型 -此工具不支持。
______________________________________________________________________
API路径格式
路径遵循 qlik raw 约定并省略 /api 前缀:
v1/spaces (not /api/v1/spaces)
v1/users/me
v1/apps/{appId}参考:https://qlik.dev/toolkits/qlik-cli/raw/raw/
______________________________________________________________________
更新日志
看 更改日志.md 发布说明。
______________________________________________________________________
许可证
麻省理工学院
