🐾 共创

05-MCP和Skill:让AI真正住进你的工作流

用了一个月,终于搞懂了MCP和Skill到底有什么用,以及怎么把它们管理起来不乱

05-MCP和Skill:让AI真正住进你的工作流

写在前面 这是一篇实操笔记,记录我搞懂 MCP 和 Skill 的过程,以及踩过的坑。上一篇写了 Claude Code 的基础,这篇写怎么让 Claude Code 变得更强。


从一个痛点说起

我每天都在用 Claude Code 写代码、做自动化、管理飞书文档。用着用着就发现一个问题:AI 很聪明,但它记不住事。

每次开新对话,我得重新告诉它——我的项目用什么技术栈、飞书文档怎么操作、代码风格是什么、哪些目录不能碰。说一次管一次,下次从头说。

你可能也有类似的体验:每天早上上班,你得把公司规矩、项目背景、你的工作习惯重新给助理讲一遍。他听完帮你干了一天活,第二天来了,再讲一遍。

这不叫协作,这叫消耗。

后来我搞明白了两个东西:MCPSkill。它们解决的不是同一个问题,但配合起来,能让 AI 从"你问我答"变成"真正住进你的工作流"。


MCP:给 AI 装工具

MCP 全称 Model Context Protocol,翻译过来叫"模型上下文协议"。不用管这个名字,你只需要知道一件事:

MCP 是让 AI 连上外部工具的标准接口。就像 USB 之于电脑。

USB 出现之前,键盘有键盘的接口,鼠标有鼠标的接口,打印机有打印机的接口,每接一个新设备都要搞清楚用什么线。后来有了 USB,一个标准接口,所有设备往上靠,插上就能用。

MCP 对 AI 来说就是 USB。而且它是开放协议,不是 Claude 专属的——Cursor、Codex、Gemini CLI 这些工具都支持。你在一个工具里学会的 MCP,换个工具照样能用。

三个角色

理解 MCP 的工作方式,你只需要认识三个角色:

角色 类比 干什么
Client 你用的 AI 工具(Claude Code、Cursor) 提需求的人
Server 外部工具(GitHub、数据库、浏览器) 干活的人
Tool 具体能力(截图、查文档、执行 SQL) 具体的动作

你对 AI 说"帮我看看浏览器报了什么错",AI 就去找 DevTools Server,调用"读取控制台日志"Tool,拿到结果告诉你。你完全感知不到这个过程。

我实际在用的几个 MCP

Context7 — 让 AI 永远查最新文档

你问 AI 某个框架怎么写,它很自信地给你一段代码,你一跑直接报错。因为框架更新太快,AI 学的那版文档早就过期了。更麻烦的是,AI 不会告诉你"我给的可能是旧写法",它会很自信。

Context7 的做法很直接:AI 回答你之前,先去官方文档查一遍最新内容,拉进来再回答。写代码的时候 Context7 算是必装 MCP。

Chrome DevTools MCP — 让 AI 看见你的浏览器

做网页开发的时候,页面白屏了、样式乱了、接口报错了,以前只能截图贴给 AI。现在 AI 能直接读你浏览器里的 console 报错、network 请求、页面结构。

Playwright MCP — 让 AI 模拟用户操作

跟 DevTools 不一样,这个是用来"动手"的——自动点击、填表、跑登录流程、做自动化测试。

工具 一句话定位
Chrome DevTools MCP 调试器——看浏览器内部发生了什么
Playwright MCP 测试员——模拟用户怎么操作
agent-browser Skill 轻量操作员——快速截图、简单点击

DevTools 用来看,Playwright 用来做,按需选择,不用全装。


Skill:给 AI 写上岗 SOP

MCP 是装工具,Skill 是教方法。

还是那个助理的比方:MCP 是给助理配了一台电脑、装了软件。但光有工具不够,你还得告诉他"遇到这类任务应该怎么做、按什么标准、遵循什么流程"。

Skill 就是你写给 AI 的长期工作说明书。写一次,AI 永久记住。

一个真实的对比实验

同一个需求——“帮我写一个个人博客首页”。

不用 Skill:AI 给你一个能用但很"AI味"的页面——默认蓝白灰、默认字体、默认布局。功能没问题,但看着就像模板。

用了 frontend-design Skill:字体变了、留白变了、颜色有了明确方向、布局不再是最普通的三段式。像是一个有品味的人做的,不是 AI 随手生成的。

唯一的区别,就是启用了一个 Skill。Skill 没有让 AI 更聪明,只是给了 AI 一套明确的审美标准。

