返回市场
动力钻探-mcp

动力钻探-mcp

作者:powerdrillai12 星标更新:2025-11-18

项目介绍

Powerdrill MCP 服务器

smithery 徽章

这是一个模型上下文协议(MCP)服务器,提供与 Powerdrill 数据集交互的工具,并使用 Powerdrill 用户 ID 和项目 API 密钥进行身份验证。

请访问 https://chat.powerdrill.ai/ 进行个人或团队的数据分析。

如果你有团队的 Powerdrill 用户 ID 和项目 API 密钥,你可以通过 Powerdrill 开源的 Web 客户端来操作数据:

功能

  • 使用用户 ID 和项目 API 密钥对 Powerdrill 进行身份验证
  • 列出你的 Powerdrill 账户中的可用数据集
  • 获取特定数据集的详细信息
  • 使用自然语言问题在数据集上创建并运行作业
  • 与 Claude Desktop 和其他兼容 MCP 的客户端集成

安装

通过 Smithery 安装

要通过 Smithery 自动安装 powerdrill-mcp:

npx -y @smithery/cli install @powerdrillai/powerdrill-mcp --client claude

从 npm 安装

# 全局安装
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 凭证(用户 IDAPI 密钥)的 Powerdrill 账户。以下是获取它们的方法:

  1. 如果还没有,请注册一个 Powerdrill 团队账户
  2. 导航到你的账户设置
  3. 查找 API 部分,在那里你会找到你的:
    • 用户 ID:账户的唯一标识符
    • API 密钥:用于 API 访问的身份验证令牌

首先,观看这个视频教程,了解如何创建你的 Powerdrill 团队:

创建 Powerdrill 团队教程

然后,按照这个视频教程设置你的 API 凭证:

Powerdrill API 设置教程

快速设置

最简单的设置方法是使用提供的设置脚本:

# 将脚本设为可执行
chmod +x setup.sh

# 运行设置脚本
./setup.sh

这将:

  1. 安装依赖项
  2. 构建 TypeScript 代码
  3. 创建一个 .env 文件(如果不存在)
  4. 为 Claude Desktop 和 Cursor 生成配置文件,使用基于 npx 的配置(推荐)

然后编辑你的 .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

与 Claude Desktop 集成

  1. 打开 Claude Desktop
  2. 转到设置 > 服务器设置
  3. 添加一个新的服务器,使用以下配置之一:

选项 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"
    }
  }
}
  1. 保存配置
  2. 重启 Claude Desktop

与 Cursor 集成

  1. 打开 Cursor
  2. 转到设置 > MCP 工具
  3. 添加一个新的 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"
    }
  }
}
  1. 保存配置
  2. 如需,重启 Cursor

使用工具

一旦连接,你可以在与 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} 中的所有文件
  • 列出会话:显示我当前的所有分析会话列出我最近的数据分析会话

可用工具

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": "一个包含373个旅行预订和15个属性的数据集...",
  "summary": "此数据集包含373个旅行预订和15个属性...",
  "exploration_questions": [
    "基于 BookingTimestamp,旅行预订价格的趋势是如何随时间变化的?",
    "平均预订价格相对于 TravelDate 是如何变化的?"
  ],
  "keywords": [
    "旅行预订",
    "预订趋势",
    "旅行社"
  ]
}

mcp_powerdrill_create_job

创建一个作业,使用自然语言问题分析数据。

参数:

  • question(必需):用于分析数据的自然语言问题或提示
  • dataset_id(必需):要分析的数据集 ID
  • datasource_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"
    }
  ]
}

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(必需):要列出数据源的数据集 ID
  • pageNumber(可选,默认: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"
    }
  ]
}

mcp_powerdrill_list_sessions

列出你的 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"
    }
  ]
}

mcp_powerdrill_create_dataset

在你的 Powerdrill 账户中创建一个新的数据集。

参数:

  • name(必需):数据集名称,最多128个字符
  • description(可选):数据集描述,最多128个字符

示例响应:

{
  "id": "dataset-adsdfasafdsfasdgasd",
  "message": "数据集创建成功"
}

mcp_powerdrill_create_data_source_from_local_file

通过上传本地文件到指定数据集来创建新的数据源。

参数:

  • dataset_id(必需):要创建数据源的数据集 ID
  • file_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"
  }
}

故障排除

如果你遇到问题:

  1. 确保你的环境变量在 .env 中正确设置
  2. 检查服务器是否能成功启动 npm start
  3. 核实你的 Claude Desktop 配置指向了正确的文件路径
  4. 检查控制台输出是否有任何错误消息

许可证

MIT