使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于为大型语言模型(LLM)应用提供访问 Kaggle 数据集的能力。它通过 MCP 协议标准化的工具 (Tools)Prompt 模板 (Prompts),使得 LLM 客户端可以方便地搜索、下载 Kaggle 数据集,并生成用于探索性数据分析(EDA)的 Prompt,从而简化了 LLM 应用与 Kaggle 数据集的集成和交互过程。

主要功能点

  • 数据集搜索工具 (search_kaggle_datasets): 允许用户通过关键词在 Kaggle 上搜索数据集,并返回包含数据集标题、描述、下载量等信息的 JSON 列表。
  • 数据集下载工具 (download_kaggle_dataset): 根据数据集引用 (dataset_ref) 下载指定的 Kaggle 数据集到服务器本地,并自动解压。
  • EDA Prompt 生成 (generate_eda_notebook): 为指定 Kaggle 数据集生成一个用于创建 EDA Notebook 的 Prompt,指导 LLM 生成 Python 代码,进行数据加载、缺失值检查、可视化和基本统计分析。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/arrismo/kaggle-mcp
    cd kaggle-mcp
  2. 创建并激活虚拟环境 (推荐):

    python -m venv venv
    source venv/bin/activate  # Linux/macOS
    # venv\Scripts\activate  # Windows
  3. 安装依赖:

    pip install -r requirements.txt
  4. 配置 Kaggle API 凭证:

    • 方法 1 (推荐): 环境变量
      • 复制 '.env.example' 文件并重命名为 '.env'。
      • 打开 '.env' 文件,填入你的 Kaggle 用户名和 API 密钥。API 密钥可以在 Kaggle 个人账户页面的 "Account" -> "API" -> "Create New API Token" 中生成。
      KAGGLE_USERNAME=your_kaggle_username
      KAGGLE_KEY=your_kaggle_api_key
    • 方法 2: 'kaggle.json' 文件
      • 从 Kaggle 账户下载 'kaggle.json' 文件。
      • 将 'kaggle.json' 文件放置在指定路径,通常为 '~/.kaggle/kaggle.json' (Linux/macOS) 或 'C:\Users<Your User Name>.kaggle\kaggle.json' (Windows)。

服务器配置

以下 JSON 配置信息用于 MCP 客户端 (如 Claude Desktop) 连接到 Kaggle MCP Server。您需要根据实际情况修改 '<path to kaggle-mcp/server.py>' 和 '<path to dataset folder in repository>' 为服务器脚本 'server.py' 的绝对路径和数据集存储目录的绝对路径。

{
  "mcpServers": {
    "kaggle-mcp": {
      "command": "uv",
      "args": [
        "run",
        "<path to kaggle-mcp/server.py>"  // 修改为 server.py 脚本的绝对路径
      ],
      "cwd": "<path to dataset folder in repository>" // 修改为数据集存储目录的绝对路径 (例如,仓库目录下的 datasets 文件夹)
    }
  }
}

基本使用方法

  1. 启动服务器: 在虚拟环境激活状态下,运行以下命令启动 MCP 服务器:

    mcp run server.py

    服务器启动后,将注册资源、工具和 Prompt,并等待 MCP 客户端连接。

  2. 客户端交互: 使用 MCP 客户端 (例如配置 Claude Desktop 后),即可通过自然语言指令或客户端界面调用服务器提供的工具和 Prompt。例如:

    • 客户端指令: "Search Kaggle for datasets about 'heart disease'"

      • 服务器执行: 'search_kaggle_datasets(query='heart disease')',返回 Kaggle 上关于心脏病数据集的搜索结果。
    • 客户端指令: "Download the dataset 'user/heart-disease-dataset'"

      • 服务器执行: 'download_kaggle_dataset(dataset_ref='user/heart-disease-dataset')',下载并解压该数据集到服务器本地目录。
    • 客户端指令: "Generate an EDA notebook prompt for 'user/heart-disease-dataset'"

      • 服务器执行: 'generate_eda_notebook(dataset_ref='user/heart-disease-dataset')',返回一个用于生成 EDA Notebook 的 Prompt 消息。
    • 客户端获取 Prompt 后,可以将其发送给代码生成模型,生成相应的 EDA Python 代码。

信息

分类

AI与计算