Claude Code的工程化落地:MCP 篇

MCP(Model Context Protocol)

如果你刚开始接触 Claude Code,MCP 基本是绕不过去的一环。它解决的不是"怎么写提示词",而是"怎么把外部数据和工具,安全地接进 AI 工作流里"。

这篇文章主要讲三件事:MCP 是什么、怎么配置,以及它和 Skill 到底该怎么选。

官方简介:模型上下文协议(MCP)是一种开放标准,它使开发人员能够在数据源和 AI 工具之间构建安全的双向连接。其架构非常简单:开发人员既可以通过 MCP 服务器公开数据,也可以构建连接到这些服务器的 AI 应用程序(MCP 客户端)。

MCP 到底是什么

MCP 本质上是一个典型的客户端-服务端应用框架。放到 Claude Code 这个场景里看,Claude Code 相当于 MCP 的客户端,MCP Server 作为服务端提供数据来源,两边通过 JSON-RPC 2.0 协议通信。

组件 角色 说明
MCP Client 请求方 内置于 Claude Code,负责发现和调用工具
MCP Server 提供方 暴露工具和资源的服务程序
传输层 通信管道 stdio、SSE、HTTP 三种方式

其中 SSE 的方式在最新版本的 Claude 中已经弃用。

传输层怎么通信

下面的示例是用户级配置。用命令行添加全局 MCP 后,在 mac 系统里,配置会落到用户目录下的 .claude.json 文件中。

本地 stdio 服务器

本地进程服务适合系统访问和自定义脚本工具。比如,你可以把一个本地接口查询服务封装成 MCP Server。

先看添加命令:

bash 复制代码
# 基本语法
claude mcp add [options] <name> -- <command> [args...]

# 真实示例:添加 openapi 接口查询服务
claude mcp add openapi-local -- node /Users/macos/mcp-server/openapi-local/index.js

生成的 JSON 内容大概是这样:

json 复制代码
"openapi-local": {
  "type": "stdio",
  "command": "node",
  "args": [
    "/Users/macos/mcp-server/openapi-local/index.js"
  ]
}

HTTP 服务器

如果你要接的是一个已经启动好的服务,比如 Figma UI 查询服务,可以直接走 HTTP。

添加命令如下:

bash 复制代码
# 基本语法
claude mcp add --transport http <name> <url>

# 真实示例:添加 figma UI 查询服务
claude mcp add --transport http figma http://127.0.0.1:3845/mcp

生成的 JSON 内容如下:

json 复制代码
"figma": {
  "type": "streamable-http",
  "url": "http://127.0.0.1:3845/mcp"
}

streamable-http 是基于 HTTP POST/SSE 混合模式的现代化通信协议,主要用于 MCP 传输层。它解决了连接不可恢复、长连接负担重、传输不灵活等问题。

MCP 怎么管理

位置决定作用范围

这一点很关键。MCP 配在哪里,决定了它影响哪些项目、要不要进版本库。

位置 文件路径 作用范围 CLI scope 是否提交 git
用户全局 ~/.claude.json 所有项目 local(默认)
用户设置 ~/.claude/settings.json 所有项目 user
项目共享 /.claude/settings.json 当前项目,团队共享 project
项目本地 /.claude/settings.local.json 当前项目,仅自己 - 否(gitignore)

生效遵循就近原则:项目本地 > 项目共享 > 用户设置 > 用户全局。

常用命令

日常管理 MCP,基本就是下面这几条命令。

bash 复制代码
# 添加服务
claude mcp add [options] <name> -- <command> [args...]
# 或者
claude mcp add --transport http <name> <url>

# 列出所有配置的服务器
claude mcp list

# 获取特定服务器的详细信息
claude mcp get github

# 删除服务器
claude mcp remove github

# 在 Claude Code 中检查服务器状态
/mcp

用命令行配置时,最好确保 VSCode 和 Claude 都是最新版本,避免因为读取规则不同,出现只有一端生效的情况。

MCP 和 Skill 到底怎么选

实际使用里,很多人会觉得 Skill 可以替代 MCP。我的判断是,这两者根本不是一个层面的东西,硬替代基本走不通。

MCP 更像一个 Adapter,负责把各种外部工具和数据源接进来;Skill 更像 SOP,负责告诉 Claude 应该按什么流程做事。只要牵涉到外部数据来源,MCP 就更合适。前端常用的 Figma,就是一个很典型的 MCP 场景:外部服务交互这件事,Claude 不需要理解 Figma 的内部协议细节;如果只靠 Skill,就得更多依赖 LLM 自己去理解和处理,Token 消耗也会明显更高。

主要差异可以直接看这张表:

维度 MCP 服务器 Skill
本质 独立进程,提供工具(函数调用) 提示词模板,指导 Claude 如何做事
跨项目 天然支持,配置在全局即可 需要复制 Skill 目录到每个项目
数据处理 服务端处理,只返回结果,省 token Claude 需要理解整个提示词,可能消耗更多上下文
状态/计算 可以做复杂逻辑(过滤、聚合、转换) 依赖 Claude 自己推理
适合场景 数据查询、外部服务交互、文件操作 工作流编排、输出规范、决策指导

最后说一句

MCP 用起来很顺手,但安全这件事不能大意。尤其是接本地脚本和敏感数据源的时候,最好先想清楚权限边界,别让恶意脚本把不该读的东西读走了。

相关推荐
pany8 小时前
做 AI 友好的开源 Vue3 模板 🌈
前端·vue.js·ai编程
狼爷9 小时前
从入门到进阶:全方位拆解RAG落地优化方案,彻底解决幻觉与检索短板
ai编程
InfiniSynapse11 小时前
InfiniSynapse × CSDN 首届 Vibe Coding 泛数据分析应用开发大赛正式启动报名!
人工智能·数据挖掘·数据分析·创业创新·个人开发·ai编程·程序员创富
妙码生花13 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(三十二):增加 admin_rule 模型及数据表迁移
数据库·go·ai编程
wenying_4432374414 小时前
Python脚本—1.提取压缩包中的pdf文件
python·ai编程
FantasticPerson14 小时前
30 · 输出样式(Output Styles):换一档「节目」,不换主持人
ai编程
FantasticPerson14 小时前
31 · 钩子(Hooks):在固定时机自动扣扳机
ai编程
FantasticPerson15 小时前
29 · settings.json:用户级 / 项目级配置
ai编程
小虎AI生活15 小时前
90%的人 AI 副业一分钱没赚到,卡的地方出奇一致
ai编程
名不经传的养虾人15 小时前
从0到1:企业级AI项目迭代日记 Vol.65|最危险的故障不是崩溃,是悄悄换掉了正确答案
数据库·人工智能·ai编程·ai-agent·企业ai