kaggle mcp代理
Cloudflare Workers上的远程MCP服务器,代理对Kaggle API的工具调用。从claude.ai(或任何MCP客户端)连接,并在Kaggle的免费GPU/TPU基础设施上运行Python/R代码。
工具
| 工具 | 说明 |
|---|---|
kaggle_kernel_push | 创建/更新内核并开始执行 |
kaggle_kernel_status | 检查执行状态(排队/运行/完成/错误) |
kaggle_kernel_output | 获取执行输出(文件+日志)。这 log 字段仅在内核达到以下值后填充 complete/error;而 queued/running 它是空的。Kaggle的公共REST API没有公开实时执行日志(官方 kaggle CLI也有同样的限制)。投票 kaggle_kernel_status 直到完成。 |
kaggle_kernels_list | 搜索内核 |
kaggle_run | 推送代码,等待完成,返回输出(一体式) |
kaggle_datasets_list | 搜索数据集 |
kaggle_dataset_create | 创建新数据集并内联上传文件(文本或base64) |
kaggle_dataset_version | 上传现有数据集的新版本 |
kaggle_dataset_status | 检查数据集的处理状态 |
kaggle_competitions_list | 搜索竞赛 |
上传培训数据
kaggle_dataset_create 和 kaggle_dataset_version 接受内联文件:
{
"slug": "my-training-data",
"title": "My Training Data",
"files": [
{ "name": "train.csv", "content": "id,label\n1,0\n2,1\n", "content_type": "text/csv" },
{ "name": "weights.bin", "content": "", "encoding": "base64" }
]
}每个文件都是通过Kaggle的blob协议上传的(POST /blobs/upload → PUT createUrl),然后在数据集(或新版本)最终确定时附加。 由于内容是通过MCP请求内联发送的,因此总有效载荷大小为 受Cloudflare Workers的请求限制(付费计划为100 MB)。对于 较大的上传,使用官方 kaggle CLI直接。
GPU/TPU加速器
指定 accelerator 推送内核时的参数:
| 价值 | 硬件 |
|---|---|
none | 仅CPU |
NvidiaTeslaP100 | NVIDIA特斯拉P100(16GB) |
NvidiaTeslaT4 | NVIDIA特斯拉T4(16GB) |
NvidiaTeslaT4x2 | NVIDIA特斯拉T4 x2 |
TpuV6E8 | TPU v6e-8 |
Kaggle提供 30小时/周 免费GPU时间。
设置
先决条件
- 启用Workers的Cloudflare帐户
- GitHub帐户(用作MCP身份验证的OAuth提供者)
- 使用API代币的Kaggle帐户
1.克隆并安装
git clone https://github.com/penta2himajin/kaggle-mcp-proxy.git
cd kaggle-mcp-proxy
npm install2.创建KV命名空间
npx wrangler kv namespace create OAUTH_KV
# Update wrangler.jsonc with the returned ID3.创建GitHub OAuth应用程序
首选https://github.com/settings/developers → 新OAuth应用程序:
- 你的家园:
https://.workers.dev - 回调URL:
https://.workers.dev/callback
4.获取Kaggle API代币
首选https://www.kaggle.com/settings → API → 创建新的API令牌。
5.设置秘密并部署
npx wrangler secret put GITHUB_CLIENT_ID
npx wrangler secret put GITHUB_CLIENT_SECRET
npx wrangler secret put COOKIE_ENCRYPTION_KEY # any random string
npx wrangler secret put ALLOWED_USERS # comma-separated GitHub usernames (optional)
npx wrangler secret put KAGGLE_USERNAME # your Kaggle username
npx wrangler secret put KAGGLE_KEY # your Kaggle API token (KGAT_... or legacy key)
npm run deploy6.从claude.ai连接
- 设置→ 连接器→ 添加自定义连接器
- 远程MCP服务器URL:
https://.workers.dev/mcp - 将OAuth字段留空(支持动态客户端注册)
- 通过GitHub进行身份验证
环境变量(秘密)
| 名称 | 必填 | 描述 |
|---|---|---|
GITHUB_CLIENT_ID | 是 | GitHub OAuth应用程序客户端ID |
GITHUB_CLIENT_SECRET | 是 | GitHub OAuth应用程序客户端机密 |
COOKIE_ENCRYPTION_KEY | 是 | 用于cookie签名的随机字符串 |
ALLOWED_USERS | 否 | 逗号分隔的GitHub用户名 |
KAGGLE_USERNAME | 是 | Kaggle帐户用户名 |
KAGGLE_KEY | 是 | Kaggle API令牌 |
平台兼容性
该项目是为 Cloudflare员工 并在该平台上进行了测试。它可以在经过修改的其他MCP兼容平台上工作,但不提供任何保证。
许可证
麻省理工学院