Skill 和 Prompt 有什么区别

你可能会问:Prompt 不也能告诉 AI 怎么做吗?为什么要用 Skill?

区别在于:Prompt 是一次性的,Skill 是长期的。

Prompt 是你每次都要说的那句话,说完这次就没了。Skill 是你写好之后,AI 每次遇到相关任务都会自动参考。你不需要每次重新交代。

想象你是一个餐厅老板:

  • Prompt 方式:每天早上跟厨师说"今天做这道菜,用这些食材,按这个步骤做"。他做完,明天你再重新说。
  • Skill 方式:给他一本菜谱。他来上班直接看菜谱,按照菜谱做。

Skill 就是那本菜谱。

Skill 和 Rule(规则)有什么区别

Claude Code 里还有一个东西叫"规则"(Rules)。

  • 规则是全量加载的——不管 AI 在做什么任务,那条规则都一直占着位置。适合"任何时候都必须遵守"的事,比如"永远用中文回答"。
  • Skill 是按需加载的——AI 先扫一眼每个 Skill 的名字和简介,判断当前任务跟哪个相关,才加载详细内容。适合"特定场景下的专业规范"。
类型 加载方式 适合
Rule 始终加载 铁律:“永远不要修改生产数据库”
Skill 按需加载 专项:“做前端页面时遵循这套设计规范”

Skill 的核心价值

是稳定性。

你用 AI 写代码最大的痛点是什么?不是 AI 不会写,而是写得不稳定。有时候很好,有时候随便发挥,有时候绕过了你的规范。

根本原因是 AI 在没有明确约束的情况下有太多自由度。每次都在"猜"你想要什么。你把规范写进 Skill,AI 就不用猜了。

但注意:一个 Skill 只做一件事。 很多人第一次写恨不得把所有要求塞进去,结果 Skill 太复杂反而不好使。三个不同类型的规范,就写三个 Skill。


我踩过的坑:两个工具不共用配置

这部分是我在实操中发现的,网上很少有文章讲。

我同时用 Claude Code 和 Codex 两个工具。有一天发现:给 Claude Code 装的 Skill,Codex 完全看不到。给 Codex 配的 MCP,Claude Code 也用不了。

它们是两套完全独立的系统。 配置目录不一样、Skill 存放位置不一样、MCP 配置方式不一样。你以为装了一次两边都有了?并没有。

更坑的是 Codex 的 Skill 识别:我一开始只在 Codex 的配置文件 config.toml 里加了 Skill 路径,结果 Codex 根本没识别。后来在 ~/.codex/skills/ 下建了个软链接,它才终于看到了。

我的解决方案:公共 Skill 目录

既然两边不共享,那我就让它们共享。

建了一个公共目录,所有自定义 Skill 的原件只维护一份。然后两边用软链接去引用:

公共目录/<skill-name>/SKILL.md      ← 唯一原件
~/.claude/skills/<skill-name>  → 软链接到原件
~/.codex/skills/<skill-name>   → 软链接到原件

改一处,两边都生效。不用在两个地方各维护一份。听起来很简单,但我确实花了一个下午才摸清楚。


还有一件事:权限列表会越来越长

Claude Code 每次想执行操作,默认都会弹确认框让你点"允许"。你可以选:

  • Allow(仅本次):这次放行,下次还问
  • Always allow:写进配置文件,以后永远不问

我一开始不管什么都点 Always allow,结果一个月下来,配置文件里攒了 93 条权限。其中 60 多条是一次性的 mvcpgit 命令,执行过一次再也不会用了。

后来清理了一遍,保留了 30 条。规则很简单:

一次性操作点"仅本次",确定会反复用的才点"Always allow"。


MCP + Skill,不是非此即彼

MCP 和 Skill 不是替代关系,是配合关系。

MCP 给 AI 装工具,Skill 教 AI 用工具的方法。

  • 只用 MCP——AI 有工具但没有规范,每次发挥不稳定
  • 只用 Skill——AI 有方法但没有工具,有些事做不到
  • 两者配合——工具 + 方法,能力 + 规范

写在最后

我现在的 AI 工作流是这样的:

  • 每天用 Claude Code 跑 PPT 生产线
  • MCP 连接飞书、浏览器、最新文档
  • Skill 告诉 AI 怎么写文案、怎么审查代码、怎么设计界面
  • 所有自定义 Skill 统一维护在一个目录,两边工具通过软链接使用
  • 一次性权限不再攒,保持配置干净

工具不是越多越好。遇到问题再找插头,这是我今年学到最重要的一课。