Kaggle

Interaja com a API do Kaggle para acessar datasets, notebooks e competições.

Documentação

Kaggle MCP Server

Servidor MCP do Kaggle

Um servidor Model Context Protocol (MCP) que expõe busca, download e geração de prompts de EDA de datasets do Kaggle para clientes MCP, como o Claude Desktop.

Recursos

  • Busca datasets do Kaggle por palavra-chave.
  • Baixa e descompacta datasets do Kaggle localmente.
  • Gera um prompt inicial de Análise Exploratória de Dados (EDA) para um dataset do Kaggle.
  • Suporta credenciais do Kaggle via variáveis de ambiente ou o arquivo kaggle.json padrão.
  • Executa localmente, em Docker ou via Smithery.

Capacidades MCP Disponíveis

Ferramentas

search_kaggle_datasets(query: str)

Busca no Kaggle datasets que correspondem a query e retorna até 10 resultados em JSON.

Os campos retornados incluem:

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

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

Baixa e descompacta um dataset do Kaggle.

  • dataset_ref: Referência do dataset do Kaggle no formato owner/dataset-slug, por exemplo kaggle/titanic.
  • download_path: Caminho de saída local opcional. Se omitido, os arquivos são salvos em ./datasets/<dataset_slug>/.

Prompts

generate_eda_notebook(dataset_ref: str)

Cria um prompt para gerar código Python básico de EDA para a referência de dataset do Kaggle fornecida. O prompt solicita carregamento de dados, verificação de valores ausentes, visualizações e estatísticas resumidas.

Requisitos

  • Python 3.10+
  • Conta no Kaggle e token de API
  • Um cliente compatível com MCP

Credenciais do Kaggle

Crie um token de API do Kaggle nas configurações da sua conta:

  1. Acesse https://www.kaggle.com/settings.
  2. Selecione Create New API Token.
  3. Baixe o kaggle.json.

Use variáveis de ambiente ou o arquivo de configuração padrão do Kaggle.

Opção 1: Variáveis de ambiente

Crie um arquivo .env na raiz do projeto:

KAGGLE_USERNAME=your_kaggle_username
KAGGLE_KEY=your_kaggle_api_key

Opção 2: kaggle.json

Coloque o kaggle.json no local padrão do Kaggle:

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

No macOS/Linux, certifique-se de que o arquivo não seja legível por outros usuários:

chmod 600 ~/.kaggle/kaggle.json

Instalação

git clone <repository-url>
cd kaggle-mcp

Crie e ative um ambiente virtual:

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

Instale as dependências com um dos seguintes métodos.

Usando uv

uv sync

Usando pip

pip install -r requirements.txt

Executando Localmente

Com uv:

uv run kaggle-mcp

Ou execute o módulo do servidor diretamente:

python src/server.py

O servidor se comunica via MCP stdio e deve ser iniciado por um cliente MCP.

Configuração do Claude Desktop

Abra as configurações do Claude Desktop, vá em Developer > Edit Config e adicione este servidor ao claude_desktop_config.json.

Se instalado no ambiente do projeto:

{
  "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"
      }
    }
  }
}

Se estiver usando kaggle.json, você pode omitir o bloco env.

Docker

Construa a imagem:

docker build -t kaggle-mcp .

Execute com credenciais do .env:

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

Smithery

Este repositório inclui smithery.yaml. O Smithery inicia o servidor via stdio e passa esses valores de configuração como variáveis de ambiente:

  • kaggleUsername -> KAGGLE_USERNAME
  • kaggleKey -> KAGGLE_KEY

Exemplo de Fluxo de Trabalho

  1. Peça ao seu cliente MCP: "Pesquise no Kaggle por datasets de doenças cardíacas."
  2. O cliente chama search_kaggle_datasets.
  3. Escolha uma referência de dataset dos resultados, por exemplo user/heart-disease-dataset.
  4. Peça: "Baixe user/heart-disease-dataset."
  5. Peça: "Gere um prompt de notebook EDA para user/heart-disease-dataset."

Estrutura do Projeto

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

Datasets baixados são salvos em datasets/ por padrão. Este diretório é criado em tempo de execução quando downloads são solicitados.