Kaggle
Interaja com a API do Kaggle para acessar datasets, notebooks e competições.
Documentação
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.jsonpadrã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:
reftitlesubtitledownload_countlast_updatedusability_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 formatoowner/dataset-slug, por exemplokaggle/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:
- Acesse https://www.kaggle.com/settings.
- Selecione Create New API Token.
- 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_USERNAMEkaggleKey->KAGGLE_KEY
Exemplo de Fluxo de Trabalho
- Peça ao seu cliente MCP: "Pesquise no Kaggle por datasets de doenças cardíacas."
- O cliente chama
search_kaggle_datasets. - Escolha uma referência de dataset dos resultados, por exemplo
user/heart-disease-dataset. - Peça: "Baixe
user/heart-disease-dataset." - 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.