Skip to content
Agentmart
Submit a tool

Kaggle MCP

MCP server for the Kaggle API: competitions, datasets, kernels, and models.

Connector by Seif-Sameh · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)
Write a review

Chalk Labs

Need help deploying Kaggle MCP?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/seif-sameh-kaggle-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

MCP server for the Kaggle API: competitions, datasets, kernels, and models.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
14 read · 18 write · 3 delete · 4 not yet classified
Secrets
1 (API keys, tokens or passwords)
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 39

Read from the source code; the running server may list different tools.

Read 14 · Look things up without changing anything.

  • competition_leaderboard_view
  • competition_list_files
  • competition_submissions
  • competitions_list
  • dataset_list_files
  • dataset_status
  • datasets_list
  • kernel_list_files
  • kernel_status
  • kernels_list
  • model_get
  • model_instance_get
Show 2 more tools
  • model_instance_version_files
  • models_list

Write 18 · Create, change, send or run things.

  • competition_download_file
  • competition_download_files
  • competition_leaderboard_download
  • competition_submit
  • dataset_create
  • dataset_create_version
  • dataset_download_file
  • dataset_download_files
  • dataset_metadata
  • kernel_output
  • kernel_pull
  • kernel_push
Show 6 more tools
  • model_create
  • model_instance_create
  • model_instance_update
  • model_instance_version_create
  • model_instance_version_download
  • model_update

Delete 3 · Delete, drop, revoke or wipe things.

  • model_delete
  • model_instance_delete
  • model_instance_version_delete

Not yet classified 4 · We could not tell from the name and description.

  • dataset_initialize
  • kernel_initialize
  • model_initialize
  • model_instance_initialize

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • KAGGLE_API_KEY

Other settings (environment variables or headers).

  • KAGGLE_USERNAME

Files it touches

  • Any path the agent passes to its tools

