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

相关推荐
乘风gg7 小时前
为什么AI 时代来临,大部分人吃不到红利
前端·ai编程·claude
Jackson__8 小时前
AI 时代,CLI 正在迎来第二春
ai编程·命令行
玉宇夕落8 小时前
AI Loop把 AI 从“问答机”变成“打工仔”
ai编程
用户3521802454759 小时前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
Java_慈祥9 小时前
手把手 教你,Claude + CC-Switch 使用!!
ai编程·claude·敏捷开发
duanze10 小时前
从零开始Android商业项目Vibe coding完全指南(七)
app·vibecoding
悟空码字10 小时前
【高德开放平台skill】从拍脑袋到看数据,我是如何把一个“选址直觉“做成 AI Skill 的
aigc·openai·ai编程
HLeiDev10 小时前
hl-research 拆解:一个“先问对问题“的调研工具,和它七版迭代里的取舍
claude
Warson_L11 小时前
什么是 PTC (Programmatic Tool Calling)?
ai编程