Claude Code 完整上手指南:MCP、Skills、第三方模型配置一次搞定

Claude Code 是 Anthropic 官方出的命令行工具,直接在终端里跟 Claude 交互,干的事情就是帮你写代码、改代码、跑命令。跟 ChatGPT 那种网页聊天不一样,它是嵌在你开发工作流里的------你在哪个目录下启动它,它就能读那个目录的代码,理解项目结构,然后直接动手改文件。

说白了,它把"复制代码到聊天框→拿到回复→粘贴回编辑器"这个循环给干掉了。

安装

原生安装器(推荐)

这是目前官方推荐的方式,零依赖,不需要 Node.js,装完自动后台更新。

macOS / Linux:

bash 复制代码
curl -fsSL https://claude.ai/install.sh | bash

Windows:

powershell 复制代码
winget install Anthropic.ClaudeCode

Homebrew(macOS)

bash 复制代码
brew install --cask claude-code

能用,但新版本发布后 Homebrew 那边会有几小时到一两天的同步延迟。追新版本的话还是用原生安装器。

npm(已不推荐)

bash 复制代码
npm install -g @anthropic-ai/claude-code

从 v2 开始就标记为 deprecated 了。如果你有特殊原因需要锁定版本,还能用,但一般没必要。需要 Node.js 18+ 环境。

启动

装完之后,cd 到你的项目目录,直接敲:

bash 复制代码
claude

第一次用会让你登录 Anthropic 账号做认证。搞定之后就进入交互式对话了。如果你没有 Anthropic 账号,文章后面会有介绍如何接入其它模型。

非交互模式(适合脚本调用):

bash 复制代码
claude -p "解释一下 src/auth.ts 里的登录逻辑"

核心用法

让它读代码

最基础的用法------你不确定某段代码干了什么,直接问:

复制代码
这个项目的入口文件在哪?整体架构是怎样的?

它会自己去翻文件、读代码,然后给你一个总结。不需要你手动指定文件路径(当然你也可以指定)。

让它改代码

比如你想给某个函数加个参数校验:

bash 复制代码
给 src/utils/validate.ts 里的 parseConfig 函数加上参数类型检查,如果传入的不是对象就抛 TypeError

它会读文件、定位函数、改代码、写回去。改之前会把 diff 展示给你看,你确认了才会真正写入。

让它跑命令

复制代码
跑一下测试看看有没有挂的

它会根据项目里的配置(package.json、Makefile 之类的)判断该用什么命令,然后执行。执行前同样会让你确认。

让它处理 Git 操作

sql 复制代码
把当前改动提交一下,commit message 写清楚点

它会看 diff、生成 commit message、执行 git add 和 commit。但默认不会 push------推送到远端这种不可逆操作,它会额外确认。

权限模型

Claude Code 有三种权限模式,控制它能自动做什么、什么需要你点确认:

  • Ask mode:所有操作都要确认。适合刚开始用、不太信任它的时候。
  • Auto-edit mode:读文件和改文件自动放行,但跑命令还是要确认。日常开发比较推荐这个。
  • Full auto mode:啥都自动干。适合你很清楚它要做什么、或者在沙箱环境里跑的场景。

切换方式:在交互模式里输入 /permissions 就能调。

一个实用建议:刚上手先用 Ask mode 跑几天,观察它的行为模式,心里有数了再切到 Auto-edit。

CLAUDE.md:给它立规矩

项目根目录下放一个 CLAUDE.md 文件,Claude Code 每次启动都会读它。你可以在里面写:

  • 项目的技术栈和约定
  • 代码风格要求
  • 哪些文件不要动
  • 常用命令是什么

示例:

markdown 复制代码
# 项目约定

- 使用 TypeScript strict mode
- 组件用 PascalCase 命名,工具函数用 camelCase
- 测试文件放在同目录下的 **tests** 文件夹
- 不要修改 src/generated/ 下的任何文件,那是自动生成的
- 运行测试:pnpm test
- 运行 lint:pnpm lint

这个文件的好处是团队共享------提交到仓库里,所有人用 Claude Code 的时候都遵守同一套规矩。

MCP:给 Claude Code 接外挂

MCP 是什么

MCP(Model Context Protocol)是 Anthropic 搞的一套开放协议,2025 年捐给了 Linux 基金会。简单说就是一个标准化的接口,让 Claude Code 能连接外部工具和服务------数据库、浏览器、搜索引擎、GitHub、各种 API,都能通过 MCP 接进来。

没有 MCP 的时候,Claude Code 只能读文件、改文件、跑命令。有了 MCP,它能查数据库、搜网页、操作浏览器、调第三方 API,能力边界一下子扩大了很多。

