Skip to main content
Glama
MikeyBeez
by MikeyBeez

mcp-kaggle-tool

MCP server for Kaggle API integration - create, run, and manage Kaggle notebooks programmatically.

🚀 Features

  • ✅ Authentication check for Kaggle API

  • 📝 Create and manage Kaggle notebooks

  • 🏃 Run notebooks with GPU support

  • 📊 Search datasets and competitions

  • 💾 Download notebook outputs

  • 🔍 Monitor execution status

Related MCP server: Jupyter MCP Server

📋 Prerequisites

  1. Kaggle Account: You need a Kaggle account

  2. Kaggle API Token:

  3. Kaggle CLI: Install the Kaggle CLI:

    pip install kaggle

🛠️ Installation

From npm (when published)

npm install -g mcp-kaggle-tool

From source

git clone https://github.com/yourusername/mcp-kaggle-tool.git
cd mcp-kaggle-tool
npm install
npm run build

🔧 Configuration

For Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "kaggle": {
      "command": "npx",
      "args": ["mcp-kaggle-tool"]
    }
  }
}

Or if running from source:

{
  "mcpServers": {
    "kaggle": {
      "command": "node",
      "args": ["/path/to/mcp-kaggle-tool/dist/index.js"]
    }
  }
}

📚 Available Tools

Authentication

  • kaggle_auth_check - Verify Kaggle API credentials are configured

Notebooks

  • kaggle_list_notebooks - List your Kaggle notebooks

  • kaggle_create_notebook - Create a new notebook with code

  • kaggle_run_notebook - Execute a notebook

  • kaggle_get_notebook_status - Check execution status

  • kaggle_download_notebook_output - Download notebook outputs

Data & Competitions

  • kaggle_search_datasets - Search for datasets

  • kaggle_list_competitions - List active competitions

💡 Usage Examples

Check Authentication

Use kaggle_auth_check to verify your credentials are set up

Create and Run a Notebook

1. Create a notebook with kaggle_create_notebook:
   - title: "My ARC Experiment"
   - code: "print('Hello from Kaggle!')"
   - enableGpu: true

2. Monitor with kaggle_get_notebook_status
3. Download results with kaggle_download_notebook_output

Search ARC Dataset

Use kaggle_search_datasets with search: "abstraction reasoning corpus"

🚧 Development

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run in development
npm run dev

# Run tests
npm test

# Lint code
npm run lint

📝 License

MIT License - see LICENSE file for details.

🤝 Contributing

Contributions welcome! Please open an issue or submit a PR.

🐛 Known Issues

  • Kaggle API sometimes returns HTML instead of JSON for certain commands

  • Notebook execution status may take time to update

  • GPU availability depends on Kaggle quota

🔗 Resources

Available Tools

8 tools
kaggle_auth_checkA

Check if Kaggle API credentials are configured

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states it 'checks if credentials are configured' without disclosing what happens if not configured, whether the operation is truly read-only, or any output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded and contains no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple auth check tool, the description lacks details about the response format or behavior, such as whether it returns a boolean or raises an error. Some context is missing despite the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is trivially 100%. The description adds value by confirming the purpose of checking credentials, which is the entire functionality.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Check' and identifies the resource 'Kaggle API credentials are configured', clearly distinguishing it from sibling tools which perform actions like creating, downloading, listing, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage before other Kaggle operations but does not provide explicit guidance on when to use, when not to use, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaggle_create_notebookB

Create a new Kaggle notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesNotebook title
codeYesPython code for the notebook
languageNoProgramming language (python or r)python
isPrivateNoMake notebook private
enableGpuNoEnable GPU acceleration
enableInternetNoEnable internet access
datasetSourcesNoDataset slugs to attach (e.g., ["username/dataset-name"])

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only states 'Create a new Kaggle notebook' but omits critical behavioral details such as what happens after creation, authentication requirements, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at one sentence, but it is too minimal for a tool with 7 parameters. It could be structured to provide a brief overview of what each parameter achieves.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no annotations, no output schema), the description is severely incomplete. It fails to indicate what the tool returns or how creation is confirmed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a new Kaggle notebook' uses a specific verb and resource, and it clearly distinguishes this tool from siblings like kaggle_run_notebook (runs an existing notebook) and kaggle_get_notebook_status (checks status).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, or cases where siblings would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaggle_download_notebook_outputC

Download the output of a completed notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
kernelSlugYesNotebook identifier (username/notebook-slug)
outputPathNoLocal directory to save outputs./kaggle-outputs

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations present, and the description only states the basic action without disclosing behavioral details like requirements for notebook completion, authentication, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence that efficiently states the purpose, though it could be slightly more informative without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotation; the description fails to mention important context such as what happens for incomplete notebooks or how output path is used. Incomplete for a download tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with clear descriptions, so the description adds minimal value beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Download') and resource ('output of a completed notebook'), but does not differentiate from sibling tools like kaggle_get_notebook_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over alternatives; no context about prerequisites or exclusions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaggle_get_notebook_statusB

Get the status of a notebook execution

