上个月帮一个朋友从零搭建 AI 编程环境,花了三个小时把 Terminal、MCP、Vibe Coding 全串通。回头看,最难的不是单个工具的安装,而是让它们配合起来形成一条不卡顿的工作流。
这篇文章就是那次实战的整理。从裸机开始,每一步都有命令,每个坑都标出来。读完照着做,你也能在两小时内搭起一条完整的 AI 编程链路。
为什么你需要一条完整的链路
先说结论:工具碎片化是当前 AI 编程最大的效率杀手。
API key 在官网申请,MCP server 各自配置,终端工具和 IDE 各管一摊,文档分散在五六个不同站点。装完 Cursor 发现不会配 MCP,配好 MCP 发现 Claude Code 连不上,连上了又不知道怎么和工作流对接。
我看到的模式是三个层次:
| 层次 | 作用 | 对应工具 |
|---|---|---|
| 底层 | 终端环境 | git, node, python, gh CLI |
| 协议层 | 工具通信 | MCP(Model Context Protocol) |
| 工作方式 | 人机协作 | Vibe Coding |
不是选一个最好的工具,而是搭一条顺滑的链路。
打地基:终端环境准备
终端是 AI 编程工具的基础。Claude Code 是纯终端工具,Codex CLI 也在终端跑,MCP server 大部分是 Node 或 Python 进程。没有干净的终端环境,后面全白搭。
必装清单
| |
Shell 提示符
装个 starship,路径 + git 分支 + 语言版本一目了然:
| |
⚠️ 踩坑:PATH 混乱。uv 装的 Python 和系统 Python 冲突时,which python3 确认一下实际路径。建议把 ~/.local/bin 放在 PATH 最前面。
⚠️ 踩坑:Node 版本。部分 MCP server 要求 Node >= 18。node -v 检查,不够用 nvm install 18 升级。
AI 编程工具选型与安装
四句话定位:
| 工具 | 一句话定位 | 适合场景 |
|---|---|---|
| Claude Code | 终端原生,最强代码理解 | 深度重构、多文件联动 |
| Cursor | IDE 集成,所见即所得 | 前端开发、日常补全 |
| OpenCode | 开源灵活,模型可选 | 定制需求、本地模型 |
| Codex | OpenAI 生态,云端执行 | 快速原型、CI 集成 |
选型建议
| 你的情况 | 推荐主力 |
|---|---|
| 后端/系统开发 | Claude Code |
| 前端/全栈 | Cursor + Claude Code 互补 |
| 想省钱/用本地模型 | OpenCode |
| 快速验证想法 | Codex |
安装实操
Claude Code(5 步跑通):
| |
Claude Code 启动后会自动扫描项目,理解代码结构。第一次运行建议先让它读一遍项目,建立上下文。
Cursor(3 步跑通):
- 去 cursor.com 下载安装
- 打开后自动导入 VS Code 设置和插件
- Settings → Models → 填入 API key
Cursor 的 Tab 补全是杀手级功能,打几个字母它就能预判你要写什么,整段代码一键接受。Cmd+K 做局部修改,Cmd+L 打开对话面板。
OpenCode(3 步跑通):
| |
OpenCode 的优势是模型自由切换。用 OpenRouter 可以一次配置访问几十个模型,也可以连本地 Ollama 跑开源模型,完全离线。
Codex CLI(3 步跑通):
| |
Codex 的特点是云端沙箱执行。代码不在本地跑,而是 OpenAI 的安全环境里运行,适合处理不信任的代码或快速验证想法。
⚠️ 踩坑:国内网络。Claude Code 和 Codex 默认连海外端点。国内用需要配 API 中转,设置 ANTHROPIC_BASE_URL 或 OPENAI_BASE_URL 环境变量指向中转服务。中转服务国内有不少选择,选支持支付宝/微信的即可。
⚠️ 踩坑:API key 管理。不要把 key 硬编码在 .bashrc 里推到 GitHub。用 ~/.env 文件 + .gitignore,或者用系统 keychain。
MCP 协议:让 AI 工具长出手和脚
MCP(Model Context Protocol)是 Anthropic 提出的开放协议,让 AI 编程工具能调用外部能力。类比 USB-C:统一接口,不管什么设备都能插。
三个核心概念:
- Server:能力提供者(文件读写、数据库查询、API 调用)
- Client:AI 工具(Claude Code、Cursor 等)
- Transport:通信方式(stdio 本地、SSE/Streamable HTTP 远程)
安装三个最实用的 MCP Server
1. filesystem(文件读写,必装)
| |
2. fetch(网络请求,必装)
| |
3. github(代码仓库操作)
| |
配置方法
Claude Code 在项目根目录创建 .mcp.json:
| |
Cursor 在 Settings → MCP 里直接填同样的 JSON,或者放在 ~/.cursor/mcp.json 全局生效。
OpenCode 在项目根目录的 opencode.json 里配置,格式相同。
⚠️ 踩坑:stdio vs SSE。本地开发用 stdio(command + args),远程部署用 SSE(url)。不要混用。
⚠️ 踩坑:路径权限。filesystem server 的路径参数要写绝对路径,且确保运行用户有读写权限。
串联:从单个工具到完整工作流
这是重点。工具不是孤立的,串联起来才有效率。
完整工作流示例
假设要给一个 Node.js 项目加用户注册功能:
Step 1:需求分析
在 Claude Code 终端对话,描述清楚上下文:
| |
Step 2:代码生成
Claude Code 通过 MCP filesystem server 读取项目结构,生成代码,通过 github server 直接创建分支和 commit。
Step 3:调试优化
多轮对话保持上下文,不切换工具。在同一个 session 里推进。
Step 4:代码审查
| |
Step 5:部署
| |
实战:30 分钟完成一个小项目
我上次用这个链路做了一个 URL 缩短服务,从零到部署大概 25 分钟:
- Claude Code 终端描述需求:「用 FastAPI 做一个 URL 缩短服务,SQLite 存储,要有统计点击次数的功能」
- Claude Code 通过 MCP filesystem 读取空目录,生成项目结构和所有代码文件
- 两轮对话修了 ORM 关系和错误处理
claude "写测试"自动生成 pytest 测试,跑通gh repo create && git push上线
关键是整个过程没有切换工具。终端对话→代码生成→测试→部署,一条线到底。
心流保护
频繁切换工具是心流杀手。我的经验:
- 一个任务一个 session,不要在同一个 Claude Code 对话里跳话题
- 把项目上下文写成 CLAUDE.md,放在项目根目录,每次启动自动加载
- 小任务用 Cursor Tab 补全,大任务用 Claude Code,别反过来
- 关掉通知,手机静音,全屏终端模式。Vibe Coding 的效率来自心流不间断
CLAUDE.md 示例:
| |
进阶:打造你自己的 MCP Server
现有 server 覆盖不了所有需求。比如你想让 AI 直接查公司内部数据库、调内部 API、跑自定义脚本——就得自己写。
为什么不直接在对话里让 AI 生成 SQL?因为 MCP Server 是标准化的工具接口,任何支持 MCP 的客户端都能用。你在 Claude Code 里写的 server,Cursor 和 OpenCode 直接就能调,不用重复开发。
最小 MCP Server(Python,30 行)
| |
@mcp.tool() 装饰器把普通 Python 函数变成 MCP 工具。函数的 docstring 会作为工具描述传给 AI,所以写清楚描述很重要。参数类型标注(sql: str)自动变成工具的参数 schema。
配置到 Claude Code:
| |
⚠️ 踩坑:SQL 注入。上面的 query_database 示例只适合本地开发。生产环境务必参数化查询,或者限制只读账号。
想把你的 MCP Server 发布给社区用?推到 npm 或 PyPI,然后在 mcp-json 里把包名和版本号写清楚。社区有人整理了 awesome-mcp-servers 列表,可以参考别人的写法。
常见问题与避坑
Q:Claude Code 和 Cursor 选哪个?
A:不冲突。Cursor 处理行级补全和小改动,Claude Code 处理模块重构和复杂任务。大多数深度用户两个都用。如果你只能选一个,先装 Claude Code——终端覆盖的场景更广。
Q:MCP 配置后不生效?
A:检查三件事:①JSON 格式是否合法(逗号、引号)②command 路径是否正确(which npx 确认)③重启 Claude Code / Cursor。还有一个常见原因是 args 里的包名写错了,比如把 @modelcontextprotocol/server-filesystem 写成旧版的 @anthropic-ai/mcp-filesystem,版本更新后包名会变。
Q:token 消耗太快?
A:四个办法:①用 CLAUDE.md 让 AI 理解项目上下文,不用每次重复解释 ②大文件用 .gitignore 排除,别让 AI 扫 node_modules ③Sonnet 做日常任务,Opus 只在复杂重构时用 ④Cursor 的 Tab 补全不计 API token,多用 Tab 少开对话。
Q:API key 怎么管?
A:统一放 ~/.env,.bashrc 里 source ~/.env。.gitignore 加上 .env。千万别推到 GitHub——我不止一次见过有人把 Anthropic key 推到公开仓库,几小时被刷掉几百美元。
Q:Vibe Coding 会让代码质量变差吗?
A:取决于你的使用方式。把 AI 当「有点强的初级开发者」来用:让它写初稿,你负责审查、提问题、要求改进。AI 生成的代码一样要 Code Review,只是速度快了很多。完全不看就提交才是灾难。
Q:遇到 Rate Limit 怎么办?
A:Anthropic 官方 API 的 RPM 限制在高强度使用时容易触发。解法:①用 API 中转服务,RPM 配额更宽松 ②复杂任务用 Opus(慢但准),简单任务用 Sonnet(快但可能需要多轮) ③任务描述越清楚,来回轮次越少,消耗越低。
Q:终端和 IDE 哪个更适合 Vibe Coding?
A:看你做什么。终端(Claude Code)适合后端、脚本、DevOps、跨文件重构——这些场景需要执行命令和批处理。IDE(Cursor)适合前端、UI 调试、小范围修改——所见即所得的优势大。我的习惯是终端为主力,IDE 做辅助。
推荐 MCP Server 列表:
| Server | 用途 | 安装 |
|---|---|---|
| filesystem | 文件读写 | @modelcontextprotocol/server-filesystem |
| fetch | HTTP 请求 | uvx mcp-server-fetch |
| github | 仓库操作 | @modelcontextprotocol/server-github |
| sqlite | 数据库查询 | uvx mcp-server-sqlite |
| brave-search | 网页搜索 | @modelcontextprotocol/server-brave-search |
搭建一条完整的 AI 编程链路,核心是三层:终端打好底、MCP 通好讯、工作流串好节奏。工具链搭对了,Vibe Coding 的效率提升是实打实的。
再多说一句:不要追求「最完美的工具链」。先用 Claude Code + 三个 MCP Server 跑通一个真实项目,遇到瓶颈再加工具。工具是手段,代码才是目的。
剩下的,就是真正去写代码了。
作者:varkm