怎么加 MCP Server

claude mcp add 命令:

bash 复制代码
# 基本格式
claude mcp add <server-name> -- <启动命令>

# 指定作用域
claude mcp add <server-name> --scope user    # 个人级别,所有项目可用
claude mcp add <server-name> --scope project # 项目级别,跟着仓库走

举个例子,加一个 GitHub MCP server:

bash 复制代码
claude mcp add github -- npx -y @modelcontextprotocol/server-github

加完之后重启 Claude Code 就能用了。也可以直接编辑配置文件,位置在项目的 .claude/settings.json 或者用户级别的配置目录里:

json 复制代码
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxx"
      }
    }
  }
}

推荐的 MCP Server

用了一段时间下来,这几个是真正高频用到的:

Context7 ------ 实时文档查询

这个强烈推荐。它能拉取各种库的最新文档和代码示例,解决"训练数据过时"的问题。你问 Claude 一个 Next.js 14 的 API 用法,它可能给你的是旧版本的写法,但有了 Context7,它会去查最新文档再回答。

bash 复制代码
claude mcp add context7 -- npx -y @upstash/context7-mcp

Memory ------ 跨会话记忆

Claude Code 默认每次对话是独立的,关掉终端就忘了。Memory server 提供一个持久化的知识图谱,让它能记住跨会话的信息------比如你的项目架构决策、之前踩过的坑。

bash 复制代码
claude mcp add memory -- npx -y @modelcontextprotocol/server-memory

GitHub ------ 仓库操作

不只是 git 命令那些基础操作,而是 GitHub 平台层面的------创建 PR、review 代码、管理 issue、查 CI 状态。

bash 复制代码
claude mcp add github -- npx -y @modelcontextprotocol/server-github

需要设置 GITHUB_PERSONAL_ACCESS_TOKEN 环境变量。

Brave Search ------ 网页搜索

让 Claude Code 能搜索互联网。遇到不确定的技术问题,它可以先搜一下再回答,而不是纯靠训练数据瞎编。

bash 复制代码
claude mcp add brave-search -- npx -y @modelcontextprotocol/server-brave-search

需要 Brave Search API key。

Puppeteer ------ 浏览器自动化

能操控浏览器,适合做 E2E 测试、截图、抓取页面内容。

bash 复制代码
claude mcp add puppeteer -- npx -y @modelcontextprotocol/server-puppeteer

PostgreSQL ------ 数据库操作

直接查数据库、看表结构、跑 SQL。调试数据相关的 bug 时特别有用。

bash 复制代码
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres postgresql://user:pass@localhost/dbname

Sequential Thinking ------ 深度推理

遇到复杂问题时,让 Claude 用更结构化的方式一步步推理,而不是一口气给答案。适合架构设计、复杂 bug 分析这类需要深度思考的场景。

bash 复制代码
claude mcp add sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking

MCP 使用建议

  • 不要一口气装太多。每个 MCP server 都会占启动时间和上下文空间,装个五六个常用的就够了
  • 敏感信息(数据库密码、API key)放环境变量里,别硬编码在配置文件中
  • 项目级别的 MCP 配置(.claude/settings.json)可以提交到仓库,但记得把 env 里的密钥排除掉
  • /mcp 命令可以在会话中查看和管理当前加载的 MCP server

Skills:可复用的工作流

Skills 是什么

Skills 本质上就是 markdown 文件,里面写着一套指令。你把它放到指定目录,Claude Code 就能识别并加载。可以理解为"预设的 prompt 模板",但比直接粘贴 prompt 方便得多------它跟 slash command 是统一的,创建一个 skill 就自动注册为一个 /命令

适用场景:你发现自己反复给 Claude Code 说同样的话("用 vitest 写测试,覆盖边界情况,mock 外部依赖"),那就该把它做成 skill 了。

怎么创建 Skill

在项目里创建这个路径的文件:

bash 复制代码
.claude/skills/<skill-name>/SKILL.md

或者放在用户级别(所有项目通用):

javascript 复制代码
~/.claude/skills/<skill-name>/SKILL.md

文件内容就是 markdown,可以带 YAML frontmatter 来控制行为:

markdown 复制代码
---
name: write-test
description: 为指定模块编写单元测试
allowed-tools:
  - Bash
  - Read
  - Write
  - Edit
---

# 编写单元测试

按照以下规范为目标模块编写测试:

