Powerdrill MCP Server
官方一个MCP服务器,提供与Powerdrill数据集交互的工具,支持智能AI数据分析与洞察。
文档
Powerdrill MCP 服务器
一个模型上下文协议(MCP)服务器,提供与 Powerdrill 数据集交互的工具,使用 Powerdrill 用户 ID 和项目 API 密钥进行身份验证。
请前往 https://chat.powerdrill.ai/ 进行个人 AI 数据分析,或与您的团队一起使用。
如果您拥有团队的 Powerdrill 用户 ID 和项目 API 密钥,可以通过 Powerdrill 开源 Web 客户端操作数据:
- Node.js 版本:https://flow.powerdrill.ai/, 或使用开源 Web 客户端 https://github.com/powerdrillai/powerdrill-flow.
- Python 版本:https://powerdrill-flow.streamlit.app/, 或使用开源 Web 客户端 https://github.com/powerdrillai/powerdrill-flow-streamlit.
功能特性
- 使用用户 ID 和项目 API 密钥进行 Powerdrill 身份验证
- 列出您 Powerdrill 账户中的可用数据集
- 获取特定数据集的详细信息
- 使用自然语言问题在数据集上创建并运行作业
- 与 Claude Desktop 及其他兼容 MCP 的客户端集成
安装
通过 Smithery 安装
要通过 Smithery 为 Claude Desktop 自动安装 powerdrill-mcp:
npx -y @smithery/cli install @powerdrillai/powerdrill-mcp --client claude
从 npm 安装
# Install globally
npm install -g @powerdrillai/powerdrill-mcp
# Or run directly with npx
npx @powerdrillai/powerdrill-mcp
从源码安装
克隆此仓库并安装依赖:
git clone https://github.com/yourusername/powerdrill-mcp.git
cd powerdrill-mcp
npm install
CLI 用法
如果已全局安装:
# Start the MCP server
powerdrill-mcp
如果使用 npx:
# Run the latest version
npx -y @powerdrillai/powerdrill-mcp@latest
运行前,您需要配置包含 Powerdrill 凭证的环境变量:
# Set environment variables
export POWERDRILL_USER_ID="your_user_id"
export POWERDRILL_PROJECT_API_KEY="your_project_api_key"
或者创建一个包含这些值的 .env 文件。
前提条件
要使用此 MCP 服务器,您需要一个拥有有效 API 凭证(用户 ID 和 API 密钥)的 Powerdrill 账户。获取方法如下:
- 如果您还没有 Powerdrill 团队账户,请先注册
- 导航到您的账户设置
- 找到 API 部分,您将看到:
- 用户 ID:您账户的唯一标识符
- API 密钥:用于 API 访问的身份验证令牌
首先,观看此视频教程,了解如何创建您的 Powerdrill 团队:
然后,按照此视频教程设置您的 API 凭证:
快速设置
最简单的服务器设置方法是使用提供的设置脚本:
# Make the script executable
chmod +x setup.sh
# Run the setup script
./setup.sh
这将:
- 安装依赖
- 构建 TypeScript 代码
- 如果不存在,则创建
.env文件 - 使用基于 npx 的配置(推荐)为 Claude Desktop 和 Cursor 生成配置文件
然后编辑您的 .env 文件,填入实际凭证:
POWERDRILL_USER_ID=your_actual_user_id
POWERDRILL_PROJECT_API_KEY=your_actual_project_api_key
在使用生成的配置文件之前,也请更新其中的凭证。
手动安装
如果您希望手动设置:
# Install dependencies
npm install
# Build the TypeScript code
npm run build
# Copy the environment example file
cp .env.example .env
# Edit the .env file with your credentials
用法
运行服务器
npm start
与 Claude Desktop 集成
- 打开 Claude Desktop
- 前往 设置 > 服务器设置
- 使用以下任一配置添加新服务器:
选项 1:使用 npx(推荐)
{
"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"
}
}
}
选项 2:使用 node 及本地安装
{
"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 集成
- 打开 Cursor
- 前往 设置 > MCP 工具
- 使用以下任一配置添加新的 MCP 工具:
选项 1:使用 npx(推荐)
{
"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"
}
}
}
选项 2:使用 node 及本地安装
{
"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"
}
}
}
- 保存配置
- 如有需要,重启 Cursor
使用工具
连接成功后,您可以在与 Claude Desktop、Cursor、Cline、Windsurf 等的对话中使用 Powerdrill 工具:
- 列出数据集:
What datasets are available in my Powerdrill account?或Show me all my datasets - 创建数据集:
Create a new dataset called "Sales Analytics"或Make a new dataset named "Customer Data" with description "Customer information for 2024 analysis" - 从本地文件创建数据源:
Upload the file /Users/your_name/Downloads/sales_data.csv to dataset {dataset_id}或Add my local file /path/to/customer_data.xlsx to my {dataset_id} dataset - 获取数据集概览:
Tell me more about this dataset: {dataset_id}或Describe the structure of dataset {dataset_id} - 创建作业:
Analyze dataset {dataset_id} with this question: "How has the trend changed over time?"或Run a query on {dataset_id} asking "What are the top 10 customers by revenue?" - 创建会话:
Create a new session named "Sales Analysis 2024" for my data analysis或Start a session called "Customer Segmentation" for analyzing market data - 列出数据源:
What data sources are available in dataset {dataset_id}?或Show me all files in the {dataset_id} dataset - 列出会话:
Show me all my current analysis sessions或List my recent data analysis sessions
可用工具
mcp_powerdrill_list_datasets
列出您 Powerdrill 账户中的可用数据集。
参数:
limit(可选):要返回的最大数据集数量
示例响应:
{
"datasets": [
{
"id": "dataset-dasfadsgadsgas",
"name": "mydata",
"description": "my dataset"
}
]
}
mcp_powerdrill_get_dataset_overview
获取特定数据集的详细概览信息。
参数:
datasetId(必需):要获取概览信息的数据集 ID
示例响应:
{
"id": "dset-cm5axptyyxxx298",
"name": "sales_indicators_2024",
"description": "A dataset comprising 373 travel bookings with 15 attributes...",
"summary": "This dataset contains 373 travel bookings with 15 attributes...",
"exploration_questions": [
"How does the booking price trend over time based on the BookingTimestamp?",
"How does the average booking price change with respect to the TravelDate?"
],
"keywords": [
"Travel Bookings",
"Booking Trends",
"Travel Agencies"
]
}
mcp_powerdrill_create_job
创建一个作业,使用自然语言问题分析数据。
参数:
question(必需):用于分析数据的自然语言问题或提示dataset_id(必需):要分析的数据集 IDdatasource_ids(可选):数据集中要分析的特定数据源 ID 数组session_id(可选):用于分组相关作业的会话 IDstream(可选,默认: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": "Trend of Deaths from Natural Disasters Over the Century",
"expires_at": "2024-11-21T09:56:34.290544Z"
},
{
"type": "MESSAGE",
"content": "Analysis of Trends in the Number of Deaths from Natural Disasters...",
"stage": "Respond"
}
]
}
mcp_powerdrill_create_session
创建一个新会话,用于将相关作业分组。
参数:
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"
}
mcp_powerdrill_list_data_sources
列出特定数据集中的数据源。
参数:
datasetId(必需):要列出数据源的数据集 IDpageNumber(可选,默认:1):开始列出的页码pageSize(可选,默认:10):单页显示的项目数量status(可选):按状态筛选数据源:synching、invalid、synched(多个状态用逗号分隔)
示例响应:
{
"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"
}
]
}
mcp_powerdrill_list_sessions
列出您 Powerdrill 账户中的会话。
参数:
pageNumber(可选):开始列出的页码(默认:1)pageSize(可选):单页显示的项目数量(默认:10)search(可选):按名称搜索会话
示例响应:
{
"count": 2,
"total": 2,
"sessions": [
{
"id": "session-123abc",
"name": "Product Analysis",
"job_count": 3,
"created_at": "2024-03-15T10:30:00Z",
"updated_at": "2024-03-15T11:45:00Z"
},
{
"id": "session-456def",
"name": "Financial Forecasting",
"job_count": 5,
"created_at": "2024-03-10T14:20:00Z",
"updated_at": "2024-03-12T09:15:00Z"
}
]
}
mcp_powerdrill_create_dataset
在您的 Powerdrill 账户中创建一个新数据集。
参数:
name(必需):数据集名称,最长 128 个字符description(可选):数据集描述,最长 128 个字符
示例响应:
{
"id": "dataset-adsdfasafdsfasdgasd",
"message": "Dataset created successfully"
}
mcp_powerdrill_create_data_source_from_local_file
通过将本地文件上传到指定数据集来创建新数据源。
参数:
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 start检查服务器是否成功启动 - 验证您的 Claude Desktop 配置指向正确的文件路径
- 检查控制台输出以获取任何错误消息
许可证
MIT

