
1. 本地写 Notebook、Kaggle 跑 GPU这套流程到底解决什么问题Kaggle 对做算法原型的人来说很香尤其是每周能白嫖的 T4×2 或 P100 额度跑个 0.5B 到 7B 的小模型推理、调个 LoRA 微调、验证一下数据清洗脚本基本够用。但传统用法有个绕不开的痛点你在本地 VSCode 或 Jupyter 里写完.ipynb得手动上传到 Kaggle点 Run All等它排队、拉数据、装依赖报错了再回本地改改完再传一遍。来回几次一天就没了。Vibe Coding 这一波起来之后Claude Code、Codex 这类 Agent 已经能接管本地代码的编写、调试、Git 操作。那能不能让 Agent 直接把 Kaggle 也接管了答案是能靠的就是 Kaggle 官方放出来的 MCP Server。MCPModel Context Protocol你可以理解成给 Agent 装的一根外接手臂让它能调用外部平台的能力。Kaggle MCP 暴露了推送 Notebook、触发远程执行、拉取运行日志和结果这几件事正好覆盖本地改、远程跑的闭环。但这里马上会撞上第二个问题Key 太分散。Claude Code 本身要一个模型 KeyKaggle MCP 要一个 Kaggle Token如果你还接了别的 MCP 工具每个都要单独配一遍。配置散落在settings.json、环境变量、各个 MCP 的 header 里换台机器就得重来。这篇要讲的就是用 TaoToken 的统一 Key 把 Claude Code 这一侧的模型接入收敛掉Kaggle Token 单独走 MCP header两边职责分清配置一次就能跑通本地开发 Notebook → Kaggle 远程执行 → 拉回结果调试的完整链路。适合谁看手上有 Kaggle 账号、本地装了 Claude Code、想用 Agent 自动跑 Kaggle Kernel 的人。不需要你懂 MCP 协议细节跟着配就行。2. 前置准备TaoToken 统一 Key 与 Kaggle Token 的分工先把两把 Key 的角色理清楚不然后面配置容易混。TaoToken 这一侧负责的是Claude Code 调用大模型的通道。Claude Code 本质是个 CLI Agent它每次思考、写代码、决定调用哪个工具都要请求一次模型。默认它走 Anthropic 官方但你可以通过配置把它指向兼容 Anthropic 接口的网关。TaoToken 提供的就是这样一个统一入口一个 Key 同时能覆盖对话模型和编码场景省得你在多个平台之间来回切 Key。Kaggle 这一侧负责的是远程执行。Kaggle MCP 需要你在请求头里带一个 Kaggle API Token格式是Authorization: Bearer 你的Kaggle Token。这个 Token 跟模型无关只用于 Kaggle 平台鉴权所以它不走 TaoToken直接放在 MCP 的配置里。两把 Key 的分工可以记成一句话TaoToken 管想Kaggle Token 管跑。去 TaoToken 拿 Key 的入口在这里访问 console 创建 API Key建议单独建一个给 Claude Code 用方便后面按项目隔离和吊销。拿到之后先别急着写进配置我们下一步会把它放进settings.json的env段。Kaggle Token 的获取路径是登录 Kaggle → 右上角头像 → Settings → API → Create New Token会下载一个kaggle.json里面的key字段就是你要的 Token。注意这个文件别提交到 Git后面会讲怎么防。提示Kaggle Token 泄露等于别人能拿你的账号跑任务、消耗你的 GPU 额度务必当密码对待。TaoToken 的 Key 同理两个都不要硬编码进会进版本库的文件。3. 可复制配置settings.json 骨架与 Kaggle MCP 接入Claude Code 的配置分两层一层是模型接入走 TaoToken一层是 MCP Server 注册走 Kaggle。我们分开写最后合并到同一个settings.json。3.1 TaoToken 接入 Claude Code 的 settings.json 骨架Claude Code 读取配置的常见位置是项目根目录的.claude/settings.json或者用户级的~/.claude/settings.json。项目级的好处是配置跟着仓库走团队能共享但 Key 要用环境变量注入别写死。下面是一个可复制的骨架{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-5-20250929 }, permissions: { allow: [ Bash(npx:*), Bash(python:*), Read, Write, Edit ] } }几个字段说明一下。ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址注意这里用的是https://taotoken.net/api不带任何查询参数。ANTHROPIC_AUTH_TOKEN填你刚才在 console 创建的 Key。ANTHROPIC_MODEL按你实际要用的模型名填写错模型名会直接 404这个后面排障会讲。如果你不想把 Key 写进文件可以用环境变量覆盖。在 shell 里 exportClaude Code 启动时会优先读环境变量export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENsk-你的TaoToken密钥 export ANTHROPIC_MODELclaude-sonnet-4-5-20250929这样settings.json里就可以只留permissions和 MCP 配置Key 不进版本库。3.2 Kaggle MCP 注册Kaggle MCP 官方推荐的接入方式是通过mcp-remote这个桥接工具把远程的https://www.kaggle.com/mcp挂到本地。配置写进settings.json的mcpServers段{ mcpServers: { kaggle: { command: npx, args: [ mcp-remote, https://www.kaggle.com/mcp, --header, Authorization: Bearer 你的KaggleToken ] } } }把你的KaggleToken替换成kaggle.json里的key值。这里有个坑--header后面的字符串必须是一个完整的Authorization: Bearer xxx中间不能断行也不能有多余空格否则 MCP 加载时鉴权会静默失败表现为工具列表里看不到 kaggle 相关能力。3.3 合并后的完整配置与防提交把上面两段合起来项目级.claude/settings.json长这样{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_MODEL: claude-sonnet-4-5-20250929 }, permissions: { allow: [ Bash(npx:*), Bash(python:*), Read, Write, Edit ] }, mcpServers: { kaggle: { command: npx, args: [ mcp-remote, https://www.kaggle.com/mcp, --header, Authorization: Bearer 你的KaggleToken ] } } }注意我把ANTHROPIC_AUTH_TOKEN从文件里拿掉了改由环境变量注入这样这个文件可以安全提交。Kaggle Token 还在文件里所以要么也改成环境变量要么把.claude/settings.json加进.gitignore。更稳妥的做法是两者都走环境变量文件里只留结构# 写进 ~/.zshrc 或 ~/.bashrc export ANTHROPIC_AUTH_TOKENsk-你的TaoToken密钥 export KAGGLE_MCP_TOKEN你的KaggleToken然后settings.json里用${KAGGLE_MCP_TOKEN}引用。不过mcp-remote的--header参数对变量展开的支持取决于 shell 环境实测下来最省事的还是把 Kaggle Token 单独放一个不进版本库的本地文件或者直接用环境变量方案。注意无论哪种方案提交前跑一次git status确认settings.json里没有明文 Keykaggle.json也没被 add 进去。这一步别省。4. 验证请求连通性检查与远程调试链路配置写完重启 Claude Code然后按顺序验证三层模型通道通不通、MCP 挂没挂上、远程执行能不能闭环。4.1 验证 TaoToken 模型通道最直接的方式是在 Claude Code 里发一句最简单的请求比如你好回复一个 ok如果模型正常返回说明ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN生效了。如果报 401多半是 Key 错了或者没注入报 404多半是ANTHROPIC_MODEL写错了模型名。你也可以用 curl 单独测一下网关curl -s https://taotoken.net/api/v1/messages \ -H x-api-key: sk-你的TaoToken密钥 \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-5-20250929, max_tokens: 32, messages: [{role: user, content: ping}] }返回里有content字段就说明通道没问题。这一步能帮你把模型问题和MCP 问题分开不然混在一起很难定位。4.2 验证 Kaggle MCP 是否加载在 Claude Code 里输入/mcp或者让它列出可用工具正常应该能看到 kaggle 相关的工具比如推送 Notebook、执行 Kernel、拉取输出之类。如果看不到先检查npx mcp-remote能不能单独跑起来npx mcp-remote https://www.kaggle.com/mcp \ --header Authorization: Bearer 你的KaggleToken这条命令如果卡住不动或者报鉴权错误说明 Token 或网络有问题。能正常握手的话Claude Code 里应该也能加载。4.3 跑一次端到端本地生成 Notebook远程执行验证链路最有效的方式是让它真的干一件事。在 Claude Code 里发这样的 Prompt使用 kaggle MCP 新建一个测试脚本加载并运行 Qwen/Qwen3.5-0.8B 做一次简单推理 本地生成对应的 Jupyter Notebook并推送到 Kaggle 后台执行。理想情况下Claude Code 会先在本地生成一个.ipynb然后通过 Kaggle MCP 推送、触发执行最后把运行状态和日志拉回来。实际跑的时候不一定一次成功我试过让它跑一个带模型加载的脚本前两次分别卡在依赖没装和路径写错Agent 通过抓取 Kaggle 返回的报错日志自己迭代改了两版才跑通。这个过程本身就是远程调试的价值所在——你不用手动去 Kaggle 网页上看日志再回来改Agent 自己闭环了。跑通之后你去 Kaggle 的 Notebooks 页面应该能看到一个刚提交的 Kernel状态从Queued变成Running再到Complete输出里有推理结果。本地这边Claude Code 会把执行日志贴回来你据此判断要不要继续改。4.4 用 Skill 把流程固化如果你不想每次都手写 Prompt可以装一个 Kaggle Skill 把常用操作封装起来。社区里有个shepsci/kaggle-skill覆盖了账号凭证、竞赛报告、数据集下载、Notebook 执行、竞赛提交这些环节。安装命令npx skills add shepsci/kaggle-skill装完之后Claude Code 在处理 Kaggle 相关任务时会自动调用这个 Skill 里定义好的流程比裸 Prompt 稳定一些。它的 Notebook 执行部分跟本文上半段的 MCP 能力是重叠的可以理解成给 MCP 加了一层操作手册。5. 本篇常见错排查配置和链路跑起来之后最容易撞的坑集中在这几个地方按出现频率排。MCP 加载了但工具列表为空。九成是--header那串写错了。检查Authorization: Bearer后面有没有多余空格Token 有没有复制全Kaggle Token 是一长串容易漏字符。另外mcp-remote首次运行会下载依赖网络慢的时候会卡住多等一会儿或者换个时间再试。模型请求 401。TaoToken 的 Key 没生效。先确认环境变量有没有 export 成功echo $ANTHROPIC_AUTH_TOKEN看一眼。如果settings.json和环境变量都设了注意优先级环境变量一般会覆盖文件里的值别两边填了不同的 Key 自己绕晕。模型请求 404。ANTHROPIC_MODEL写的模型名在 TaoToken 这边不存在。去 doc 核对一下当前支持的模型名别照抄别处的配置。Kaggle Kernel 一直 Queued。这是 Kaggle 平台侧的排队不是你的配置问题。免费额度高峰期排队十几分钟很正常。如果超过半小时还不动去 Kaggle 网页看下账号有没有触发限制。远程执行报依赖缺失。Kaggle Kernel 的环境跟你本地不一样本地pip install过的不代表远程有。让 Claude Code 在 Notebook 开头显式加一段!pip install -q xxx或者用 Kaggle 预装的包。这个坑 Agent 一般能通过报错日志自己修你只要别中途打断它。Token 泄露风险。每次提交前git diff看一眼settings.json确认没有明文 Key。如果不小心提交了立刻去 Kaggle 和 TaoToken 两边吊销重发别只改文件了事历史记录里还在。MCP 鉴权偶发失败。有反馈说用环境变量给 MCP 传 Token 时加载阶段偶尔加不上 header。这种情况退回把 Token 直接写在mcp-remote的--header参数里虽然不够优雅但稳定。两害相权取其轻。6. 把 Key 收敛到一处把调试闭环交给 Agent整条链路跑通之后你会发现真正省事的地方不在于少配了一个 Key而在于职责清晰了模型通道由 TaoToken 统一收口换模型、换项目只改一个ANTHROPIC_MODELKaggle 的远程执行由 MCP 接管本地改完直接推、跑、拉日志不用在浏览器和编辑器之间来回跳。Agent 拿到报错能自己迭代你只需要在关键节点看一眼结果。如果你还没建 Key从 API Keys 页面创建一个接入细节对着 接入文档 走一遍就行。想先验证模型通不通可以直接在 模型对话 里发一句试试。如果你打算长期用 Claude Code 跑编码和 Agent 任务Coding Plan 这种按编码场景打包的方式会比单次调用更划算具体额度自己按用量算一下。最后留一个实操建议把 Kaggle MCP 的配置和 TaoToken 的环境变量写成一个setup.sh换机器时跑一遍就恢复环境比手动翻文档快得多。