1. 使用 vitest 作为测试框架
2. 测试文件放在同目录的 **tests** 文件夹下
3. 文件名格式:<module-name>.test.ts
4. 必须覆盖:正常路径、边界情况、错误处理
5. 外部依赖一律 mock,不要发真实网络请求
6. 每个测试用 describe 分组,用清晰的中文描述测试意图
7. 写完之后跑一遍确认全部通过

保存之后不需要重启,Claude Code 会自动识别。在对话里输入 /write-test 就能触发。

frontmatter 字段说明

  • name:skill 的标识符,也是 slash command 的名字
  • description:描述这个 skill 干什么。Claude 会根据这个描述判断是否自动激活
  • allowed-tools:限制这个 skill 能用哪些工具。比如一个只读分析的 skill,可以只给 Read 权限

内置的 Slash Commands

Claude Code 自带这些命令,不需要额外配置:

命令 干什么的
/help 查看帮助
/compact 压缩对话历史,释放上下文空间
/clear 清空对话,重新开始
/init 读取项目结构,生成 CLAUDE.md 初始文件
/model 切换模型(Opus / Sonnet / Haiku)
/review 审查代码改动
/commit 生成 commit message 并提交
/pr 创建 Pull Request
/config 打开或修改设置
/mcp 管理 MCP server
/fast 切换快速模式(同模型,输出更快)
/cost 查看当前会话的 token 用量和费用
/doctor 诊断配置问题

推荐自建的几个 Skill

代码审查 skill

markdown 复制代码
---
name: review
description: 按团队标准审查代码
allowed-tools:
  - Read
  - Grep
  - Glob
---

# 代码审查

审查当前分支相对于 main 的所有改动,关注以下方面:

1. 安全问题:SQL 注入、XSS、硬编码密钥、不安全的反序列化
2. 性能问题:N+1 查询、不必要的循环、内存泄漏风险
3. 逻辑错误:边界条件、空值处理、竞态条件
4. 代码规范:命名是否清晰、函数是否过长、是否有重复代码
5. 测试覆盖:新增逻辑是否有对应测试

输出格式:按严重程度分级(Critical / Warning / Suggestion),每条给出文件路径、行号、问题描述和修复建议。

部署 skill

markdown 复制代码
---
name: deploy-staging
description: 部署当前分支到 staging 环境
allowed-tools:
  - Bash
  - Read
---

# 部署到 Staging

执行以下步骤:

1. 确认当前分支所有测试通过
2. 确认没有未提交的改动
3. 构建 Docker 镜像并打 tag(格式:staging-<短 commit hash>)
4. 推送到容器仓库
5. 触发 staging 环境的滚动更新
6. 等待健康检查通过
7. 输出部署结果和访问地址

如果任何步骤失败,立即停止并报告原因。

API 文档生成 skill

markdown 复制代码
---
name: gen-api-doc
description: 为 API 端点生成接口文档
allowed-tools:
  - Read
  - Grep
  - Write
---

# 生成 API 文档

读取指定的路由文件,为每个端点生成文档,包含:

- 请求方法和路径
- 请求参数(path / query / body),标注类型和是否必填
- 响应格式,给出示例 JSON
- 错误码说明
- 认证要求

输出为 markdown 格式,保存到 docs/api/ 目录下。

Skill 的自动激活

如果你在 frontmatter 里写了 description,Claude Code 会根据当前对话内容判断是否自动加载这个 skill。比如你的 skill 描述是"为指定模块编写单元测试",当你在对话里说"帮这个函数写个测试",它可能会自动激活这个 skill,不需要你手动输入 /write-test

这个机制挺方便,但如果你不想要自动激活,把 description 去掉就行。

实际工作流场景

场景一:接手陌生项目

刚 clone 下来一个项目,啥都不了解:

复制代码
帮我梳理一下这个项目的目录结构和核心模块,重点说说数据流是怎么走的

比自己一个个文件翻快多了。它会把入口、路由、数据层、工具函数这些串起来讲。

场景二:修 Bug

拿到一个 bug report,知道大概在哪但不确定根因:

bash 复制代码
用户反馈登录后偶尔会跳回登录页。看看 src/auth/ 目录下的 token 刷新逻辑有没有竞态问题

它会读相关代码,分析可能的问题点,然后给出修复方案。你觉得靠谱就让它直接改。

场景三:重构

想把一个大函数拆成几个小的:

css 复制代码
把 src/services/order.ts 里的 processOrder 函数拆分一下,按职责分成校验、计算、持久化三个步骤

场景四:写测试

bash 复制代码
给 src/utils/format.ts 里的所有导出函数补上单元测试,用 vitest,覆盖边界情况

场景五:代码审查

