1. 为什么你的claude mcp add-json总是失败如果你正在搜索claude mcp add-json的用法大概率已经踩过这个坑在 Claude Code 的对话界面里敲下安装命令回车然后看到一堆报错或者干脆没有任何反应。你以为是命令写错了于是反复改 JSON、换引号、加转义折腾到半夜还是不行。问题不在命令本身而在于你执行命令的位置。Claude Code 的对话界面是一个交互式会话环境它只认斜杠开头的内置指令比如/help、/mcp、/exit。你在里面输入claude mcp add-json ...它会被当成一句普通聊天内容发给模型而不是交给系统终端去执行。这就像你在微信聊天框里打“关机”两个字电脑不会真的关机一样。MCPModel Context Protocol是让 Claude Code 连接外部工具和数据的协议飞书、数据库、文件系统这些能力都靠它挂载。但 MCP 的注册动作发生在 Claude Code 进程之外由 CLI 工具写入配置文件Claude Code 启动时再读取。所以正确顺序是先退出会话在系统终端里完成注册再重新进入 Claude Code 验证。这篇内容就按这个顺序走一遍。我会用 TaoToken 作为统一的 Key 和 API 通道把 MCP 注册、验证、以及 Cursor 侧复用同一套 Key 的配置一次讲清楚。目标很明确10 分钟内让claude mcp list里出现你装的服务。2. 前置准备TaoToken 统一 Key 与 API 通道在动手注册 MCP 之前先把 Key 和 API 通道准备好。这一步的意义在于后面无论你装飞书 MCP、数据库 MCP 还是别的服务都不需要为每个服务单独折腾一套鉴权统一走 TaoToken 的通道即可。TaoToken 在这里扮演的是统一入口的角色。你注册后拿到一个 API KeyClaude Code 和 Cursor 都复用这一个 Key省去多平台反复配置的麻烦。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点固定为 https://taotoken.net/api 。拿到 Key 之后先确认 Claude Code 本体已经装好。在系统终端执行claude --version能打印出版本号就说明 CLI 可用。如果提示 command not found先把 Claude Code 的 CLI 装好再继续。接着检查当前 MCP 状态claude mcp list刚装好的环境这里通常是空的或者只有默认项。记住这个输出后面注册完要对比。关于 Key 的获取和模型对话调试可以走这个入口https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。如果你只是想先验证模型通道是否通用模型对话页面更快https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。注意MCP 注册命令必须在系统终端执行不要在 Claude Code 对话界面里执行。这是整篇内容最关键的一条。3. 可复制配置settings.json 与 config.toml 骨架MCP 的注册有两种落地方式一种是用claude mcp add-json命令直接写另一种是手动编辑配置文件。命令方式适合快速添加配置文件方式适合批量管理和版本控制。两种我都会给骨架。先看命令方式。假设你要装飞书 MCP在系统终端执行claude mcp add-json feishu {command:npx,args:[-y,larksuiteoapi/lark-mcp,mcp,-a,APP_ID,-s,APP_SECRET,-u,USER_TOKEN],env:{}}这里的feishu是服务名后面claude mcp list里显示的就是它。command是启动命令args是参数数组env是环境变量。JSON 里的引号在 shell 里要用单引号包住整体避免被 shell 提前解析。如果你更习惯手动编辑Claude Code 的用户级配置文件在~/.claude/settings.json项目级在项目根目录的.mcp.json。骨架如下{ mcpServers: { feishu: { command: npx, args: [ -y, larksuiteoapi/lark-mcp, mcp, -a, APP_ID_HERE, -s, APP_SECRET_HERE, -u, USER_TOKEN_HERE ], env: {} } } }项目级.mcp.json的格式完全一样区别只是作用范围。用户级对所有项目生效项目级只对当前目录生效。团队协作时把.mcp.json提交到仓库其他人拉下来就能用同一套 MCP 定义。再看 Cursor 侧。Cursor 的 MCP 配置在~/.cursor/mcp.json格式和上面几乎一致{ mcpServers: { feishu: { command: npx, args: [ -y, larksuiteoapi/lark-mcp, mcp, -a, APP_ID_HERE, -s, APP_SECRET_HERE, -u, USER_TOKEN_HERE ], env: {} } } }如果你用的是带 TOML 配置的工具链config.toml骨架长这样[mcp_servers.feishu] command npx args [-y, larksuiteoapi/lark-mcp, mcp, -a, APP_ID_HERE, -s, APP_SECRET_HERE, -u, USER_TOKEN_HERE] [mcp_servers.feishu.env]三种格式表达的是同一件事告诉工具用哪个命令、带哪些参数、注入哪些环境变量。选一种你顺手的即可不要混用。4. 验证请求claude mcp list与成功结果配置写完之后验证是必须的。回到系统终端执行claude mcp list如果注册成功你会看到类似这样的输出feishu: npx -y larksuiteoapi/lark-mcp mcp -a APP_ID -s APP_SECRET -u USER_TOKEN - ✓ Connected关键是末尾的✓ Connected。如果显示✗ Failed或者干脆没出现说明注册没生效回到上一节检查 JSON 格式和参数。想单独看某个服务的详情claude mcp get feishu这个命令会打印出该服务的完整配置包括 command、args、env 和作用域。用它来确认参数有没有写错。确认列表可见之后重新进入 Claude Codeclaude在会话里输入/mcp会列出当前挂载的 MCP 服务及其状态。到这里外挂 MCP 就算跑通了。整个过程的核心就一句话注册在外部验证在外部使用在内部。如果你在验证阶段想先确认模型通道本身是通的可以走模型对话入口快速测一条请求https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。通道没问题再回来排查 MCP 配置能少走很多弯路。5. 本篇常见错排查错误一在 Claude Code 对话界面里执行claude mcp add-json。这是最高频的坑。对话界面只认斜杠指令系统命令一律不执行。解决方式先/exit退出回到系统终端再执行。错误二JSON 引号被 shell 吃掉。命令里的 JSON 如果外层用双引号里面的双引号会和 shell 冲突。正确做法是外层用单引号内层用双引号。如果 JSON 里本身需要单引号再做转义。错误三npx找不到包。报错里出现404 Not Found或command not found通常是包名写错或者网络拉取失败。先手动执行一次npx -y larksuiteoapi/lark-mcp --help确认包能拉下来再写进 MCP 配置。错误四claude mcp list里看不到刚加的服务。检查作用域。claude mcp add默认写用户级如果你在项目目录里用了-s project那服务只在当前项目可见。换目录执行claude mcp list自然看不到。用claude mcp get 服务名确认它到底写到了哪一层。错误五Token 过期导致连接失败。飞书这类服务的用户 Token 有有效期过期后claude mcp list会显示连接失败。重新生成 Token用claude mcp remove feishu删掉旧配置再用新 Token 重新add-json即可。错误六Cursor 和 Claude Code 配置不一致。两边用的是不同的配置文件改了 Claude Code 的不会自动同步到 Cursor。如果你希望两边复用同一套 MCP 定义把.mcp.json的内容手动同步到~/.cursor/mcp.json或者用同一份模板生成。排查顺序建议固定下来先确认在系统终端执行再看 JSON 格式再看包能否拉取最后看作用域和 Token。按这个顺序走基本不会卡住。6. 长期编码与 Agent 场景的 Key 复用MCP 跑通之后接下来会进入长期使用阶段。这时候 Key 的管理方式直接影响效率。如果你同时用 Claude Code 做编码、用 Cursor 做补全、还跑一些 Agent 任务每个工具单独配一套 Key 会非常乱。TaoToken 的统一 Key 在这里的价值就体现出来了一个 Key 覆盖多个工具换工具不用换鉴权。Claude Code 侧通过 API 通道接入Cursor 侧复用同一个 KeyAgent 任务也走同一套。配置一次后面新增工具只是复制粘贴的事。如果你打算把编码和 Agent 场景长期跑起来可以看一下 Coding Plan 的入口https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。它适合需要稳定通道和统一管理的长期使用场景。接入文档在这里https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。遇到接入层面的报错先翻文档比到处搜更快。控制台入口https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 管理和用量查看都在里面。最后回到那个最容易被忽略的点MCP 必须在 Claude Code 外面装。记住这一条配合claude mcp list验证再复杂的 MCP 服务也只是复制一段 JSON 的事。
