把 Claude Code 的 Base URL 改到 TaoToken 后用 Skills 建本地 MySQL 替代重 MCP核心不是换一个聊天入口而是先把 Claude Code 的模型请求通道配通再让 Claude Code 按 Skill 规范生成本地数据库查询能力。如果你正在改settings.json最容易被ANTHROPIC_BASE_URL卡住这里应填https://taotoken.net/api不要写成https://taotoken.net/api/v1也不要把官网链接后面的 UTM 参数带进去。第一步从 TaoToken 官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content注册并创建 Key后面 Claude Code 的模型调用、Kimi 搜索 Skill 的模型解读都复用这把 Key。TaoToken 在这里只负责供 Key 和 Base URL不替代 MCP也不替代 Skill 本身MCP 是否继续用取决于你的集成复杂度。本文按“原问题与场景、TaoToken 前置、可复制配置、验证请求、常见错排查、语义一致 CTA”推进尽量让你能在本地复现一遍。一、原问题与场景Claude Code 读本地 MySQLMCP 太重我在本地开发时经常遇到一个很具体的需求Claude Code 需要读取本机 MySQL 的表结构、样例数据甚至临时查几行数据来辅助调试。这个需求本身不复杂传统思路却往往要配 MCP起一个独立服务进程暴露数据库接口再让 Claude Code 通过 MCP 去连。对于个人开发、快速原型、临时排查来说这条链路确实偏重进程要维护接口要配置权限也要额外考虑。这次换了个思路不再先搭 MCP而是让 Claude Code 直接创建一个本地 MySQL 的 Skill。Skill 的本质是放在本地目录里的规则文件和脚本Claude Code 启动时只加载元数据需要用时再读核心指令必要时再查参考资源。它不像 MCP 那样要求一个持续运行的服务器也不要求你先设计一套完整的工具接口。对“读本地 MySQL 调试”这种单点场景Skill 的轻量优势非常明显。原标题说“不想再折腾 MCP 了”并不是说 MCP 没用。MCP 在跨模型、跨平台、企业级集成、复杂工具编排上依然有标准化价值。但当目标只是“让 Claude Code 查一下本地库”用 Skill 能少很多中间层。本文要复现的路径是先把 Claude Code 的模型请求改到 TaoToken配好settings.json里的ANTHROPIC_*再对 Claude Code 说一句“帮我创建一个连接本地 MySQL 数据库的 skill”让它生成 Python 脚本和SKILL.md最后重启会话验证。Kimi 搜索 Skill 也按同样方式扩展。二、TaoToken 前置注册、创建 Key确认 Base URL先处理模型通道。打开 TaoToken 官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content注册并进入控制台在 API Keys 页面创建一个 Key。这个 Key 后面会填到 Claude Code 的环境变量里。本文里统一写成YOUR_API_KEY你复制后要换成自己的真实 Key。不要把它提交到 Git 仓库也不要写进会被公开的配置样本里。Claude Code 要改的是模型请求地址和鉴权信息。Base URL 填https://taotoken.net/api注意三点不要写成https://taotoken.net/api/v1。有些 SDK 会自己拼接版本路径Claude Code 这里按https://taotoken.net/api配置即可。不要加 UTM 参数。Base URL 是接口地址不是推广链接带上?utm_source...会导致请求路径异常。Key 填YOUR_API_KEY。如果你创建了多个 Key建议用专门给 Claude Code 或本地开发用的那一把方便后续排查和轮换。如果你习惯用 TaoToken CLI 拉起 Claude Code也可以走命令行方式npm i -g taotoken/taotoken taotoken cc -k YOUR_API_KEY -u API -m MODEL_ID但本文重点仍然是 Claude Code 的settings.json和ANTHROPIC_*因为你后面要让 Claude Code 生成并加载 Skill配置文件方式更直观。三、可复制配置settings.json、ANTHROPIC_* 与 local-mysql Skill先配 Claude Code 的settings.json。不同版本的 Claude Code 配置路径可能略有差异常见做法是在用户配置或项目配置中加入env。示例{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: MODEL_ID, ANTHROPIC_SMALL_FAST_MODEL: MODEL_ID } }如果你更习惯用 shell 环境变量可以这样临时验证export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY export ANTHROPIC_MODELMODEL_ID claude如果ANTHROPIC_AUTH_TOKEN不生效再检查你的 Claude Code 版本是否要求使用ANTHROPIC_API_KEY。两者不要同时乱填优先按当前版本文档的鉴权变量来。配置完成后先在会话里发一句普通问题确认模型请求能正常返回再去创建 Skill。接下来创建本地 MySQL Skill。你可以在项目目录下建.claude/skills/local-mysql/ SKILL.md scripts/query_mysql.py如果 Claude Code 版本使用用户级 Skill 目录也可以放到~/.claude/skills/local-mysql/。然后对 Claude Code 说帮我创建一个连接本地 MySQL 数据库的 skill名字叫 local-mysql。 用途是调试时查询表结构、样例数据和只读 SQL。 生成 SKILL.md 和一个 Python 脚本脚本读取环境变量连接本机 MySQL。一个可参考的SKILL.md可以写成--- name: local-mysql description: 当需要读取本地 MySQL 的表结构、样例数据或调试数据时使用。只读查询。 --- # Local MySQL Skill 调用脚本scripts/query_mysql.py 常用命令 python scripts/query_mysql.py --sql SHOW TABLES; python scripts/query_mysql.py --sql SELECT * FROM users LIMIT 5; 环境变量 MYSQL_HOST127.0.0.1 MYSQL_PORT3306 MYSQL_USERroot MYSQL_PASSWORD你的密码 MYSQL_DATABASE你的库名 安全限制 只允许 SELECT、SHOW、DESCRIBE、EXPLAIN。禁止写操作。Python 脚本可以让 Claude Code 生成核心结构类似import argparse import json import os import pymysql def main(): parser argparse.ArgumentParser() parser.add_argument(--sql, requiredTrue) args parser.parse_args() conn pymysql.connect( hostos.getenv(MYSQL_HOST, 127.0.0.1), portint(os.getenv(MYSQL_PORT, 3306)), useros.getenv(MYSQL_USER, root), passwordos.getenv(MYSQL_PASSWORD, ), databaseos.getenv(MYSQL_DATABASE), charsetutf8mb4, cursorclasspymysql.cursors.DictCursor, ) try: with conn.cursor() as cur: cur.execute(args.sql) rows cur.fetchall() print(json.dumps(rows, ensure_asciiFalse, indent2, defaultstr)) finally: conn.close() if __name__ __main__: main()安装依赖pip install pymysql然后设置 MySQL 环境变量。不要用 root 高权限账号跑长期调试可以建一个只读账号至少限制到具体库和具体表。Skill 里的安全约束也要写清楚避免日常误触写操作。Kimi 搜索 Skill 可以按同样流程创建。对 Claude Code 说“帮我创建一个 Kimi 搜索 skill参考 Kimi 官方文档搜索结果需要再调用模型解读”。搜索接口本身的凭证按 Kimi 官方要求填写模型解读环节继续复用已经配好的 TaoToken Key。这样你不用为每个 Skill 单独搭一套模型通道。四、验证请求重启 Claude Code 后让 Skill 真的查库Skill 文件写完后重启 Claude Code 会话。很多“Skill 不生效”的问题其实只是当前会话没有重新加载。重启后可以问现在有哪些可用的 skill如果local-mysql出现在列表里或者 Claude Code 能描述它的用途说明SKILL.md已经被识别。接着发一个真实请求用 local-mysql skill 查询当前数据库有哪些表。成功时Claude Code 应该读取 Skill 指令调用scripts/query_mysql.py返回表名列表。再试一条用 local-mysql skill 查询 users 表前 5 行。如果返回 JSON 或格式化后的查询结果说明整条链路已经通了Claude Code 的模型请求走 TaoTokenSkill 本地执行脚本脚本连接本地 MySQL。此时你可以继续让 Claude Code 基于查询结果解释字段、生成调试建议或补 SQL但不要跳过人工确认尤其是涉及线上库或敏感数据时。验证模型通道是否通也很简单。在配好ANTHROPIC_BASE_URL后直接问一个普通问题如果出现 401、403、404不要先怀疑 Skill先回到模型通道检查。Skill 是本地能力扩展模型请求不通的话它根本不会走到执行脚本这一步。五、本篇常见错排查/v1、UTM、Key 与 SKILL.md第一类错误是 Base URL 填错。最常见的是把https://taotoken.net/api写成https://taotoken.net/api/v1或者把官网链接整段复制进ANTHROPIC_BASE_URL导致请求路径后面带上utm_source、utm_medium等参数。前者可能报 404后者可能报 400 或鉴权异常。记住官网可以带 UTMAPI 地址不要带。第二类错误是 Key 问题。YOUR_API_KEY没有替换复制时少了字符或者创建后没启用都会导致 401/403。先去 API Keys 页面重新确认再检查settings.json里的变量名是否和当前 Claude Code 版本匹配。如果 shell 里已经设置过旧的环境变量也可能覆盖配置文件必要时用env | grep ANTHROPIC查看。第三类错误是settings.json不生效。JSON 不能写注释不能有尾逗号路径要放对。项目级配置和用户级配置同时存在时注意优先级。改完配置后重启终端或 Claude Code不要只在旧会话里反复试。第四类错误是 Skill 不触发。检查SKILL.md是否放在.claude/skills/local-mysql/或对应版本要求的目录下front matter 是否有name和description描述是否足够明确。如果描述写得太泛模型可能不知道什么时候该调用。改完 Skill 文件后要重启会话。第五类错误是 MySQL 连接失败。常见原因包括没有安装pymysql、MYSQL_HOST写成localhost导致走 socket、端口不是 3306、用户没有库权限、密码包含特殊字符没有正确转义、数据库名不存在。调试时先单独运行脚本python scripts/query_mysql.py --sql SHOW TABLES;如果命令行都跑不通Claude Code 里更不可能跑通。先把本地脚本调通再让 Claude Code 调用。第六类错误是权限过宽。为了省事用 root 且不加限制短期看似方便长期风险高。至少给 Skill 配只读账号并在SKILL.md里写明禁止DELETE、UPDATE、DROP、ALTER、TRUNCATE。Kimi 搜索 Skill 如果涉及外部接口也要把搜索凭证和模型凭证分开检查不要把搜索失败误判为 TaoToken Key 失效。六、语义一致 CTA模型通道配通后再谈 Skills 与 Coding Plan这篇的核心路径很明确先把 Claude Code 的ANTHROPIC_BASE_URL指到https://taotoken.net/api用YOUR_API_KEY配通模型请求再用 Skills 创建local-mysql用本地脚本替代“为了读一次 MySQL 就起一套重 MCP”的做法。如果你卡在 Key、settings.json、接入参数上优先看 API Keys 和接入文档API Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite如果你想先确认模型请求是否已经通了可以去模型对话页发一条最小请求模型对话https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite如果你准备长期用 Claude Code 做本地开发、Agent、Skill 扩展建议关注 Coding Plan把模型通道和日常编码流程一起固定下来Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite需要回到控制台管理 Key 或查看配置入口可以从这里进入Consolehttps://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteClaude Code 相关接入说明https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_code_anthropicutm_campaignrewrite配通模型通道之后再用 Skills 把本地 MySQL、Kimi 搜索、当前时间这类轻量能力逐个挂上去。MCP 适合重集成Skill 适合快速扩展两者并不冲突但在“Claude Code 读本地 MySQL 调试”这个具体场景里Skill 足够轻也足够快。