Tools (39)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • competition_download_file

    Download a specific file from a Kaggle competition. Parameters ---------- competition : str Competition identifier or name file_name : str Name of the file to download path : str, optional Local directory to save the file (default: current directory) force : bool, optional Overwrite existing file if True (default: False) quiet : bool, optional Suppress progress messages if True (default: True) Returns ------- dict { "status": "success" | "error", "message": str, "competition": str, "file_name": str, "saved_path": str (only if su…

  • competition_download_files

    Download all files from a Kaggle competition. Parameters ---------- competition : str Competition identifier or name path : str, optional Local directory to save files (default: current directory) force : bool, optional Overwrite existing files if True (default: False) quiet : bool, optional Suppress progress messages if True (default: True) Returns ------- dict { "status": "success" | "error", "message": str, "competition": str, "saved_path": str (only if success) }

  • competition_leaderboard_download

    Download the leaderboard data for a Kaggle competition to a local file. Parameters ---------- competition: str The unique identifier or name of the Kaggle competition to download the leaderboard from. path: str The local file system path where the leaderboard file should be saved. quiet: bool, optional If True, suppresses progress messages and status updates during download. Default: True Returns ------- dict { "status": "success" | "error", "message": str, "competition": str }

  • competition_leaderboard_view

    Retrieve the current leaderboard for a Kaggle competition. Parameters ---------- competition: str The unique identifier or name of the competition Returns ------- dict { "status": "success" | "error", "message": str, "competition": str, "data": list (only if success) }

  • competition_list_files

    List files available in a Kaggle competition. Parameters ---------- competition : str Competition identifier or name page_token : str, optional Pagination token (default: None) page_size : int, optional Number of files per page (default: 20, range: 1–100) Returns ------- dict { "status": "success" | "error", "message": str, "files": list (only if success) }

  • competition_submissions

    Get a list of all the submissions for a particular competition. Parameters ---------- competition : str The unique identifier or name of the competition group : str, optional Filter submissions by group. Valid groups include: - 'general' - Default competition submissions - 'entered' - Only submissions you have entered - 'community' - Community competition submissions - 'hosted' - Hosted competition submissions - 'unlaunched' - Unlaunched competition submissions - 'unlaunched_community' - Unlaunched community competition submissions Default: None (no group f…

  • competition_submit

    Submit a file to a Kaggle competition. Parameters ---------- file_name : str Path to the submission file message : str Description or notes for the submission competition : str Competition identifier or name quiet : bool, optional Suppress progress messages if True (default: False) Returns ------- dict { "status": "success" | "error", "message": str, "competition": str, "submission_ref": str (only if success) }

  • competitions_list

    List Kaggle competitions with optional filtering. Parameters ---------- page : int, optional Page number to retrieve (default: 1) search : str, optional Search term to filter results Returns ------- dict { "status": "success" | "error", "message": str, "competitions": list # Present only on success }

  • dataset_create

    Create a new Kaggle dataset from a local folder with metadata configuration. Parameters ---------- folder: str Path to the folder containing the dataset files and metadata.json public: bool, optional Whether to make the dataset publicly accessible Default: False quiet: bool, optional Whether to suppress progress and status messages Default: False convert_to_csv: bool, optional Whether to automatically convert compatible files to CSV format Default: True dir_mode: str, optional How to handle directories in the dataset: - 'skip': Ignore directories (defau…

  • dataset_create_version

    Create a new version of an existing Kaggle dataset. Parameters ---------- folder: str Path to the folder containing dataset files and configuration version_notes: str Description of changes in this version quiet: bool, optional Whether to suppress progress and status messages Default: False convert_to_csv: bool, optional Whether to automatically convert compatible files to CSV format Default: True delete_old_versions: bool, optional Whether to remove previous versions of this dataset Default: False dir_mode: str, optional How to handle directories in t…

  • dataset_download_file

    Download a specific file from a Kaggle dataset to a local directory. Parameters ---------- dataset: str The unique identifier of the dataset in the format 'owner/dataset-name' file_name: str The name of the file to download from the dataset path: str, optional The local directory path where the file should be saved If not specified, downloads to the current working directory force: bool, optional Whether to overwrite the file if it already exists locally Default: False quiet: bool, optional Whether to suppress download progress and status messages Default: …

  • dataset_download_files

    Download all files from a Kaggle dataset to a local directory. Parameters ---------- dataset: str The unique identifier of the dataset in the format 'owner/dataset-name' Example: 'netflix/netflix-prize-data' or 'google/covid-19-open-data' path: str, optional Local directory path where dataset files will be saved If not specified, downloads to current working directory force: bool, optional Whether to overwrite files if they already exist locally Default: False quiet: bool, optional Whether to suppress download progress messages Default: True license…

  • dataset_initialize

    Initialize a new Kaggle dataset in a local folder with metadata configuration. Parameters ---------- folder: str Path to the folder where dataset files and metadata.json are located or will be created. Returns ------- dict { "status": "success" | "error", "message": <confirmation or error message> }

  • dataset_list_files

    Retrieve a list of all files contained within a specific Kaggle dataset. Parameters ---------- dataset : str The unique identifier of the dataset in the format 'owner/dataset-name' Example: 'netflix/netflix-prize-data' page_token : str, optional Token for paginating through results when there are multiple pages (default: None) page_size : int, optional Number of files to return per page (default: 20, range: 1–100) Returns ------- dict { "status": "success" | "error", "message": str, "files": list (only if success) }

  • dataset_metadata

    Download the metadata file for a dataset. Parameters ---------- dataset : str Dataset URL suffix in format <owner>/<dataset-name> path : str, optional Local directory path where metadata will be saved (default: current working directory) Returns ------- dict { "status": "success" | "error", "message": str }

Show 24 more tools
  • dataset_status

    Get the status of a dataset. Only for your own datasets. Parameters ---------- dataset : str Dataset URL suffix in format <owner>/<dataset-name> (use "kaggle datasets list" to show options) Returns ------- dict { "status": "success" | "error", "message": str, "dataset_status": dict (only if success) }

  • datasets_list

    Return a list of datasets. Parameters ---------- sort_by: str How to sort the result. Valid options are: - 'hottest': Sort by trending/popularity - 'votes': Sort by number of votes - 'updated': Sort by last update date - 'active': Sort by active status - 'published': Sort by publication date file_type: str The format of datasets to filter by. Valid options are: - 'all': Show all file types - 'csv': Show only CSV files - 'sqlite': Show only SQLite databases - 'json': Show only JSON files - 'bigQuery': Show only BigQuery datasets license_name: s…

  • kernel_initialize

    Initialize kernel metadata configuration in a specified folder. Parameters ---------- folder: str Path to the directory where kernel metadata will be created. Creates kernel-metadata.json with default configuration values. Returns ------- dict { "status": "success" | "error", "message": str, "data": dict (optional, typically empty) }

  • kernel_list_files

    List files associated with a specific Kaggle kernel. Parameters ---------- kernel: str Kernel identifier in format 'owner/kernel-name'. Example: 'username/my-analysis'. page_token: str, optional Token for pagination through results. Default: None page_size: int, optional Number of files to return per page. Default: 20 Returns ------- dict { "status": "success" | "error", "message": str, "data": list of file metadata (if successful) }

  • kernel_output

    Download the execution output files from a Kaggle kernel. Parameters ---------- kernel: str Kernel identifier in format 'owner/kernel-name'. path: str Local directory path where output files will be saved. force: bool, optional Whether to overwrite existing output files. Default: False. quiet: bool, optional Whether to suppress progress messages. Default: True. Returns ------- dict { "status": "success" | "error", "message": str, "kernel": str, "saved_path": str (only if success) }

  • kernel_pull

    Download a Kaggle kernel and its files to a local directory. Parameters ---------- kernel : str Kernel identifier in format 'owner/kernel-name'. path : str Local directory path where kernel files will be downloaded. metadata : bool, optional Whether to download kernel-metadata.json file. Default: False quiet : bool, optional Whether to suppress progress messages. Default: True Returns ------- dict { "status": "success" | "error", "message": str, "kernel": str, "saved_path": str (only if success) }

  • kernel_push

    Push a Kaggle kernel and its metadata from a local folder. This tool validates the specified kernel directory, ensures the required metadata file exists, and then pushes the kernel to Kaggle using the Kaggle API. It returns structured status information instead of raising exceptions, allowing LLMs or external systems to interpret results programmatically. Parameters ---------- folder : str Path to the directory containing: - kernel-metadata.json - Kernel notebook or script files. timeout : int, optional Maximum execution time in seconds. Default is None (no timeout). Return…

  • kernel_status

    Get the status of a Kaggle kernel. Parameters ---------- kernel: str Kernel identifier in format 'owner/kernel-name'. Returns ------- dict { "status": "success" | "error", "message": str, "kernel": str, "data": dict (kernel status info, if success) }

  • kernels_list

    Search and list Kaggle kernels based on specified criteria. Parameters ---------- page: int, optional Page number of results to return. Default: 1 page_size: int, optional Number of results per page. Default: 20 search: str, optional Custom search query string. competition: str, optional Filter kernels to a specific competition. dataset: str, optional Filter kernels to a specific dataset in format 'owner/dataset-name'. user: str, optional Filter kernels to a specific username. mine: bool, optional If True, show only your own kernels. Default: False language:…

  • model_create

    Create a new model on Kaggle using metadata from a local folder. Parameters ---------- folder : str Absolute path to the folder containing model-metadata.json and model assets. Returns ------- dict { "status": "success" | "error", "message": str, "data": dict (API response with model id, ref, url, etc.) }

  • model_delete

    Delete a model from Kaggle. Parameters ---------- model: str Model identifier in format 'owner/model-name'. confirmation: bool Must be True to confirm deletion. Returns ------- dict { "status": "success" | "error", "message": str, "model": str, "data": dict (API response if available) }

  • model_get

    Retrieve metadata and details for a specific Kaggle model, and save it as a JSON file. Parameters ---------- model: str Model identifier in format 'owner/model-name'. Example: 'google/bert' or 'username/custom-model'. path: str, optional Directory path where the JSON file ('model-metadata.json') will be saved. Default: current working directory. Returns ------- dict { "status": "success" | "error", "message": str, "model": str, "data": dict (model metadata if success), "file_path": str (path to saved JSON file if success) } Si…

  • model_initialize

    Initialize model metadata configuration in a specified folder. Parameters ---------- folder: str Path to the directory where model metadata will be created. Returns ------- dict { "status": "success" | "error", "message": str, "data": dict (optional, typically empty) } Side Effects ------------ Creates the model-metadata.json file with default configuration in the specified directory.

  • model_instance_create

    Create a new model instance on Kaggle using metadata from a local folder. Parameters ---------- folder : str Path to the folder containing model-instance-metadata.json and model assets. quiet: bool, optional Whether to suppress progress and status messages. Default: False dir_mode: str, optional How to handle directories in the model instance: - 'skip': Ignore directories (default) - 'zip': Compress directories and upload as zip files Default: 'skip' Returns ------- dict { "status": "success" | "error", "message": str, "data": dict (API r…

  • model_instance_delete

    Delete a model instance from Kaggle. Parameters ---------- model_instance: str Model instance identifier in format 'owner/model-name/framework/instance-slug'. confirmation: bool Must be True to confirm deletion. Returns ------- dict { "status": "success" | "error", "message": str, "model_instance": str, "data": dict (API response if available) }

  • model_instance_get

    Retrieve details of a specific model instance from Kaggle and save as JSON. Parameters ---------- model_instance: str Model instance identifier in format 'owner/model-name/framework/instance-slug'. path: str, optional Directory path where 'model-instance-metadata.json' will be saved. Default: current working directory. Returns ------- dict { "status": "success" | "error", "message": str, "model_instance": str, "data": dict (metadata if success), "file_path": str (path to saved JSON if success) } Side Effects ------------ Creates '…

  • model_instance_initialize

    Initialize model instance metadata configuration in a specified folder. Parameters ---------- folder: str Path to the directory where model instance metadata will be created. Returns ------- dict { "status": "success" | "error", "message": str, "data": dict (optional, typically empty) } Side Effects ------------ Creates the model instance metadata file with default configuration in the specified directory.

  • model_instance_update

    Update an existing model instance using metadata from a local folder. Parameters ---------- folder: str Path to the folder containing model-instance-metadata.json and updated assets. Returns ------- dict { "status": "success" | "error", "message": str, "data": dict (API response with id, ref, url, etc.) }

  • model_instance_version_create

    Create a new version of an existing model instance. Parameters ---------- model_instance: str Model instance identifier in format 'owner/model-name/framework/instance-slug'. folder: str Path to folder containing model instance files and metadata. version_notes: str, optional Description of changes in this version. Default: ''. quiet: bool, optional Whether to suppress progress messages. Default: False. dir_mode: str, optional How to handle directories: - 'skip': Ignore directories (default) - 'zip': Compress and upload as zip files. Default: 'skip'. Returns --…

  • model_instance_version_delete

    Delete a specific version of a model instance from Kaggle. Parameters ---------- model_instance_version: str Model instance version identifier in format 'owner/model-name/framework/instance-slug/version-number'. confirmation: bool Must be True to confirm deletion. Returns ------- dict { "status": "success" | "error", "message": str, "model_instance_version": str, "data": dict (API response if available) }

  • model_instance_version_download

    Download all files for a model instance version to a local directory. Parameters ---------- model_instance_version: str Model instance version identifier in format 'owner/model-name/framework/instance-slug/version-number'. path: str, optional Local directory path where version files will be downloaded. If not specified, downloads to current working directory. force: bool, optional Whether to overwrite files if they already exist locally. Default: False. quiet: bool, optional Whether to suppress progress and status messages. Default: True. untar: bool, optional Whet…

  • model_instance_version_files

    List all files contained in a specific model instance version. Parameters ---------- model_instance_version: str Model instance version identifier in format 'owner/model-name/framework/instance-slug/version-number'. page_token: str, optional Token for paginating through results when there are multiple pages. Default: None. page_size: int, optional Number of files to return per page. Default: 20. csv_display: bool, optional Whether to format output as comma-separated values instead of table format. Default: False. Returns ------- dict { "status": "success" | "er…

  • model_update

    Update an existing model on Kaggle using metadata from a local folder. Parameters ---------- folder : str Absolute path to the folder containing model-metadata.json and model assets. Returns ------- dict { "status": "success" | "error", "message": str, "data": dict (API response with model id, ref, url, etc.) }

  • models_list

    Search and list Kaggle models based on specified criteria. Parameters ---------- sort_by: str, optional Sort results criteria. Valid options: - 'hotness': trending/popularity - 'downloadCount': number of downloads - 'voteCount': number of votes - 'notebookCount': number of notebooks - 'createTime': creation date search: str, optional Search term to filter results. Default: None owner: str, optional Username or organization to filter models by. page_size: int, optional Number of results per page. Default: 20 page_token: str, optional Token for pagina…

Signals

Stars
0
Forks
0
Open issues
1
Weekly downloads
34
Last commit
Jun 12, 2026 (4 months ago)
Last release
Jun 12, 2026 (4 months ago)
Last package publish
Jun 11, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.Seif-Sameh/Kaggle-mcp
Version
0.1.1
Auth
API key
Packages
pypi mcp-server-kaggle
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get Kaggle MCP running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying Kaggle MCP?

CallGet help
Cite this page

Kaggle MCP. Agent Mart. https://agentmart.dev/connectors/seif-sameh-kaggle-mcp (last updated 2026-10-24)