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

相关推荐
Bigger1 小时前
因为看不懂小棉袄的画,我写了个 AI 程序帮我“翻译”她的世界
前端·人工智能·ai编程
AI_Ming2 小时前
从0开始学AI:层归一化,原来是这回事!
算法·ai编程
海上日出2 小时前
量化选股"智能评分卡":用 Python 构建多因子模型,选股胜率提升 42%(完整代码)
ai编程
用户223586218202 小时前
MCP 是 Claude 的 什么? - claude-10
人工智能·claude·vibecoding
billhan20162 小时前
AI 写代码比你快 10 倍,你还剩什么?——读 mattpocock/skills
ai编程
Awu12272 小时前
⚡精通 Claude 第 8 课 | 给 Claude 装个撤销按钮:检查点完全指南
aigc·ai编程·claude
量子位2 小时前
黄仁勋喊话毕业生:AI不会取代你,但善用AI的人会
ai编程
用户69371750013843 小时前
AI时代,谁最容易被淘汰?
ai编程
Hector_zh3 小时前
JiuwenClaw 持久化存储落地:从方案到生产的实践验证
人工智能·ai编程