这是一个模型上下文协议(MCP)服务器,提供与 Powerdrill 数据集交互的工具,并使用 Powerdrill 用户 ID 和项目 API 密钥进行身份验证。
请访问 https://chat.powerdrill.ai/ 进行个人或团队的数据分析。
如果你有团队的 Powerdrill 用户 ID 和项目 API 密钥,你可以通过 Powerdrill 开源的 Web 客户端来操作数据:
要通过 Smithery 自动安装 powerdrill-mcp:
npx -y @smithery/cli install @powerdrillai/powerdrill-mcp --client claude
# 全局安装
npm install -g @powerdrillai/powerdrill-mcp
# 或者直接使用 npx 运行
npx @powerdrillai/powerdrill-mcp
克隆此仓库并安装依赖项:
git clone https://github.com/yourusername/powerdrill-mcp.git
cd powerdrill-mcp
npm install
如果已全局安装:
# 启动 MCP 服务器
powerdrill-mcp
如果使用 npx:
# 运行最新版本
npx -y @powerdrillai/powerdrill-mcp@latest
你需要在运行前配置环境变量以包含你的 Powerdrill 凭证:
# 设置环境变量
export POWERDRILL_USER_ID="your_user_id"
export POWERDRILL_PROJECT_API_KEY="your_project_api_key"
或者创建一个包含这些值的 .env 文件。
要使用此 MCP 服务器,你需要一个具有有效 API 凭证(用户 ID 和 API 密钥)的 Powerdrill 账户。以下是获取它们的方法:
首先,观看这个视频教程,了解如何创建你的 Powerdrill 团队:
然后,按照这个视频教程设置你的 API 凭证:
最简单的设置方法是使用提供的设置脚本:
# 将脚本设为可执行
chmod +x setup.sh
# 运行设置脚本
./setup.sh
这将:
.env 文件(如果不存在)然后编辑你的 .env 文件,填入实际凭证:
POWERDRILL_USER_ID=your_actual_user_id
POWERDRILL_PROJECT_API_KEY=your_actual_project_api_key
同时更新生成的配置文件中的凭证,以便使用它们。
如果你更喜欢手动设置:
# 安装依赖项
npm install
# 构建 TypeScript 代码
npm run build
# 复制环境示例文件
cp .env.example .env
# 编辑 .env 文件,填入你的凭证
npm start
{
"powerdrill": {
"command": "npx",
"args": [
"-y",
"@powerdrillai/powerdrill-mcp@latest"
],
"env": {
"POWERDRILL_USER_ID": "your_actual_user_id",
"POWERDRILL_PROJECT_API_KEY": "your_actual_project_api_key"
}
}
}
{
"powerdrill": {
"command": "node",
"args": ["/path/to/powerdrill-mcp/dist/index.js"],
"env": {
"POWERDRILL_USER_ID": "your_actual_user_id",
"POWERDRILL_PROJECT_API_KEY": "your_actual_project_api_key"
}
}
}
{
"powerdrill": {
"command": "npx",
"args": [
"-y",
"@powerdrillai/powerdrill-mcp@latest"
],
"env": {
"POWERDRILL_USER_ID": "your_actual_user_id",
"POWERDRILL_PROJECT_API_KEY": "your_actual_project_api_key"
}
}
}
{
"powerdrill": {
"command": "node",
"args": ["/path/to/powerdrill-mcp/dist/index.js"],
"env": {
"POWERDRILL_USER_ID": "your_actual_user_id",
"POWERDRILL_PROJECT_API_KEY": "your_actual_project_api_key"
}
}
}
一旦连接,你可以在与 Claude Desktop、Cursor、Cline、Windsurf 等的对话中使用 Powerdrill 工具:
我的 Powerdrill 账户有哪些数据集? 或 显示我所有的数据集创建一个名为“销售分析”的新数据集 或 创建一个名为“客户数据”的新数据集,描述为“2024年分析的客户信息”上传文件 /Users/your_name/Downloads/sales_data.csv 到数据集 {dataset_id} 或 添加我的本地文件 /path/to/customer_data.xlsx 到我的 {dataset_id} 数据集告诉我更多关于这个数据集的信息:{dataset_id} 或 描述数据集 {dataset_id} 的结构分析数据集 {dataset_id},提出这个问题:“趋势随时间发生了什么变化?” 或 在数据集 {dataset_id} 上运行查询,询问“按收入排名前十的客户是谁?”创建一个名为“2024年销售分析”的新会话,用于数据分析 或 开始一个名为“客户细分”的会话,用于分析市场数据数据集 {dataset_id} 中有哪些数据源? 或 显示数据集 {dataset_id} 中的所有文件显示我当前的所有分析会话 或 列出我最近的数据分析会话列出你的 Powerdrill 账户中的可用数据集。
参数:
limit(可选):返回的最大数据集数量示例响应:
{
"datasets": [
{
"id": "dataset-dasfadsgadsgas",
"name": "mydata",
"description": "my dataset"
}
]
}
获取特定数据集的详细概述信息。
参数:
datasetId(必需):要获取概述信息的数据集 ID示例响应:
{
"id": "dset-cm5axptyyxxx298",
"name": "sales_indicators_2024",
"description": "一个包含373个旅行预订和15个属性的数据集...",
"summary": "此数据集包含373个旅行预订和15个属性...",
"exploration_questions": [
"基于 BookingTimestamp,旅行预订价格的趋势是如何随时间变化的?",
"平均预订价格相对于 TravelDate 是如何变化的?"
],
"keywords": [
"旅行预订",
"预订趋势",
"旅行社"
]
}
创建一个作业,使用自然语言问题分析数据。
参数:
question(必需):用于分析数据的自然语言问题或提示dataset_id(必需):要分析的数据集 IDdatasource_ids(可选):数据集中要分析的具体数据源 ID 数组session_id(可选):会话 ID,用于分组相关作业stream(可选,默认:false):是否流式传输结果output_language(可选,默认:"AUTO"):输出的语言job_mode(可选,默认:"AUTO"):作业模式示例响应:
{
"job_id": "job-cm3ikdeuj02zk01l1yeuirt77",
"blocks": [
{
"type": "CODE",
"content": "```python\nimport pandas as pd\n\ndef invoke(input_0: pd.DataFrame) -> pd.DataFrame:\n...",
"stage": "Analyze"
},
{
"type": "TABLE",
"url": "https://static.powerdrill.ai/tmp_datasource_cache/code_result/...",
"name": "trend_data.csv",
"expires_at": "2024-11-21T09:56:34.290544Z"
},
{
"type": "IMAGE",
"url": "https://static.powerdrill.ai/tmp_datasource_cache/code_result/...",
"name": "世纪自然灾害死亡人数趋势",
"expires_at": "2024-11-21T09:56:34.290544Z"
},
{
"type": "MESSAGE",
"content": "自然灾害死亡人数趋势分析...",
"stage": "Respond"
}
]
}
创建一个新的会话,用于分组相关作业。
参数:
name(必需):会话名称,最多128个字符output_language(可选,默认:"AUTO"):输出生成的语言。选项包括:"AUTO","EN","ES","AR","PT","ID","JA","RU","HI","FR","DE","VI","TR","PL","IT","KO","ZH-CN","ZH-TW"job_mode(可选,默认:"AUTO"):会话的作业模式。选项包括:"AUTO","DATA_ANALYTICS"max_contextual_job_history(可选,默认:10):作为下一个作业上下文保留的最近作业的最大数量(0-10)agent_id(可选,默认:"DATA_ANALYSIS_AGENT"):代理 ID示例响应:
{
"session_id": "session-abcdefghijklmnopqrstuvwxyz"
}
列出特定数据集中的数据源。
参数:
datasetId(必需):要列出数据源的数据集 IDpageNumber(可选,默认:1):开始列出的页码pageSize(可选,默认:10):单页上的项目数status(可选):根据状态筛选数据源:同步中,无效,已同步(多个状态用逗号分隔)示例响应:
{
"count": 3,
"total": 5,
"page": 1,
"page_size": 10,
"data_sources": [
{
"id": "dsource-a1b2c3d4e5f6g7h8i9j0",
"name": "sales_data.csv",
"type": "CSV",
"status": "synched",
"size": 1048576,
"dataset_id": "dset-cm5axptyyxxx298"
},
{
"id": "dsource-b2c3d4e5f6g7h8i9j0k1",
"name": "customer_info.xlsx",
"type": "EXCEL",
"status": "synched",
"size": 2097152,
"dataset_id": "dset-cm5axptyyxxx298"
},
{
"id": "dsource-c3d4e5f6g7h8i9j0k1l2",
"name": "market_research.pdf",
"type": "PDF",
"status": "synched",
"size": 3145728,
"dataset_id": "dset-cm5axptyyxxx298"
}
]
}
列出你的 Powerdrill 账户中的会话。
参数:
pageNumber(可选):开始列出的页码(默认:1)pageSize(可选):单页上的项目数(默认:10)search(可选):按名称搜索会话示例响应:
{
"count": 2,
"total": 2,
"sessions": [
{
"id": "session-123abc",
"name": "产品分析",
"job_count": 3,
"created_at": "2024-03-15T10:30:00Z",
"updated_at": "2024-03-15T11:45:00Z"
},
{
"id": "session-456def",
"name": "财务预测",
"job_count": 5,
"created_at": "2024-03-10T14:20:00Z",
"updated_at": "2024-03-12T09:15:00Z"
}
]
}
在你的 Powerdrill 账户中创建一个新的数据集。
参数:
name(必需):数据集名称,最多128个字符description(可选):数据集描述,最多128个字符示例响应:
{
"id": "dataset-adsdfasafdsfasdgasd",
"message": "数据集创建成功"
}
通过上传本地文件到指定数据集来创建新的数据源。
参数:
dataset_id(必需):要创建数据源的数据集 IDfile_path(必需):要上传的本地文件路径file_name(可选):文件的自定义名称,默认为原始文件名chunk_size(可选,默认:5MB):多部分上传时每个块的字节数示例响应:
{
"dataset_id": "dset-cm5axptyyxxx298",
"data_source": {
"id": "dsource-a1b2c3d4e5f6g7h8i9j0",
"name": "sales_data_2024.csv",
"type": "FILE",
"status": "synched",
"size": 2097152
},
"file": {
"name": "sales_data_2024.csv",
"size": 2097152,
"object_key": "uploads/user_123/sales_data_2024.csv"
}
}
如果你遇到问题:
.env 中正确设置npm startMIT