1. Mac 上 VS Code 接入 Claude/Codex 的真实痛点
如果你刚拿到 Mac,想用 VS Code 同时跑 Claude 和 Codex 两套 AI 编码助手,大概率会卡在三个地方:一是 Key 分散,Claude 一个 Key、Codex 一个 Key、搜索类 MCP 又要一个 Key,散落在不同配置文件里,改一次要翻半天;二是 MCP 配置繁琐,~/.claude/config.json和~/.codex/config.toml两套格式不一样,一个 JSON 一个 TOML,写错一个逗号就整个服务起不来;三是验证困难,配完了不知道 AI 补全到底走没走通、MCP 工具到底调没调用成功。
这篇教程就是解决这三个问题的。我会带你在 Mac 上从零搭一套 VS Code + Claude/Codex 协同开发环境,用 TaoToken 作为统一的 Key/API 通道,把多工具的鉴权收敛到一个入口,再给出可直接复制的settings.json和 MCP 配置骨架,最后用四条指令验证 AI 补全和 MCP 调用是否真的生效。适合刚上手 Mac、想一次性把 AI 编码环境配干净的新手,也适合已经被多 Key 折磨过的老手。
先说清楚这套环境能做什么:VS Code 里装好 Claude Code 和 Codex 两个官方扩展后,你可以在编辑器内直接对话、让它改代码、跑 MCP 工具链(比如顺序思考、任务管理、代码索引、联网搜索)。TaoToken 在这里扮演的角色是统一 API 通道,你只需要维护一份 Key,Claude 和 Codex 都指向同一个入口,省掉到处找 Key 的麻烦。
2. TaoToken 前置准备:统一 Key 与 API 通道
在动手改配置文件之前,先把 TaoToken 这边的准备工作做完。这一步的核心目标是拿到一个可用的 API Key,并确认 API 通道地址,后面 Claude 和 Codex 的配置都会引用它。
打开 TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,注册并登录后进入控制台。控制台地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,在这里你能看到账户概览和 Key 管理入口。
接着去 API Keys 页面创建 Key,地址 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。点新建,起个能认出来的名字,比如mac-vscode-dev,创建后立刻复制保存。这个 Key 只会完整显示一次,关掉页面就看不到了,建议先粘到备忘录里。
API 通道的基础地址是 https://taotoken.net/api ,注意这个地址不带任何查询参数,配置时直接填这个。如果你后面要接 Claude Code 这类工具,它需要的 Anthropic 兼容入口也走这个 base,具体路径在工具文档里有说明,可以对照 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 查看。
注意:Key 属于敏感凭证,不要提交到 Git 仓库,也不要贴到公开的 issue 或聊天群里。建议放在本地配置文件,并在
.gitignore里排除相关路径。
如果你打算长期用 Claude 做编码和 Agent 任务,可以顺带看一下 Coding Plan 页面 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite ,了解套餐和额度策略,避免写到一半额度不够。想先验证模型通不通,可以直接用模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite 发一条消息试试,确认 Key 有效再往下走。
3. 可复制配置:VS Code settings.json 与 MCP 骨架
这一节是全文的核心,所有配置都可以直接复制,只需要替换 Key 和路径。先确认基础运行环境:Mac 上装好 Node.js(建议 18 以上)、Git、Python3,然后全局安装两个 CLI:
npm install -g @anthropic-ai/claude-code npm install -g @openai/codex装完后在终端执行claude --version和codex --version,能打印版本号就说明 CLI 就绪。接着在 VS Code 扩展市场搜索并安装两个官方扩展:Claude Code for VS Code(发布者是 Anthropic)和Codex – OpenAI's coding agent(发布者是 OpenAI)。认准发布者,别装到同名的第三方扩展。
3.1 VS Code settings.json 统一入口
打开 VS Code,按Cmd + Shift + P,输入Open User Settings (JSON),在打开的settings.json里加入下面这段。它的作用是把 Claude 和 Codex 的 API 入口都指向 TaoToken,Key 只写一份:
{ "claude-code.environmentVariables": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的TaoTokenKey" }, "codex.environmentVariables": { "OPENAI_BASE_URL": "https://taotoken.net/api", "OPENAI_API_KEY": "sk-你的TaoTokenKey" }, "terminal.integrated.env.osx": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的TaoTokenKey", "OPENAI_BASE_URL": "https://taotoken.net/api", "OPENAI_API_KEY": "sk-你的TaoTokenKey" } }这里terminal.integrated.env.osx很关键,它保证你在 VS Code 内置终端里跑claude或codex命令时,也能读到同一份环境变量,不用再单独 export。
3.2 Claude MCP 配置骨架
Claude 的 MCP 配置放在~/.claude/config.json。在终端执行code ~/.claude/config.json,文件不存在就新建。下面这份骨架包含顺序思考、任务管理、Codex 桥接、浏览器调试、联网搜索和代码索引六个常用服务:
{ "mcpServers": { "sequential-thinking": { "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"], "env": {} }, "shrimp-task-manager": { "command": "npx", "args": ["-y", "mcp-shrimp-task-manager"], "env": { "DATA_DIR": ".shrimp", "TEMPLATES_USE": "zh", "ENABLE_GUI": "false" } }, "codex": { "type": "stdio", "command": "codex", "args": ["mcp", "serve"], "env": {} }, "chrome-devtools": { "type": "stdio", "command": "npx", "args": ["chrome-devtools-mcp@latest"], "env": {} }, "exa": { "type": "stdio", "command": "npx", "args": [ "-y", "@smithery/cli@latest", "run", "exa", "--key", "你的ExaKey" ], "env": {} }, "code-index": { "command": "uvx", "args": ["code-index-mcp"], "env": {} } } }code-index依赖uvx,Mac 上先装uv:pip3 install uv,装完uvx --version能输出即可。exa的 Key 需要去 Smithery 注册后获取,格式类似一串激活码,替换掉你的ExaKey。
3.3 Codex MCP 配置骨架
Codex 用的是 TOML 格式,路径~/.codex/config.toml,终端执行code ~/.codex/config.toml打开或新建:
[mcp_servers.chrome-devtools] type = "stdio" command = "npx" args = ["chrome-devtools-mcp@latest"] env = {} [mcp_servers.sequential-thinking] type = "stdio" command = "npx" args = ["-y", "@modelcontextprotocol/server-sequential-thinking"] env = {} [mcp_servers.exa] type = "stdio" command = "npx" args = [ "-y", "@smithery/cli@latest", "run", "exa", "--key", "你的ExaKey" ] env = {}TOML 里字符串必须用双引号,数组用方括号,别把 JSON 的写法混进来,这是最常见的报错来源。两份配置都改完后,完全退出 VS Code 再重新打开,让环境变量和 MCP 服务重新加载。
4. 验证请求:AI 补全与 MCP 调用是否生效
配置写完不代表生效,必须验证。我一般分两步:先验证 API 通道通不通,再验证 MCP 工具能不能被调用。
第一步,在 VS Code 内置终端里直接发一条请求,确认 TaoToken 通道正常:
curl https://taotoken.net/api/v1/messages \ -H "x-api-key: sk-你的TaoTokenKey" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "max_tokens": 64, "messages": [{"role": "user", "content": "回复两个字:通了"}] }'返回 JSON 里content字段有内容,说明 Key 和通道都没问题。如果返回 401,检查 Key 有没有多余空格;返回 404,检查 base 地址是不是写成了带路径的形式。
第二步,在 VS Code 里打开 Claude Code 面板,依次输入下面四条指令,观察输出:
尝试通过 MCP 协议调用 codex 用 python 写一个计算一百以内素数的简单脚本,开始 修改脚本为 200 以内的素数 测试一下搜索功能,随便搜索点什么第一条如果返回 Codex 的响应,说明codex mcp serve桥接成功;第二条和第三条能连续改代码,说明文件读写和上下文保持正常;第四条如果返回联网搜索结果,说明exaMCP 生效。四条都过,环境就算搭完了。
提示:如果某条指令卡住不动,先看 VS Code 输出面板里对应扩展的日志,MCP 启动失败通常会在那里打印具体命令和错误码。
5. 本篇常见错排查
配置过程中最容易踩的坑集中在下面几类,对照排查基本能解决。
MCP 服务起不来,报command not found。原因是 VS Code 启动时读不到npx或uvx的路径。Mac 上 GUI 应用的环境变量和终端不一样,解决办法是在配置里把command写成绝对路径,比如which npx查出来的/opt/homebrew/bin/npx,替换掉配置里的npx。
JSON 或 TOML 语法错误导致整个配置失效。JSON 不允许尾随逗号,TOML 不允许用花括号包对象。改完可以用python3 -m json.tool ~/.claude/config.json校验 JSON,TOML 可以用python3 -c "import tomllib;tomllib.load(open('$HOME/.codex/config.toml','rb'))"校验。
Key 泄露风险。如果你把配置放进了项目目录而不是用户目录,记得在.gitignore里加上.claude/、.codex/和任何含 Key 的文件。用户目录下的配置不受 Git 影响,相对安全。
Claude 和 Codex 抢同一个端口或进程。两个扩展同时启动 MCP 时,如果都用了chrome-devtools,可能出现端口冲突。实测下来,把不常用的那个 MCP 在对应配置里注释掉,或者错开使用,能避免大部分冲突。
改了配置但没生效。VS Code 的扩展环境变量在启动时读取,改完必须完全退出(Cmd + Q)再打开,只关窗口不算。MCP 配置同理,改完要重启对应扩展或整个编辑器。
6. 后续接入与验证入口
环境搭好之后,日常使用中如果遇到接入类问题,比如 Key 失效、base 地址要调整、想换模型,优先去 API Keys 页面 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 重新生成或管理 Key,再对照接入文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 核对参数格式。
想快速验证某个模型在当前通道下能不能用,直接用模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite 发一条消息,比改配置再重启快得多。如果你打算把 Claude 长期用在编码和 Agent 任务上,Coding Plan 页面 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 里有额度说明,提前看一眼能避免写到一半断掉。
最后留一个我自己的习惯:每次改完 MCP 配置,先跑一遍第 4 节那四条验证指令,确认全过再开始正式项目。这样出问题时能立刻定位是配置问题还是项目问题,省掉大量来回排查的时间。