让 Claude Code 真正长脑子:32 个 Skills + 8 个 MCP 完整配置实录

阅读时长:17分钟

上周我在公司茶水间被同事截胡:「你那个 Claude Code 是不是开了挂?我让它读飞书文档,它说不会;我让它查我数据库,它说不会;我让它跑 Playwright 截图,它还说不会。这玩意儿不就是个穿着马甲的 GPT?」

我笑了笑,打开他的 ~/.claude/,里面空空如也——一个 Skill 没装,一个 MCP 没配。

这就像买了一台 ThinkPad 但只用浏览器打开 Word,怪不得他觉得不香。

裸装的 Claude Code,本质上是个会写代码但什么外部世界都接触不到的实习生。它能在你当前目录里 read/write/edit/exec,但它读不到你的 Notion、连不上你的 Postgres、也跑不了 Playwright 自动化。

而装好 32 个 Skills + 8 个 MCP 之后,它会从「写代码的助手」一路升级到「全栈数字员工」——能查文档、能跑数据库、能画 Mermaid 图、能调浏览器,甚至能直接帮你发飞书消息。

这篇文章把整套配置流程、踩坑记录和实战场景一次讲透。读完你只需要复制粘贴,就能拥有一个真正长脑子的 Claude Code。

一、为什么裸装的 Claude Code「不够用」

先说一个反直觉的事实:Claude Code 默认能力其实很弱。

它默认只有 read / write / edit / exec / search 这几把刀,所有「外部知识」都得从你当前的代码仓库里现读。这意味着:

  • 你想让它写一个调用 Stripe 的支付模块?它得先猜 API、再让你纠错。
  • 你想让它帮你查昨天的飞书会议纪要?它会礼貌地说「我没有联网能力」。
  • 你想让它跑一段 SQL 验证数据?它只能写出 SQL 让你自己去跑。

这三个问题的解法不一样:

问题类型 解法 关键词
缺少领域知识 / 操作流程 Skill 写好的 Markdown 指令包
缺少外部系统访问 MCP Server 进程化的工具协议
缺少长期记忆 Memory + Skill 持久化文件

Skill 是「方法论」,MCP 是「连接器」——这是整篇文章的核心认知。搞清楚这两者的边界,你就明白了为什么我装 32 个 Skill + 8 个 MCP 而不是反过来。

二、Skill 和 MCP 的本质差异

很多人第一次接触 Claude Code 生态会被概念绕晕:Skill、MCP、Tool、Agent 听起来都像。我用一句话给你拆开:

Skill 是 Claude 自己读的「员工手册」,MCP 是 Claude 调用的「外部 API」。

Skill 与 MCP 架构对比

2.1 Skill:一份让 Claude「学会一项专业」的 Markdown

一个 Skill 本质上就是一个目录,里面一定包含 SKILL.md,可能还有辅助脚本和模板:

~/.claude/skills/my-skill/
├── SKILL.md          # 主入口,描述触发条件和操作流程
├── templates/        # 可选:复用模板
└── scripts/          # 可选:辅助脚本

SKILL.md 顶部的 description 字段是关键——Claude 会扫描所有 Skills 的 description,只在任务匹配时才加载主体内容,避免上下文爆炸。

举个例子:当你说「帮我写一篇小红书图文」,Claude 看到 xiaohongshu-article Skill 的描述「小红书图文创作规范,包含标题模板、来源声明、合规检查」,就会主动 read SKILL.md,按里面的规则办事。

Skill 不带任何外部权限,它只是「让 Claude 读一遍说明书」。

2.2 MCP:让 Claude 拥有「真·外部能力」的协议

MCP 全称 Model Context Protocol,由 Anthropic 在 2024 年底开源。简单说:

  • MCP Server 是一个独立进程,对外暴露 tools / resources / prompts 三类接口。
  • MCP Client(Claude Code 就是其一)通过 stdio 或 SSE 连接 Server。
  • Claude 调用 MCP 工具就像调用本地函数,但执行体在 Server 进程里。

这套设计意味着你可以让任何系统接入 Claude,而不用改 Claude 本体一行代码。Postgres、Notion、Linear、Slack、飞书……官方和社区已经写了上百个 MCP Server。

MCP 带真权限——你给它 token,它就能动你的真实数据。所以 MCP 配置必然涉及凭据管理。

2.3 怎么选:何时写 Skill,何时挂 MCP

我自己的判断标准就一句话:

「这件事需要外部系统数据吗?需要 → MCP;不需要 → Skill。」

  • 写文章风格、代码 Review 清单、命名规范、审计流程 → 全是 Skill。
  • 查飞书文档、读 Postgres、调浏览器、发邮件 → 全是 MCP。

混淆这两者的代价是配置膨胀——把方法论写进 MCP,每次调用都要起进程;把外部 API 塞进 Skill,Claude 只会照着 Markdown 念经。

三、32 个 Skills:我的完整清单

我把 Skills 按「写作 / 开发 / 运维 / 个人」四类分组管理,目录结构长这样:

