返回市场
Kaggle-MCP

Kaggle-MCP

作者:arrismo31 星标更新:2025-08-25

项目介绍

smithery 徽章 <a href="https://glama.ai/mcp/servers/arwswog1el"><img width="380" height="200" src="https://gips0.baidu.com/it/u=412082889,3909528885&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Kaggle MCP 服务器" /></a>

Kaggle MCP(模型上下文协议)服务器

此仓库包含一个使用 fastmcp 库构建的 MCP(模型上下文协议)服务器(server.py)。它通过与 Kaggle API 交互提供搜索和下载数据集的工具以及生成 EDA 笔记本的提示。

项目结构

  • server.py: 快速 MCP 服务器应用程序。定义了与 Kaggle 交互的资源、工具和提示。
  • .env.example: 环境变量示例文件(Kaggle API 凭证)。重命名为 .env 并填写您的详细信息。
  • requirements.txt: 列出了必要的 Python 包。
  • pyproject.toml & uv.lock: 项目元数据和 uv 包管理器锁定的依赖项。
  • datasets/: 下载的 Kaggle 数据集默认存储目录。

设置

  1. 克隆仓库:

    git clone <仓库地址>
    cd <仓库目录>
    
  2. 创建虚拟环境(推荐):

    python -m venv venv
    source venv/bin/activate  # 在 Windows 上使用 `venv\Scripts\activate`
    # 或者使用 uv: uv venv
    
  3. 安装依赖项: 使用 pip:

    pip install -r requirements.txt
    

    或者使用 uv:

    uv sync
    
  4. 设置 Kaggle API 凭证:

    • 方法 1(推荐):环境变量
      • 创建 .env 文件
      • 打开 .env 文件并添加您的 Kaggle 用户名和 API 密钥:
        KAGGLE_USERNAME=您的_kaggle_用户名
        KAGGLE_KEY=您的_kaggle_api_密钥
        
      • 您可以从您的 Kaggle 账户页面(账户 > API > 创建新 API 令牌)获取 API 密钥。这将下载一个包含您的用户名和密钥的 kaggle.json 文件。
    • 方法 2:kaggle.json 文件
      • 从您的 Kaggle 账户下载 kaggle.json 文件。
      • kaggle.json 文件放置在预期位置(通常在 Linux/macOS 上是 ~/.kaggle/kaggle.json,在 Windows 上是 C:\Users\<您的用户名>\.kaggle\kaggle.json)。如果未设置环境变量,kaggle 库会自动检测此文件。

运行服务器

  1. 确保您的虚拟环境处于活动状态。
  2. 运行 MCP 服务器:
    uv run kaggle-mcp
    
    服务器将启动并注册其资源、工具和提示。您可以使用 MCP 客户端或兼容工具与其进行交互。

运行 Docker 容器

1. 设置 Kaggle API 凭证

此项目需要 Kaggle API 凭证以访问 Kaggle 数据集。

  • 访问 https://www.kaggle.com/settings 并点击“创建新 API 令牌”以下载您的 kaggle.json 文件。
  • 打开 kaggle.json 文件并将您的用户名和密钥复制到项目根目录中的新 .env 文件中:
KAGGLE_USERNAME=您的用户名
KAGGLE_KEY=您的密钥

2. 构建 Docker 镜像

docker build -t kaggle-mcp-test .

3. 使用您的 .env 文件运行 Docker 容器

docker run --rm -it --env-file .env kaggle-mcp-test

这将在容器内自动加载您的 Kaggle 凭证作为环境变量。


服务器功能

该服务器通过模型上下文协议提供了以下功能:

工具

  • search_kaggle_datasets(query: str):
    • 在 Kaggle 上搜索与提供的查询字符串匹配的数据集。
    • 返回一个 JSON 列表,其中包含前 10 个匹配的数据集及其详细信息,如引用、标题、下载次数和最后更新日期。
  • download_kaggle_dataset(dataset_ref: str, download_path: str | None = None):
    • 下载并解压特定 Kaggle 数据集的文件。
    • dataset_ref: 数据集标识符,格式为 用户名/数据集别名(例如,kaggle/titanic)。
    • download_path(可选):指定下载数据集的位置。如果省略,默认为 ./datasets/<数据集别名>/ 相对于服务器脚本的位置。

提示

  • generate_eda_notebook(dataset_ref: str):
    • 生成适合 AI 模型(如 Gemini)创建指定 Kaggle 数据集参考的基本探索性数据分析(EDA)笔记本的提示消息。
    • 提示要求 Python 代码涵盖数据加载、缺失值检查、可视化和基本统计。

连接到 Claude Desktop

前往 Claude > 设置 > 开发者 > 编辑配置 > claude_desktop_config.json,包括以下内容:

{
  "mcpServers": {
    "kaggle-mcp": {
      "command": "kaggle-mcp",
      "cwd": "<克隆仓库路径>/kaggle-mcp"
    }
  }
}

使用示例

AI 代理或 MCP 客户端可以这样与该服务器交互:

  1. 代理: “在 Kaggle 上搜索关于‘心脏病’的数据集”
    • 服务器执行 search_kaggle_datasets(query='心脏病')
  2. 代理: “下载数据集‘用户/心脏病数据集’”
    • 服务器执行 download_kaggle_dataset(dataset_ref='用户/心脏病数据集')
  3. 代理: “为‘用户/心脏病数据集’生成 EDA 笔记本提示”
    • 服务器执行 generate_eda_notebook(dataset_ref='用户/心脏病数据集')
    • 服务器返回结构化的提示消息。
  4. 代理: (将提示发送给代码生成模型)-> 接收 EDA Python 代码。