从零搭建 AI 开发环境:Terminal + MCP + Vibe Coding 全链路实战

从裸机到完整 AI 编程工作流的全链路搭建指南。涵盖终端环境配置、四大工具选型(Claude Code/Cursor/OpenCode/Codex)、MCP 协议实战配置、完整工作流串联,以及进阶自建 MCP Server。每一步都有具体命令和踩坑标注。

上个月帮一个朋友从零搭建 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 进程。没有干净的终端环境,后面全白搭。

必装清单

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# macOS
brew install git node python

# Ubuntu/Debian
sudo -S -p '' apt install -y git nodejs python3 python3-pip

# 包管理器(选一个)
curl -LsSf https://astral.sh/uv/install.sh | sh   # Python(推荐)
npm install -g pnpm                                   # Node

# GitHub CLI
brew install gh        # macOS
sudo -S -p '' apt install gh    # Ubuntu
gh auth login

Shell 提示符

装个 starship,路径 + git 分支 + 语言版本一目了然:

1
2
brew install starship
echo 'eval "$(starship init bash)"' >> ~/.bashrc   # 或 ~/.zshrc

⚠️ 踩坑:PATH 混乱uv 装的 Python 和系统 Python 冲突时,which python3 确认一下实际路径。建议把 ~/.local/bin 放在 PATH 最前面。

⚠️ 踩坑:Node 版本。部分 MCP server 要求 Node >= 18。node -v 检查,不够用 nvm install 18 升级。

AI 编程工具选型与安装

四句话定位:

工具一句话定位适合场景
Claude Code终端原生,最强代码理解深度重构、多文件联动
CursorIDE 集成,所见即所得前端开发、日常补全
OpenCode开源灵活,模型可选定制需求、本地模型
CodexOpenAI 生态,云端执行快速原型、CI 集成

选型建议

你的情况推荐主力
后端/系统开发Claude Code
前端/全栈Cursor + Claude Code 互补
想省钱/用本地模型OpenCode
快速验证想法Codex

安装实操

Claude Code(5 步跑通):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 1. 安装
npm install -g @anthropic-ai/claude-code

# 2. 设置 API key
export ANTHROPIC_API_KEY=sk-ant-xxx...

# 3. 国内用户加中转(可选但推荐)
export ANTHROPIC_BASE_URL=https://your-proxy.example.com/anthropic

# 4. 进入项目目录启动
cd my-project
claude

# 5. 验证
claude "列出项目结构,告诉我这个项目用了什么技术栈"

Claude Code 启动后会自动扫描项目,理解代码结构。第一次运行建议先让它读一遍项目,建立上下文。

Cursor(3 步跑通):

  1. 去 cursor.com 下载安装
  2. 打开后自动导入 VS Code 设置和插件
  3. Settings → Models → 填入 API key

Cursor 的 Tab 补全是杀手级功能,打几个字母它就能预判你要写什么,整段代码一键接受。Cmd+K 做局部修改,Cmd+L 打开对话面板。

OpenCode(3 步跑通):

1
2
3
4
5
6
7
8
# 1. Go 安装
go install github.com/opencode-ai/opencode@latest

# 2. 或直接下载二进制
curl -fsSL https://opencode.ai/install | bash

# 3. 配置模型(支持 OpenAI/Anthropic/本地模型)
opencode config set model anthropic/claude-sonnet-4

OpenCode 的优势是模型自由切换。用 OpenRouter 可以一次配置访问几十个模型,也可以连本地 Ollama 跑开源模型,完全离线。

Codex CLI(3 步跑通):

1
2
3
4
5
6
7
8
# 1. 安装
npm install -g @openai/codex

# 2. 设置 key
export OPENAI_API_KEY=sk-xxx...

# 3. 运行
codex "给这个项目加单元测试"

Codex 的特点是云端沙箱执行。代码不在本地跑,而是 OpenAI 的安全环境里运行,适合处理不信任的代码或快速验证想法。

⚠️ 踩坑:国内网络。Claude Code 和 Codex 默认连海外端点。国内用需要配 API 中转,设置 ANTHROPIC_BASE_URLOPENAI_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(文件读写,必装)

1
npm install -g @modelcontextprotocol/server-filesystem

2. fetch(网络请求,必装)

1
uvx mcp-server-fetch

3. github(代码仓库操作)

1
npm install -g @modelcontextprotocol/server-github