bash 复制代码
看看 src/api/routes.ts 最近的改动有没有安全问题

一些实用技巧

用 /compact 压缩上下文

聊久了上下文会变长,响应变慢。输入 /compact 可以让它总结之前的对话,释放上下文空间。长任务中途用一下很有帮助。

用 /clear 重新开始

如果话题完全换了,/clear 清掉历史重新来,比在旧上下文里继续聊效果好。

多用具体指令,少用模糊描述

不好的问法:

复制代码
帮我优化一下这个项目

好的问法:

css 复制代码
src/components/Table.tsx 渲染 1000 行数据时明显卡顿,看看有没有不必要的 re-render,给个优化方案

越具体,输出质量越高。

善用 --continue 恢复会话

终端不小心关了,或者想接着上次的进度继续:

bash 复制代码
claude --continue

会恢复上一次的对话上下文。

结合 Git 分支工作

建议在 feature branch 上用 Claude Code 干活。这样它做的改动都在独立分支上,不满意直接扔掉分支就行,不会污染主线。

它不擅长什么

说几个别对它期望过高的场景:

  1. 大规模架构设计:它能给建议,但最终的架构决策还是得人来拍。它看不到业务全貌、团队能力、历史包袱这些上下文。

  2. 跨多个仓库的改动:它的工作范围是当前目录。如果改动涉及多个独立仓库,得分别处理。

  3. 需要运行时调试的问题:它能读代码做静态分析,但没法真正跑起来打断点。涉及到具体运行时状态的 bug,还是得配合 debugger。

  4. 涉及敏感信息的操作:不要让它处理包含密钥、密码的文件。虽然对话内容不会被用于训练,但养成习惯比较好。

接入第三方模型

如果你没法订阅 Anthropic 官方服务(网络原因、支付方式限制等),Claude Code 支持通过环境变量把请求转发到其他兼容的 API 端点。只要对方支持 Anthropic 的消息格式,就能直接接入。

核心环境变量

变量名 作用
ANTHROPIC_BASE_URL API 端点地址,默认是 https://api.anthropic.com
ANTHROPIC_AUTH_TOKEN 目标服务的 API Key
ANTHROPIC_MODEL 主力模型名称
ANTHROPIC_SMALL_FAST_MODEL 轻量任务用的小模型(后台操作、快速补全)

以 DeepSeek 为例

DeepSeek 原生支持 Anthropic API 格式,不需要任何代理或中间件,配置最简单。

先去 platform.deepseek.com 注册账号拿到 API Key,然后设置环境变量:

Linux / macOS(写到 ~/.bashrc 或 ~/.zshrc 里持久化):

bash 复制代码
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=sk-your-deepseek-api-key
export ANTHROPIC_MODEL=deepseek-chat
export ANTHROPIC_SMALL_FAST_MODEL=deepseek-chat

Windows PowerShell:

powershell 复制代码
$env:ANTHROPIC_BASE_URL = "https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN = "sk-your-deepseek-api-key"
$env:ANTHROPIC_MODEL = "deepseek-chat"
$env:ANTHROPIC_SMALL_FAST_MODEL = "deepseek-chat"

Windows 永久设置(系统环境变量):

打开"系统属性 → 高级 → 环境变量",新建以下用户变量:

ini 复制代码
ANTHROPIC_BASE_URL = https://api.deepseek.com/anthropic
ANTHROPIC_AUTH_TOKEN = sk-your-deepseek-api-key
ANTHROPIC_MODEL = deepseek-chat
ANTHROPIC_SMALL_FAST_MODEL = deepseek-chat

设置完之后直接启动 claude 就行,它会自动走 DeepSeek 的接口。

通过 settings.json 配置模型

