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

相关推荐
金銀銅鐵10 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(上)
java·后端·ai编程
Flynt11 小时前
GitHub 17万星的"懒人规则",我花2毛钱让 AI 带/不带它各写了一遍
agent·ai编程·claude
ServBay12 小时前
AI说代码没漏洞?马上被 PHP 打脸了
aigc·php·ai编程
孟健13 小时前
Claude Code 接入 Cloudflare 3.7万星安全审计 Skill:从全量烧钱到按需裁剪的实战方案
开源·ai编程·claude
殷紫川14 小时前
14款大模型Java编码能力横评:闭源三强断层领先,开源追赶到哪一步了
aigc·openai·ai编程
Behavior14 小时前
Kimi K3.1 疑似现身 LMArena:匿名代号 Kibitz、SGLang 单日六条加固 PR,月底有望官宣
llm·aigc·vibecoding
糟了好像在长脑子14 小时前
如何正确用好 Claude Code 的 general-purpose(附一个反面教材)
claude
文谦南宁AI普工15 小时前
跨组织 Agent 对接收官:12 条硬条款 + 一个能跑的门检校验器
aigc·agent·ai编程
用户40158233246215 小时前
对话一长,AI 就忘了你说过的话?Claude Code、Codex、Aider、WES Code 怎么压缩上下文
人工智能·go·ai编程