ParametersJSON Schema
NameRequiredDescriptionDefault
kernelSlugYesNotebook identifier (username/notebook-slug)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It fails to specify what 'status' means (e.g., possible values like pending, running, completed, failed), idempotency, or authentication requirements. This leaves uncertainty for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no redundancy, achieving maximum efficiency. However, it is too short to provide necessary context, which reduces its overall effectiveness. Still, it is well-structured for its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should provide more context about return values, possible statuses, and usage hints. It is insufficiently complete for an agent to reliably use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, and the description adds no additional semantic information beyond the schema's 'Notebook identifier (username/notebook-slug)'. Baseline is 3, and the description does not improve it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get the status of a notebook execution' clearly states the action (get status) and resource (notebook execution). It distinguishes from siblings like kaggle_run_notebook (triggers execution) and kaggle_download_notebook_output (downloads results).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks any guidance on when to use this tool. It does not mention typical use cases (e.g., after running a notebook) or alternatives like polling. The intended usage is implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaggle_list_competitionsC

List Kaggle competitions

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoCompetition group (general, entered, inClass)general
categoryNoCompetition category (all, featured, research, recruitment, gettingStarted, masters, playground)all
sortByNoSort by (grouped, prize, earliestDeadline, latestDeadline, numberOfTeams, recentlyCreated)recentlyCreated

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose any behavioral traits such as pagination, rate limits, authentication requirements, or whether the listing is exhaustive. For a tool that likely returns a list, this lack of behavioral context is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is concise, though it could be improved by front-loading key details. The brevity earns its place but does not enhance the tool's usability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite full schema coverage, the description lacks any information about the tool's output (e.g., returns a list of competition objects with fields), which is critical for an agent to use the tool effectively. Missing output schema and behavioral details make the description incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters with descriptions (100% coverage), so the description adds no additional meaning. Baseline score of 3 is appropriate as the schema already documents the parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'List' and resource 'Kaggle competitions', providing a specific verb+resource pair. However, it does not explicitly distinguish from sibling tools like kaggle_search_datasets, which could be confused for a similar competition listing operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives. The description lacks any when-to-use or when-not-to-use instructions, leaving the agent to infer context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaggle_list_notebooksB

List your Kaggle notebooks (kernels)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
pageSizeNoPage size (default: 20)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It indicates a read-like operation ('List') and scoping ('your'), but does not disclose whether the operation is read-only, if authentication is required, or what the response contains (e.g., metadata only). Critical behavioral traits are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no filler. It conveys the core purpose efficiently. However, it could include more details without becoming verbose, so not a perfect 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with no output schema, the description should at least hint at the return format (e.g., 'returns a list of notebook objects with metadata'). The current description is too sparse, leaving the agent uncertain about what it will receive. Pagination semantics are covered in the schema, but overall completeness is lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions and defaults for both parameters (page, pageSize). The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the specific resource ('your Kaggle notebooks (kernels)'). It distinguishes from sibling tools like kaggle_search_datasets (public datasets) and kaggle_get_notebook_status (single notebook status) by specifying the scoping to the user's own notebooks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description does not mention that it only lists the authenticated user's notebooks, nor does it suggest kaggle_search_datasets for finding public notebooks. Implied usage is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaggle_run_notebookC

Run/execute a Kaggle notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
kernelSlugYesNotebook identifier (username/notebook-slug)

TDQS

C2.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description fails to disclose key behaviors such as whether the execution is synchronous or asynchronous, what side effects occur, or what triggers are needed. The agent gains no behavioral insight beyond the verb 'run'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief (one short phrase) and front-loaded, but it is not a complete sentence. It avoids unnecessary words, yet could be slightly more verbose to improve clarity without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is insufficient. It does not explain return values, execution behavior, or prerequisites, leaving the agent underinformed for a tool that likely involves non-trivial side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'kernelSlug' has a description in the schema that already explains it is a notebook identifier. The description adds no additional meaning beyond the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (run/execute) and the resource (Kaggle notebook). It is distinct from sibling tools like create, get status, or list, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., kaggle_get_notebook_status for checking completion). The agent must infer usage from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaggle_search_datasetsC

Search for Kaggle datasets

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesSearch query
pageNoPage number

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must convey behavioral traits, but it only states the basic function. Missing details like authorization needs, pagination behavior, or result format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant information. Every word is functional.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having only two parameters and no output schema, the description omits critical context such as the structure of results, sorting options, or error handling. A search tool would benefit from explaining return fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already provides descriptions for both parameters ('Search query', 'Page number'). The description adds no extra meaning beyond what the schema offers, achieving the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'search' and the resource 'Kaggle datasets', distinguishing it from siblings like 'kaggle_list_competitions' or 'kaggle_list_notebooks'. However, it lacks specificity about the search scope or filtering capabilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. For instance, it does not contrast with other search or list tools among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observedkaggle_auth_check
    • First observedkaggle_create_notebook
    • First observedkaggle_download_notebook_output
    • First observedkaggle_get_notebook_status
    • First observedkaggle_list_competitions
    • First observedkaggle_list_notebooks
    • First observedkaggle_run_notebook
    • First observedkaggle_search_datasets

TDQS

B3.4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: auth check, notebook CRUD, status, output download, listing competitions/notebooks, and dataset search. No overlapping functionality.

Naming Consistency5/5

All tools follow a consistent 'kaggle_verb_noun' pattern with underscores, making it easy to predict tool names.

Tool Count5/5

With 8 tools, the server covers the main Kaggle operations (authentication, notebook lifecycle, listings, dataset search) without being too sparse or bloated.

Completeness3/5

Covers notebook lifecycle well (create, run, status, download) and includes listings for competitions and notebooks, but lacks dataset download, competition submission, and credential management beyond check.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers