大概一个多月前,我在终端里用 Claude Code 写一个涉及前后端联调的需求,改到一半就没了耐心。原因很典型:模型知道大概怎么改,但它看不到完整代码结构,也不清楚目标框架的最新 API,更别提替我跑测试、查数据库。每次都得我手动把文件路径、报错日志、接口文档一段段塞给它,塞完它也只能给出一堆建议,剩下的活还是我的。
后来我把几个 MCP Server 接进去,情况完全变了。现在我跟 Claude Code 说一句话,它能自己去翻 GitHub issue、打开浏览器调试页面、查本地 SQLite、按记忆里约定好的规范写代码,最后自己把改动推到远程仓库并创建一个 PR。MCP Server 这层中间层,把 Claude Code 从一个“能聊天的助手”变成了一个“能干活的高级开发者”。这篇文章就是我这段时间的配置清单、使用心得和踩坑复盘,给正在折腾 Claude Code 的同学一个可以直接抄作业的参考。
1. 为什么 Claude Code 需要 MCP Server
1.1 MCP Server 到底解决什么问题
MCP 的全称是 Model Context Protocol,直译是“模型上下文协议”。Anthropic 提出这套开放协议的目的,是想给 AI 应用和外部工具之间定一个统一的标准接口。你不需要为每个工具单独开发一套适配逻辑,只要工具支持 MCP,模型就能以同一套方式去调用它。
我习惯拿 USB-C 来类比。以前每个外设都有自己的接口,充电器、显示器、移动硬盘各用各的线,桌面乱成一团。MCP 做的就是把这堆乱七八糟的接口统一成一个标准口:Claude Code 是宿主设备,MCP Server 是外设,只要 Server 实现了协议,插上就能用。
具体到技术层面,一个 MCP Server 会向外暴露一组“工具”,比如github_create_issue、browser_navigate、filesystem_read_file。Claude Code 在对话中判断用户需要某项能力时,不是自己凭空去“想”,而是调用这些工具函数,由本地运行的 Server 执行实际操作,再把结果返回给模型继续推理。可以说,MCP Server 就是模型连接真实世界的“手和眼”。
1.2 Claude Code 原生能干什么、不能干什么
先说清楚,Claude Code 本身并不是一个弱工具。作为终端里的 AI 编程助手,它在启动目录内至少能干三件事:读写项目文件、执行 Shell 命令、在多个文件之间做代码修改。对一个本地仓库来说,它已经称得上是一个能打的结对程序员。
但它的边界也很明显。你让它处理 GitHub 上的 Issue,它看不到远程仓库的实时状态,除非你先手动 clone 下来;你让它打开一个网页复现前端 Bug,它没有浏览器可用;你问它某个刚发布版本的框架 API,它只能基于训练数据猜,猜错概率不低;你关掉会话重新开启,它什么都不记得,上次聊定的技术方案又得重新交代一遍。
原生 Claude Code 就像一位能力很强的实习程序员:你把它带到工位,指着一块代码让它改,它能改得像模像样;但你让它自己去别的部门要资料、去测试环境复现问题、翻公司数据库查一条记录,它没有权限,也找不到路。MCP Server 补的正是这些“权限”和“路径”。
1.3 我的选型逻辑:八个角色,各管一摊
网上能搜到的 MCP Server 有上百个,但我最终长期留在身边的只有八个。我选型的原则很简单:不贪多、求稳定、每个能力方向只保留一个最靠谱的,优先选官方或大型开源项目维护的包。
MCP Server 不是装得越多越好。每个 Server 的工具定义都会进入模型上下文,如果同时挂十几个 Server,上下文里堆满了几百个工具函数,模型反而容易犯迷糊,选错工具的概率高了,token 消耗也跟着上去。我自己实测下来,把 MCP 数量控制在十个以内,是准确性和成本之间比较舒服的位置。
这八个 Server 按用途可以分成四组:
- 开发流程组:GitHub MCP、Filesystem MCP
- 浏览器与网络组:Playwright MCP、Fetch MCP
- 知识与记忆组:Context7 MCP、Memory MCP、Sequential Thinking MCP
- 数据操作组:SQLite MCP
每一组解决的是不同层面的问题,互相之间有重叠但不冗余。后面我会按组逐个讲怎么配置、怎么用、有哪些坑。
2. 接入方式与权限设计
2.1 环境准备:先把 Claude Code 跑起来
如果你还没装过 Claude Code,第一步很简单。我这边是在 macOS 上用 npm 全局安装的,Windows 上如果已经配好了 Node 环境,操作路径基本一致:
npm install -g @anthropic-ai/claude-code安装完成后在终端输入claude就能进入交互界面。首次使用需要登录账号或配置 API,这一步正常走完就行。需要注意,如果你在对话中看到类似“model not recognized”的报错,说明当前使用的模型名不对,或者 CLI 版本过旧,先执行claude update把版本升到最新,这跟后面要讲的 MCP 配置是两回事,不要混在一起排查。
2.2 MCP Server 的两种接入方式
Claude Code 接入 MCP Server 有两种主流方式:命令行添加和写配置文件。
命令行方式适合个人长期使用的 Server,一条命令搞定。以 GitHub MCP 为例,我当时的添加命令是这样:
claude mcp add github --scope user --env GITHUB_PERSONAL_ACCESS_TOKEN=你的token -- npx -y @modelcontextprotocol/server-github这条命令拆开看很清晰:github是给这个 Server 起的名字;--scope user表示配置保存到当前用户级别,所有项目都能用;--env后面是运行时需要的环境变量;--之后是真正要执行的启动命令,这里用 npx 拉取并运行官方包。
第二种方式是编辑项目根目录下的.mcp.json文件。这个文件如果提交到 Git 仓库,团队里其他人拉下来也能直接用,适合统一项目内工具链:
{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/workspace" ], "env": {} } } }2.3 验证是否生效与权限边界
接入完成后,重新进入 Claude Code 对话,输入