配置方法

Claude Code 在项目根目录创建 .mcp.json

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
 "mcpServers": {
   "filesystem": {
     "command": "npx",
     "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"],
     "env": {}
   },
   "fetch": {
     "command": "uvx",
     "args": ["mcp-server-fetch"]
   },
   "github": {
     "command": "npx",
     "args": ["-y", "@modelcontextprotocol/server-github"],
     "env": {
       "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
     }
   }
 }
}

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 终端对话,描述清楚上下文:

1
2
3
我在做一个 Node.js + PostgreSQL 的 SaaS 项目,
ORM 用 Prisma,帮我实现用户注册,
要有邮箱验证,错误处理跟已有 middleware 风格一致。

Step 2:代码生成

Claude Code 通过 MCP filesystem server 读取项目结构,生成代码,通过 github server 直接创建分支和 commit。

Step 3:调试优化

多轮对话保持上下文,不切换工具。在同一个 session 里推进。

Step 4:代码审查

1
2
3
4
5
# 用 gh CLI 看 diff
gh pr diff

# 或让 Claude Code 自己 review
claude "review this PR for security issues and code quality"

Step 5:部署

1
2
gh pr merge --squash
gh release create v1.1.0

实战:30 分钟完成一个小项目

我上次用这个链路做了一个 URL 缩短服务,从零到部署大概 25 分钟:

  1. Claude Code 终端描述需求:「用 FastAPI 做一个 URL 缩短服务,SQLite 存储,要有统计点击次数的功能」
  2. Claude Code 通过 MCP filesystem 读取空目录,生成项目结构和所有代码文件
  3. 两轮对话修了 ORM 关系和错误处理
  4. claude "写测试" 自动生成 pytest 测试,跑通
  5. gh repo create && git push 上线

关键是整个过程没有切换工具。终端对话→代码生成→测试→部署,一条线到底。

心流保护

频繁切换工具是心流杀手。我的经验:

  1. 一个任务一个 session,不要在同一个 Claude Code 对话里跳话题
  2. 把项目上下文写成 CLAUDE.md,放在项目根目录,每次启动自动加载
  3. 小任务用 Cursor Tab 补全,大任务用 Claude Code,别反过来
  4. 关掉通知,手机静音,全屏终端模式。Vibe Coding 的效率来自心流不间断

CLAUDE.md 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 项目背景
SaaS 项目,Node.js + PostgreSQL + Prisma

# 技术决策
- 认证用 JWT,不用 session
- 错误处理统一用 middleware/errorHandler.ts

# 代码规范
- TypeScript strict mode
- 测试用 vitest

进阶:打造你自己的 MCP Server

现有 server 覆盖不了所有需求。比如你想让 AI 直接查公司内部数据库、调内部 API、跑自定义脚本——就得自己写。

为什么不直接在对话里让 AI 生成 SQL?因为 MCP Server 是标准化的工具接口,任何支持 MCP 的客户端都能用。你在 Claude Code 里写的 server,Cursor 和 OpenCode 直接就能调,不用重复开发。

最小 MCP Server(Python,30 行)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from mcp.server.fastmcp import FastMCP
 
mcp = FastMCP("my-tools")
 
@mcp.tool()
def query_database(sql: str) -> str:
    """执行 SQL 查询并返回结果"""
    import sqlite3
    conn = sqlite3.connect("myapp.db")
    result = conn.execute(sql).fetchall()
    conn.close()
    return str(result)
 
@mcp.tool()
def get_weather(city: str) -> str:
    """查询城市天气"""
    import urllib.request, json
    url = f"https://wttr.in/{city}?format=j1"
    resp = urllib.request.urlopen(url)
    data = json.loads(resp.read())
    return data["current_condition"][0]["weatherDesc"][0]["value"]
 
mcp.run()

@mcp.tool() 装饰器把普通 Python 函数变成 MCP 工具。函数的 docstring 会作为工具描述传给 AI,所以写清楚描述很重要。参数类型标注(sql: str)自动变成工具的参数 schema。

配置到 Claude Code:

1
2
3
4
5
6
7
8
{
  "mcpServers": {
    "my-tools": {
      "command": "uv",
      "args": ["run", "--with", "mcp", "python", "my_server.py"]
    }
  }
}

⚠️ 踩坑: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.bashrcsource ~/.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
fetchHTTP 请求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