Kaggle数据集搜索下载服务

一个模型上下文协议(MCP)服务器,提供Kaggle数据集搜索、下载和EDA提示生成功能。

  • by arrismo
  • Python
  • 本地部署
  • 39 星标
  • 更新于
在 GitHub 查看 arrismo/kaggle-mcp

使用说明

Kaggle MCP服务器

一个模型上下文协议(MCP)服务器,向MCP客户端(如Claude Desktop)公开Kaggle数据集搜索、下载和EDA提示生成。

特性

  • 按关键字搜索Kaggle数据集。
  • 在本地下载并解压缩Kaggle数据集。
  • 为Kaggle数据集生成一个初步的探索性数据分析(EDA)提示。
  • 通过环境变量或标准支持Kaggle凭据 kaggle.json 文件。
  • 在本地、Docker中或通过Smithery运行。

可用MCP功能

工具

search_kaggle_datasets(query: str)

在Kaggle中搜索匹配的数据集 query 并以JSON格式返回多达10个结果。

返回的字段包括:

  • ref
  • title
  • subtitle
  • download_count
  • last_updated
  • usability_rating

download_kaggle_dataset(dataset_ref: str, download_path: str | None = None)

下载并解压缩Kaggle数据集。

  • dataset_ref:Kaggle数据集参考 owner/dataset-slug 格式,例如 kaggle/titanic.
  • download_path:可选的本地输出路径。如果省略,文件将保存到 ./datasets/<dataset_slug>/.

提示

generate_eda_notebook(dataset_ref: str)

为提供的Kaggle数据集参考创建生成基本Python EDA代码的提示。提示要求进行数据加载、缺失值检查、可视化和摘要统计。

需求

  • Python 3.10+
  • Kaggle账户和API代币
  • MCP兼容客户端

Kaggle证书

从您的Kaggle帐户设置创建Kaggle API令牌:

  1. 首选 https://www.kaggle.com/settings.
  2. 选择 创建新的API令牌.
  3. 下载 kaggle.json.

使用环境变量或标准Kaggle配置文件。

选项1:环境变量

创建 .env 项目根目录中的文件:

KAGGLE_USERNAME=your_kaggle_username
KAGGLE_KEY=your_kaggle_api_key

选项2: kaggle.json

地方 kaggle.json 在Kaggle的标准位置:

  • macOS/Linux: ~/.kaggle/kaggle.json
  • 窗户: C:\Users\<Your User Name>\.kaggle\kaggle.json

在macOS/Linux上,请确保文件不是全球可读的:

chmod 600 ~/.kaggle/kaggle.json

安装

git clone <repository-url>
cd kaggle-mcp

创建并激活虚拟环境:

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

使用以下方法之一安装依赖项。

使用紫外线

uv sync

使用pip

pip install -r requirements.txt

本地运行

随着 uv:

uv run kaggle-mcp

或者直接运行服务器模块:

python src/server.py

服务器通过MCP stdio进行通信,旨在由MCP客户端启动。

Claude桌面配置

打开克劳德桌面设置,然后转到 开发者 > 编辑配置 并将此服务器添加到 claude_desktop_config.json.

如果安装在项目环境中:

{
  "mcpServers": {
    "kaggle-mcp": {
      "command": "uv",
      "args": ["run", "kaggle-mcp"],
      "cwd": "/absolute/path/to/kaggle-mcp",
      "env": {
        "KAGGLE_USERNAME": "your_kaggle_username",
        "KAGGLE_KEY": "your_kaggle_api_key"
      }
    }
  }
}

如果使用 kaggle.json,您可以省略 env 块。

码头工人

塑造形象:

docker build -t kaggle-mcp .

使用来自的凭据运行 .env:

docker run --rm -i --env-file .env kaggle-mcp

史密瑟里

此存储库包括 smithery.yaml.Smithery通过stdio启动服务器,并将这些配置值作为环境变量传递:

  • kaggleUsername -> KAGGLE_USERNAME
  • kaggleKey -> KAGGLE_KEY

工作流示例

  1. 询问您的MCP客户:“在Kaggle中搜索心脏病数据集。”
  2. 客户来电 search_kaggle_datasets.
  3. 从结果中选择一个数据集引用,例如 user/heart-disease-dataset.
  4. 询问:“下载 user/heart-disease-dataset."
  5. 询问:“生成EDA笔记本提示 user/heart-disease-dataset."

项目结构

.
├── Dockerfile
├── README.md
├── pyproject.toml
├── requirements.txt
├── smithery.yaml
├── src/
│   ├── __init__.py
│   └── server.py
└── uv.lock

下载的数据集保存在 datasets/ 默认情况下。此目录是在运行时请求下载时创建的。