除了环境变量,也可以在 settings 里指定默认模型。文件位置:

  • 全局:~/.claude/settings.json(Windows 是 %USERPROFILE%\.claude\settings.json
  • 项目级:.claude/settings.json
json 复制代码
{
  "model": "deepseek-chat",
  "smallModel": "deepseek-chat"
}

或者启动时用参数指定:

bash 复制代码
claude --model deepseek-chat

进入会话后也能用 /model 命令临时切换。

通过 OpenRouter 接入更多模型

如果你想用 GPT、Gemini、Llama 或者其他模型,可以走 OpenRouter。它聚合了几百个模型,提供统一的 Anthropic 兼容接口。

bash 复制代码
export ANTHROPIC_BASE_URL=https://openrouter.ai/api/v1/anthropic
export ANTHROPIC_AUTH_TOKEN=sk-or-your-openrouter-key
export ANTHROPIC_MODEL=anthropic/claude-sonnet-4
export ANTHROPIC_SMALL_FAST_MODEL=anthropic/claude-haiku-4

OpenRouter 上也能选 DeepSeek、Google Gemini 等模型,但非 Anthropic 模型的兼容性不一定完美------Claude Code 的 agent 循环是针对 Anthropic 消息格式设计的,其他模型可能在工具调用上有些小问题。

本地模型(Ollama)

如果你想完全离线跑,可以用 Ollama 加一个格式转换代理:

bash 复制代码
# 先启动 Ollama
ollama serve

# 用社区代理(如 claude-code-router)桥接格式
# 然后指向本地代理端口
export ANTHROPIC_BASE_URL=http://localhost:3456
export ANTHROPIC_AUTH_TOKEN=dummy
export ANTHROPIC_MODEL=qwen2.5-coder:32b
claude

本地模型的体验取决于你的硬件和模型大小。32B 以上的模型在工具调用方面表现还行,更小的模型容易出格式错误。

社区代理工具

如果目标 API 不直接兼容 Anthropic 格式,可以用这些开源代理做转换:

  • claude-code-router:支持路由到 OpenRouter、DeepSeek、Ollama、Gemini 等多个后端
  • claude-code-proxy:把 Anthropic 格式转成 OpenAI 格式,适配 GPT 系列
  • deepclaude:专门为 DeepSeek + Claude Code 优化的代理

这些代理本质上都是在本地起一个 HTTP 服务,把 Claude Code 发出的 Anthropic 格式请求翻译成目标 API 能理解的格式。

注意事项

  • 第三方模型的工具调用能力参差不齐。Claude Code 重度依赖 tool use,如果模型在这方面弱,体验会打折扣
  • 用第三方端点时,Claude Code 会自动禁用一些功能(比如 MCP tool search),这是安全限制
  • 环境变量设置后,claude 启动时不会再要求 Anthropic 账号登录
  • DeepSeek 的 API 价格大概是 Anthropic 的 1/10 到 1/20,性价比很高,但响应速度和代码能力跟 Claude 还是有差距

费用相关

Claude Code 按 token 计费,用的是你 Anthropic 账号的额度(Pro 订阅用户有包含的额度,Max 订阅额度更高)。几个省钱的点:

  • 问题描述清楚,减少来回对话
  • 大文件不需要全读的时候,指定具体行数范围
  • /compact 控制上下文长度
  • 简单任务用 /model 切到 Sonnet 或 Haiku,省钱且快
  • /cost 随时看当前会话花了多少
  • 接入 DeepSeek 等第三方模型,成本能降一个数量级

最后

Claude Code 的定位不是替代你写代码,而是把那些重复性的、机械性的工作接过去------读代码、写样板、跑命令、生成测试、整理 commit。你省下来的时间可以花在真正需要思考的地方:系统设计、技术选型、业务理解。

MCP 和 Skills 这两个扩展机制让它从一个"聪明的终端助手"变成了一个可以深度定制的开发平台。MCP 扩展它能触达的外部资源,Skills 固化你的工作流程。花点时间把这两个配好,日常效率提升会很明显。

用好它的关键就一句话:把它当成一个能力很强但需要明确指令的搭档,而不是一个什么都懂的全知全能助手。你给的上下文越充分、指令越具体,它的输出就越靠谱。

相关推荐
EnCi Zheng1 小时前
01d-前馈神经网络代码实现 [特殊字符]
人工智能·深度学习·神经网络
阿里云大数据AI技术2 小时前
登顶WorldArena榜单!阿里云PAI助力中科院自动化所、中科第五纪打造具身世界模型FlowWAM
人工智能
hixiong1232 小时前
C# TensorRT部署RF-DETR目标检测&分割模型
人工智能·目标检测·计算机视觉·ai·c#
凤山老林2 小时前
从0到1搭建企业级权限管理系统:Spring Boot + JWT + RBAC实战指南
java·spring boot·后端·权限管理·rbac
XZ探长2 小时前
基于 Trae Solo 移动办公修复 Vue3 前端服务问题
前端
小程故事多_802 小时前
[大模型面试系列] 深度解析ReAct框架,大模型Agent的“思考+行动”底层逻辑
人工智能·react.js·面试·职场和发展·智能体
逍遥德2 小时前
AI时代,计算机专业大学生学习指南
java·javascript·人工智能·学习·ai编程
ray_liang2 小时前
吐血整理JSON-RPC2.0的原理与应用
后端
蝎子莱莱爱打怪2 小时前
Claude Code 省 Token 小妙招:RTK + Caveman 组合拳
前端·人工智能·后端