1. 为什么要在 Claude Code 里同时搞定 CLAUDE.md 和 MCP
Claude Code 是 Anthropic 推出的终端内编码代理,它能在你的项目目录里读写文件、跑命令、改代码。但很多人装完之后只把它当成一个"会聊天的终端",用几次就发现两个问题:一是每次开新会话都要重新交代项目背景,二是它够不到你的数据库、内部 API、文档系统,只能靠你手动贴内容。
这两个问题对应的解法就是 CLAUDE.md 和 MCP。CLAUDE.md 是放在项目根目录的规则文件,Claude Code 每次启动会自动读取,相当于给 AI 一份"项目说明书",把技术栈、命名规范、目录结构、禁止事项固化下来。MCP(Model Context Protocol)是一套开放协议,让 Claude Code 通过声明式配置连接到外部工具服务,比如数据库查询、文件检索、第三方 API。
而要把这两件事串起来,中间还需要一个稳定的模型通道。Claude Code 默认走 Anthropic 官方接口,国内开发者直接调用经常遇到网络和额度问题。TaoToken 提供统一的 Key 和 API 通道,把 Claude Code 的请求转发到可用模型上,你只需要在 settings.json 里改一个 base_url 和 api_key 就能接入。这篇就按"通道配置 → CLAUDE.md 骨架 → MCP 声明 → 验证 → 排障"的顺序,给你一套可以直接复制的落地配置。
适合谁看:已经装好 Claude Code、想用 CLAUDE.md 固化项目规则、并且准备接入 MCP 服务的中高级开发者。如果你还没装 Claude Code,先去官网看安装说明,这篇不重复安装步骤。
2. TaoToken 前置准备:拿到统一 Key 和通道地址
在动 settings.json 之前,先把通道信息准备好。TaoToken 的角色是统一入口:你注册后在控制台创建一个 API Key,之后 Claude Code、其他支持自定义 base_url 的客户端都能复用这个 Key,不用每个工具单独申请。
具体操作路径:
打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 注册账号,进入控制台。在控制台里找到 API Keys 页面,新建一个 Key,复制出来保存好。这个 Key 只显示一次,丢了只能重建。
通道地址用 https://taotoken.net/api 作为 base_url。注意这里不要加任何查询参数,Claude Code 会自己在后面拼接/v1/messages这类路径。
关于模型名,Claude Code 默认请求的是 Anthropic 系列模型标识。你在 TaoToken 控制台里确认一下当前通道支持的模型列表,把模型名记下来,后面写进 settings.json 的ANTHROPIC_MODEL字段。如果你不确定用哪个,先用控制台里标注为"通用"或"推荐"的那个。
注意:API Key 属于敏感凭证,不要提交到 Git 仓库。建议放在环境变量或本地 settings 文件里,并在 .gitignore 中排除。
这一步做完,你手里应该有三样东西:一个 API Key、一个 base_url(https://taotoken.net/api)、一个模型名。接下来写配置。
3. 可复制的 settings.json 与 CLAUDE.md 骨架
Claude Code 的配置分两层:全局配置在用户目录下的.claude/settings.json,项目级配置在项目根目录的.claude/settings.json。项目级优先级更高,团队协作时推荐把项目级配置提交到仓库(Key 除外),让所有人共享同一套规则。
3.1 settings.json 完整骨架
下面这份是项目级.claude/settings.json,把通道、模型、权限、MCP 服务声明都放进去了:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的TaoToken密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-20250514" }, "permissions": { "allow": [ "Read", "Glob", "Grep" ], "ask": [ "Bash(git commit:*)", "Bash(npm publish:*)" ], "deny": [ "Bash(rm -rf:*)", "Read(./.env)" ] }, "mcpServers": { "project-db": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-postgres", "postgresql://readonly:password@localhost:5432/mydb" ] }, "local-docs": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "./docs" ] } } }几个关键点解释一下。env块里的三个变量是通道核心:ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址,ANTHROPIC_API_KEY填你刚才复制的 Key,ANTHROPIC_MODEL填控制台确认的模型名。permissions块控制工具调用权限:allow里的读操作直接放行,ask里的危险命令每次询问,deny里的直接拒绝。mcpServers块声明 MCP 服务,每个服务一个名字,command是启动命令,args是参数。
注意:MCP 服务里的数据库连接串建议用只读账号,不要用生产库的写权限账号。Claude Code 通过 MCP 能执行查询,权限给大了风险不可控。
3.2 CLAUDE.md 骨架
CLAUDE.md 放在项目根目录,Claude Code 启动时自动加载。它不是越长越好,重点是让 AI 快速建立项目认知。下面这份骨架你可以直接改:
# 项目说明 ## 技术栈 - 后端:FastAPI + SQLAlchemy + PostgreSQL - 前端:React 18 + TypeScript + Vite - 测试:pytest + vitest - 部署:Docker Compose ## 目录结构 - `backend/app/` 后端主代码,按模块分目录 - `backend/tests/` 测试文件,与 app 目录结构镜像 - `frontend/src/` 前端源码,组件放 components/ - `docs/` 项目文档,MCP 的 local-docs 服务指向这里 ## 编码规范 - Python 用 black 格式化,行宽 88 - TypeScript 用 prettier,单引号,无分号 - 所有公开函数必须有类型注解和 docstring - 禁止在业务代码里直接写 SQL 字符串,走 ORM ## 命名约定 - 数据库表名用 snake_case 复数,如 `user_orders` - React 组件用 PascalCase,文件名与组件名一致 - API 路由前缀 `/api/v1/` ## 禁止事项 - 不要修改 `alembic/versions/` 下的迁移文件 - 不要提交 `.env` 和任何密钥文件 - 不要删除 `docs/` 下的文档,只能新增或修改 ## 常用命令 - 启动后端:`uvicorn app.main:app --reload` - 跑测试:`pytest backend/tests -v` - 前端开发:`cd frontend && npm run dev`这份骨架覆盖了技术栈、目录、规范、命名、禁止事项、常用命令六块。你可以按项目实际情况增删。实测下来,把"禁止事项"写清楚能明显减少 AI 乱改文件的情况,尤其是迁移文件和配置文件。
3.3 两层配置的加载顺序
Claude Code 启动时先读全局~/.claude/settings.json,再读项目级.claude/settings.json,后者覆盖前者。CLAUDE.md 同理,全局的~/.claude/CLAUDE.md先加载,项目级的后加载并追加。所以你可以把个人偏好放全局,把项目规则放项目级,互不冲突。
4. 验证请求:确认通道和 MCP 都生效
配置写完,先别急着让它改代码。用一条命令确认通道通了,再确认 MCP 服务起来了。
4.1 验证模型通道
在项目根目录打开终端,运行:
claude -p "用一句话说明当前项目的技术栈"-p是 print 模式,执行完直接输出结果不进入交互。如果通道配置正确,你会看到它根据 CLAUDE.md 里的技术栈描述回答,比如"这个项目后端用 FastAPI + SQLAlchemy + PostgreSQL,前端用 React 18 + TypeScript"。
如果报错401 Unauthorized,说明 API Key 不对或没生效。如果报错Connection error,检查ANTHROPIC_BASE_URL是不是写成了https://taotoken.net/api,注意结尾不要带斜杠。
4.2 验证 MCP 服务
进入交互模式,运行:
claude然后在对话里输入:
/mcp这个斜杠命令会列出当前加载的 MCP 服务及其状态。你应该能看到project-db和local-docs两个服务,状态显示为 connected。如果某个服务显示 failed,看下面的排障章节。
4.3 验证 MCP 实际可用
确认服务连接后,直接让它用 MCP 查东西:
用 project-db 查一下 user_orders 表有多少行如果 MCP 配置正确,它会调用 postgres 服务执行SELECT COUNT(*) FROM user_orders并返回结果。这一步能跑通,说明从 Claude Code 到 TaoToken 通道再到 MCP 服务的整条链路都通了。
4.4 验证 CLAUDE.md 规则生效
最后测一下规则约束。输入:
在 backend/app/ 下新建一个用户查询接口观察它生成的代码:如果遵守了 CLAUDE.md 里的"公开函数必须有类型注解和 docstring""走 ORM 不写裸 SQL",说明规则文件被正确加载。如果它写了裸 SQL 或没加类型注解,检查 CLAUDE.md 是不是放在了项目根目录,文件名大小写是否正确。
5. 本篇常见错排查
配置过程中最容易踩的坑集中在这几类,按报错信息对照排查。
5.1 通道类报错
401 Unauthorized:API Key 错误或过期。去 TaoToken 控制台重新生成一个,替换 settings.json 里的值。注意 Key 前后不要有空格。
404 Not Found:base_url 写错了。正确值是https://taotoken.net/api,不要写成https://taotoken.net/api/v1或带其他路径。Claude Code 会自己拼接完整路径。
model not found:ANTHROPIC_MODEL填的模型名不在通道支持列表里。去控制台确认可用模型名,注意大小写和版本号后缀。
Connection timeout:网络问题。先确认能正常访问 https://taotoken.net/api,如果控制台能打开但 API 超时,检查本地是否有防火墙拦截。
5.2 MCP 类报错
MCP 服务显示 failed:先看command能不能手动跑通。比如npx -y @modelcontextprotocol/server-postgres ...这行,复制到终端单独执行,看报什么错。常见原因是 npx 没装、Node 版本太低、或者连接串格式不对。
数据库连接被拒:检查连接串里的 host、port、用户名、密码、库名。如果数据库在本地,确认服务已启动。如果用 Docker,确认端口映射正确。
MCP 服务启动但工具调不通:有些 MCP 服务需要额外的环境变量,比如 API token。在mcpServers的对应服务里加env字段:
"project-db": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://..."], "env": { "PGOPTIONS": "-c statement_timeout=5000" } }5.3 CLAUDE.md 类问题
规则不生效:确认文件名是CLAUDE.md全大写,放在项目根目录。Claude Code 只认这个位置和文件名。子目录里的 CLAUDE.md 会在进入该目录时加载,但根目录那份是全局生效的。
规则冲突:如果全局和项目级 CLAUDE.md 有矛盾指令,项目级优先。但为了避免混乱,建议全局只放个人偏好,项目规则全部放项目级。
内容太长导致加载慢:CLAUDE.md 控制在 200 行以内,把详细文档放docs/目录,用 MCP 的 filesystem 服务按需读取,而不是全塞进规则文件。
5.4 权限类问题
工具调用被拒:检查permissions.deny里是不是误伤了需要的命令。比如你把Bash(git:*)放进了 deny,那所有 git 操作都会被拒。deny 的匹配是前缀匹配,写的时候要精确。
每次都要确认太烦:把高频只读操作放进allow,比如Read、Glob、Grep。写操作和危险命令保留在ask里,平衡效率和安全性。
6. 把通道、规则、MCP 串成日常工作流
配置跑通之后,日常使用就是三件事的配合:CLAUDE.md 保证每次会话的上下文一致,MCP 保证 AI 能拿到项目外的数据,TaoToken 通道保证请求稳定可达。
我自己的习惯是:新项目初始化时先写 CLAUDE.md,把技术栈和禁止事项定下来;然后按需加 MCP 服务,通常一个数据库查询加一个文档检索就够用;settings.json 里的权限配置随项目推进逐步收紧,一开始 allow 给宽一点,发现风险操作再往 ask 或 deny 挪。
如果你还在用默认通道,建议先把 settings.json 里的三个 env 变量换成 TaoToken 的配置,这一步改动最小、收益最直接。通道稳定之后,再花时间打磨 CLAUDE.md 和 MCP 声明,这两块决定了 AI 能不能真正理解你的项目。
需要长期跑编码任务或 Agent 工作流的,可以看 Coding Plan 页面了解额度方案;只是想验证模型对话效果的,用模型对话入口快速试;配置过程中遇到接入问题的,直接查接入文档和 API Keys 管理页。通道地址统一用 https://taotoken.net/api,控制台在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。