Kaggle MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KAGGLE_API_TOKEN | No | Your Kaggle API token (e.g. KGAT_xxxxxxxxxxxx). Create one at https://www.kaggle.com/settings → API → Create New API Token. Alternatively, you can authenticate by placing a kaggle.json file at ~/.kaggle/kaggle.json. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| benchmark_leaderboardB | Get the leaderboard for a Kaggle benchmark. |
| competitions_listA | Search and list Kaggle competitions. |
| competition_filesA | List data files for a competition. |
| competition_downloadB | Download competition data files. Returns download URL. |
| competition_submitB | Submit predictions to a competition. |
| competition_submissionsA | View submission history for a competition. |
| competition_leaderboardC | View competition leaderboard (top 20). |
| competition_getB | Get detailed competition info. |
| competition_data_summaryA | Get data files summary for a competition. |
| competition_get_submissionB | Get details for a single submission. |
| competition_leaderboard_downloadA | Download the full competition leaderboard. Returns download URL. |
| datasets_listB | Search and list Kaggle datasets. |
| dataset_filesB | List files in a dataset. |
| dataset_downloadB | Download dataset files. Returns download URL. |
| dataset_metadataC | Get dataset metadata. |
| dataset_createA | Create a new dataset. Use file_upload first to get file tokens. |
| file_uploadA | Upload a file to Kaggle and get a token for dataset_create. |
| dataset_getA | Get full dataset info. |
| dataset_create_versionA | Create a new version of an existing dataset. |
| dataset_update_metadataB | Update dataset metadata (title, description, license). |
| dataset_deleteC | Delete a dataset. |
| dataset_download_fileB | Download a single file from a dataset. Returns download URL. |
| kernels_listB | Search and list Kaggle notebooks/kernels. |
| kernel_pullC | Get a notebook's source code. |
| kernel_pushC | Push/save a notebook to Kaggle. |
| kernel_outputC | Download competition data files. Returns download URL. |
| kernel_session_createC | Create an interactive kernel session. |
| kernel_session_statusC | Get status of a kernel session. |
| kernel_session_outputB | List output files from a kernel session. |
| kernel_session_cancelC | Cancel a running kernel session. |
| competition_top_kernelsA | List top public kernels/notebooks for a competition, sorted by public score. |
| models_listA | Search and list Kaggle models. |
| model_getC | Get detailed information about a specific model. |
| model_createB | Create a new Kaggle model. |
| model_updateA | Update an existing Kaggle model. |
| model_deleteB | Delete a Kaggle model. |
| model_instances_listA | List all instances of a Kaggle model. |
| model_instance_getB | Get details of a specific model instance. |
| model_instance_createB | Create a new instance for a Kaggle model. |
| model_instance_versionsB | List all versions of a model instance. |
| model_instance_version_createC | Create a new version for a model instance. |
| discussions_searchA | Search Kaggle discussions. |
| discussions_listA | List discussions for a competition or dataset. |
| discussion_detailA | Get discussion content by ID. |
| discussion_commentsB | Get comments for a discussion. |
| discussion_comments_searchB | Search comments across all Kaggle discussions. |
| discussions_by_sourceB | Browse discussions by source type. |
| discussions_solutionsB | Browse competition solution write-ups. |
| discussions_writeupsA | Browse Kaggle write-ups by type. |
| discussions_trendingB | Browse trending discussions sorted by hotness. |
| discussions_myB | List the current user's discussions. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 51 tools
Multiple tools have overlapping purposes: discussions_trending, discussions_search, discussions_list, discussions_by_source, discussions_solutions, and discussions_writeups all retrieve discussion content with subtle differences; competition_leaderboard vs competition_leaderboard_download also confuse. Kernel_output's description mismatches its name, further muddying tool selection.
Names mostly follow snake_case with domain prefixes (competition_, dataset_, model_), but plural/singular inconsistency exists (discussions_* vs discussion_*; competitions_list vs competition_leaderboard). Some tool names are less predictable (kernel_output, file_upload), though the overall pattern remains readable.
51 tools is extreme over-provisioning for an MCP server and exceeds the 50+ threshold for severe mismatch. Even for Kaggle's broad surface, many tools could be consolidated (e.g., six discussion-listing variants), making the set unwieldy.
The server covers CRUD for datasets and models, plus competition submissions, kernel sessions, and discussion reading. Minor gaps exist (no update/delete for model instances, no discussion posting/reply), but core workflows are supported.