项目简介
该项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在将 Hasura PromptQL 的数据查询和分析能力通过标准协议暴露给支持 MCP 的 AI 助手(如 Claude Desktop)。它充当了 AI 助手和您的企业数据之间的桥梁,允许用户使用自然语言直接与数据交互。
主要功能点
- 自然语言数据查询: 允许用户使用日常语言向 PromptQL 提问关于您企业数据的问题。
- 表格数据支持: 能够将数据查询结果格式化为表格,方便查看。
- 安全配置管理: 安全地存储和管理连接 PromptQL API 所需的凭据。
- 数据分析: 支持通过 PromptQL 进行数据分析并获取洞察。
- 简单易集成: 可与 Claude Desktop 等兼容 MCP 的客户端无缝集成。
安装步骤
-
前置条件:
- 安装 Python 3.10 或更高版本。
- 拥有一个配置好 API 密钥和 DDN URL 的 Hasura PromptQL 项目。
- 安装一个兼容 MCP 的客户端 (如 Claude Desktop)。
-
克隆仓库:
git clone https://github.com/hasura/promptql-mcp.git cd promptql-mcp -
创建并激活虚拟环境 (推荐):
python -m venv venv source venv/bin/activate # Windows 系统使用: venv\Scripts\activate -
安装项目:
pip install -e .
服务器配置 (供 MCP 客户端使用)
MCP 客户端需要知道如何启动 PromptQL MCP 服务器进程才能与其建立连接。这通常通过在客户端的开发者设置中添加服务器配置来完成。您需要在客户端中提供以下信息:
- 服务器名称: 给这个服务器起一个唯一的名称,例如 'promptql'。
- 启动命令 (command): 指向用于运行服务器的 Python 可执行文件的完整路径。如果您使用了虚拟环境,请务必指向虚拟环境内的 Python。
- 命令参数 (args): 提供传递给 Python 可执行文件的参数列表。对于这个服务器,标准参数是 '-m' 和 'promptql_mcp_server'。
例如,在 Claude Desktop 的 'mcpServers' 配置中,您可能需要添加类似如下的条目(注意:这只是配置说明,不是需要在终端运行的代码):
{ "mcpServers": { "promptql": { // 服务器名称,可自定义 "command": "/full/path/to/your/python", // 替换为您的 Python 路径 "args": ["-m", "promptql_mcp_server"] // 固定的启动参数 } // ... 其他 MCP 服务器配置 } }
如果您使用了虚拟环境,'/full/path/to/your/python' 应指向虚拟环境内的 Python 路径,例如 '/path/to/your/project/venv/bin/python'。您可以使用 'which python' (macOS/Linux) 或 'where python' (Windows) 命令查找正确的路径。
在客户端配置完成后,客户端会根据此信息启动并连接到服务器。
基本使用方法
-
配置 PromptQL 凭据: 在首次运行服务器前,您需要配置连接 PromptQL API 的凭据。在终端中运行以下命令,替换为您的实际密钥和 URL:
python -m promptql_mcp_server setup --api-key YOUR_PROMPTQL_API_KEY --ddn-url YOUR_DDN_URL这些凭据会被安全地存储在您的用户配置目录下 ('~/.promptql-mcp/config.json')。
-
启动服务器: 服务器通常由 MCP 客户端自动启动。如果您想手动测试或从终端运行,可以执行:
python -m promptql_mcp_server服务器启动后会监听标准输入/输出(Stdio)等待客户端连接。
-
通过 AI 助手交互: 启动已配置好 PromptQL MCP 服务器的 AI 助手(如 Claude Desktop)。现在您可以在聊天中直接使用自然语言提问关于您数据的问题。AI 助手会调用 PromptQL MCP 服务器提供的工具来执行数据查询。
示例问题:
- "What were our total sales last quarter?" (上个季度的总销售额是多少?)
- "Who are our top five customers by revenue?" (按收入计算,我们排名前五的客户是谁?)
- "Show me the trend of new user signups over the past 6 months" (显示过去 6 个月新用户注册的趋势)
- "Which products have the highest profit margin?" (哪些产品的利润率最高?)
关键词
数据查询, 数据分析, AI助手集成, PromptQL, 自然语言数据
信息
分类
AI与计算