~/.claude/skills/
├── writing/
│   ├── xiaohongshu-article/
│   ├── wechat-public-account/
│   ├── hugo-blog/
│   └── ...
├── coding/
│   ├── code-review/
│   ├── git-workflow/
│   ├── test-driven-dev/
│   └── ...
├── ops/
│   ├── healthcheck/
│   ├── docker-compose/
│   ├── ssh-tunnel/
│   └── ...
└── personal/
    ├── inbox-triage/
    ├── memory-curator/
    └── ...

Skills 工具箱概念图

3.1 写作类(10 个)

Skill 触发场景 核心价值
xiaohongshu-article 小红书图文 标题模板 + 来源声明 + 合规自检
wechat-public-account 公众号长文 排版规范 + 字段头 + 互链建议
hugo-blog 个人站点 TOML 头 + slug 命名 + 文章互链
zhihu-answer 知乎回答 起手 hook + 数据引用规范
tweet-thread X 长推 280 字切分 + 钩子节奏
email-formal 正式邮件 称谓 / 主题 / 结尾自动校准
meeting-minutes 会议纪要 决议 / Action / Owner 三段式
prd-template 产品 PRD 用户故事 + 验收标准 + 边界声明
release-notes 版本说明 用户视角动词开头 + 分组
daily-summary 日报 完成 / 遇阻 / 明日 三段

3.2 编程类(11 个)

Skill 触发场景
code-review 用户说「review 这段代码」
git-workflow 提交 / 分支 / PR 操作
test-driven-dev 写测试先于写实现
refactor-extract 重构抽取函数 / 类
bug-investigate 复现 + 定位 + 假设三步
migration-plan 数据库 / API 迁移规划
monorepo-pnpm pnpm workspaces 操作
python-uv uv 包管理标准动作
rust-cargo Cargo 工程惯例
nextjs-15 Next.js App Router 规范
tailwind-shadcn UI 实现风格统一

3.3 运维类(7 个)

涵盖 healthcheck / docker-compose / ssh-tunnel / caddy-reverse-proxy / cloudflare-tunnel / proxmox-lxc / nas-backup。这些 Skill 主要是把「正确姿势」固化下来——比如 healthcheck 会强制 Claude 先查 SSH、再查防火墙、再查 cron,避免它瞎跑命令。

3.4 个人类(4 个)

inbox-triage(邮件分级)、memory-curator(长期记忆维护)、weekly-review(周复盘模板)、reading-notes(读书笔记结构)。

⚡ 小贴士:Skill 不是越多越好,每多一个都意味着 Claude 启动时多扫一眼描述。建议保持在 30-40 个,触发率低的果断淘汰。

四、8 个 MCP Server:连通你的真实世界

Skills 让 Claude「知道怎么办」,MCP 才让它「真的去办」。我精挑了 8 个最常用的:

MCP Server 功能 接入难度
mcp-postgres 直接读写本地/远程 Postgres ⭐
mcp-feishu 读写飞书文档 / 发消息 ⭐⭐
mcp-playwright 浏览器自动化 + 截图 ⭐⭐
mcp-filesystem 跨目录文件操作(沙箱外) ⭐
mcp-github Issue / PR / Release ⭐
mcp-linear 任务 / 项目状态 ⭐⭐
mcp-fetch 通用 HTTP 抓取 + Markdown 化 ⭐
mcp-sequential-thinking 复杂规划脚手架 ⭐

4.1 配置文件长什么样

Claude Code 的 MCP 配置在 ~/.claude.json 或项目 .mcp.json 里,结构清晰:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres",
               "postgresql://user:pass@localhost:5432/mydb"]
    },
    "feishu": {
      "command": "npx",
      "args": ["-y", "@larksuiteoapi/lark-mcp"],
      "env": {
        "APP_ID": "cli_xxx",
        "APP_SECRET": "xxx"
      }
    },
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"]
    },
    "github": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "GITHUB_TOKEN",
               "ghcr.io/github/github-mcp-server"],
      "env": { "GITHUB_TOKEN": "ghp_xxx" }
    }
  }
}

注意三件事:

  1. 凭据走环境变量,不要硬编码到 args 里——避免被 claude --debug 日志泄露。
  2. 本地 npx 启动慢,第一次会下包;推荐写一个本地 wrapper 脚本预热。
  3. Docker 化的 MCP 启动更稳(GitHub 官方推荐用 ghcr.io/github/github-mcp-server),但首启需要拉镜像。

4.2 验证 MCP 是否生效

启动 Claude Code 后,敲:

/mcp

会列出所有已加载的 Server 和它们暴露的 tools。我的工作机现在显示:

✔ postgres   (8 tools)
✔ feishu     (12 tools)
✔ playwright (15 tools)
✔ filesystem (5 tools)
✔ github     (29 tools)
✔ linear     (10 tools)
✔ fetch      (1 tool)
✔ sequential-thinking (1 tool)

如果某个 Server 启动失败,/mcp 会显示红色 ✗ 和错误日志,多半是 token 过期或 npm 包名拼错。

五、实战:4 个真实场景串联 Skill + MCP

光看清单没意思,看几个我每天都在用的真实流程。

分布式开发协作场景

场景一:周一早会,自动生成上周战报

我说一句:「拉一下我上周的 Linear 已完成任务,写成日报发到 #weekly 飞书群。」

Claude 的执行链:

  1. 触发 weekly-review Skill → 加载日报模板。
  2. 调用 mcp-linear 的 list_issues,filter status=Done & updated_at>=last_monday。
  3. 用 Skill 模板格式化为「完成 / 遇阻 / 下周计划」三段。
  4. 调用 mcp-feishu 的 send_message,target 是 #weekly 群。

整个过程我只敲一句话,2 分钟搞定。Skill 提供格式,MCP 提供数据,两者完美分工。

场景二:客户报 Bug,5 分钟出复现报告

客户截图发过来:「点这个按钮没反应」。

/skill bug-investigate
帮我复现这个问题,使用线上环境 https://app.example.com

Claude 执行:

  1. 加载 bug-investigate Skill → 拿到「复现 / 假设 / 验证」三步框架。
  2. 调用 mcp-playwright 的 browser_navigate + browser_click,真去点那个按钮。
  3. 出错时自动 browser_screenshot,保存到 ~/bugs/2026-05-20/。
  4. 调用 mcp-postgres 查相关数据状态。
  5. 输出一份带截图 + SQL 结果的复现报告。

以前我手工做这一套要 30 分钟,现在 5 分钟。

场景三:博客文章自动发布

写完一篇 Hugo 文章,我说:「发出去。」

Claude 执行:

  1. 加载 hugo-blog Skill → 校验 TOML 头、slug、互链。
  2. 调用 mcp-github 的 create_pull_request,把文章 PR 到我的博客仓库。
  3. 调用 mcp-feishu 的 send_message,给我自己发条「PR 已建,等 Vercel 预览」。

场景四:周五下班前,自动备份

「今天的工作记忆 dump 到 NAS。」

  1. 加载 nas-backup Skill → 拿到 SMB 路径和命名规范。
  2. 调用 mcp-filesystem 把 ~/.claude/sessions/ 打包。
  3. 调用 exec 跑 smbclient 上传到飞牛 NAS。
  4. 触发 memory-curator Skill → 把今日对话精华抽到 MEMORY.md。

六、踩坑实录:这些坑我替你踩过了

不藏着掖着,这套配置我前后改了 7 版才稳定,几个核心坑:

坑 1:MCP Server 启动慢导致 Claude 卡死

第一次跑会卡 30+ 秒,因为 npx -y 在拉包。解法:要么换 bunx,要么先 npm i -g 把 Server 装到本地,args 改成本地路径。

坑 2:飞书 MCP 频繁 401

tenant_access_token 默认有效期 2 小时。解法:用社区维护的 lark-mcp 自带刷新逻辑,别自己在 env 里塞死 token。

坑 3:Skill 描述太抽象,Claude 不触发

写过一个 Skill 描述是「文章写作辅助」——结果 Claude 一次没主动加载。解法:description 里塞触发关键词:

「触发:用户说『写公众号』『发推文』『发小红书』时启用」

加上明显的关键词,触发率直接上去。

坑 4:MCP 工具名冲突

我同时挂了两个 GitHub MCP(官方和社区版),两边都有 create_issue。解法:手动去掉一个,或者用 disabled 配置屏蔽冲突 tool。

坑 5:上下文爆炸

32 个 Skill 全启时,描述加起来约 4k token。解法:把低频 Skill 拆到 ~/.claude/skills/_archive/,用软链按需挂载——一周用不到就归档。

坑 6:MCP 凭据泄露到日志

claude --debug 会打印 MCP 启动命令,包含 token。解法:所有 MCP 凭据走 env,不进 args;调试日志单独存到加密目录。

调试代码踩坑后豁然开朗

七、写在最后:Skill + MCP 重塑了我对 AI 工具的认知

装完这 32 + 8,我做了一件事:回看自己最近 30 天和 Claude Code 的对话日志。

最直观的变化是——我不再写"提示词",我写"指令"。

以前要小心翼翼地铺垫:「假设你是一个资深前端工程师,我们要做一个……」。现在我直接说:「按 code-review 规范看下这个 PR」「用 feishu MCP 发到 #dev 群」。简洁得像在跟同事下任务。

Claude 不再是一个「需要哄着干活的实习生」,而是一个有规章制度、有外部权限、有长期记忆的资深员工。

Skill 给它「专业素养」,MCP 给它「工作权限」,Memory 给它「连续记忆」——这三件事拼起来,AI 才真正从「玩具」走向「生产力工具」。

如果你还在用裸装的 Claude Code,相信我,配上这套你会回不去。

最后留个互动:你正在用哪些 MCP?最离不开哪个 Skill? 评论区交个底,我把社区呼声最高的整理到下一篇里。

© 2026 softon.top

本站已稳定运行 275 天 15 小时 · 128 篇文章

使用 Hugo 构建 主题 Stack 由 Jimmy 设计 由 softon 魔改

最近构建时间:2026-10-03 23:33:52 CST