最近MCP这个词在AI圈真的快刷屏了。Claude Code要配MCP、Codex要配MCP、Figma和Blender这种设计软件也在聊MCP,甚至有人问“博途PLC怎么加MCP”“剪映MCP怎么用”。很多人第一反应是:又来了一个不明觉厉的新概念?其实不是。MCP(Model Context Protocol,模型上下文协议)解决的是一件特别朴素的事:让AI能安全、稳定地调用外部工具和数据。
我最近把一批常用的MCP Server实际装了一遍,踩了不少坑,也总结出了真正值得放进清单的东西。这篇博文就是我的个人精选MCP清单,从协议原理、工具选型到配置过程、常见报错,一次性讲透。不管你是刚开始接触MCP的新手,还是已经在IDE里配置过几个Server的老手,这份清单应该都能帮你省下不少折腾时间。
1. MCP到底是什么:先搞懂协议本身
1.1 一个USB接口的比喻
MCP本质上就是AI世界的USB-C接口。想想看,以前智能设备各用各的充电口,后来统一成Type-C,所有设备都能用一根线搞定。MCP做的事也一样:它统一了AI Agent和外部工具之间的通信标准。
在MCP出现之前,每个AI应用想调用工具都是各搞一套。有的用Function Calling,有的自定义JSON协议,有的直接拼Prompt让模型输出特定格式。结果就是每接入一个新工具,都要重新写一套适配代码。MCP出现后,工具提供方只需要实现一个MCP Server,任何支持MCP的客户端(Claude Desktop、Claude Code、Codex、各种IDE插件)都能直接复用。
这套架构里四个角色要分清楚:
- MCP Host:宿主程序,也就是你正在用的AI客户端,比如Claude Desktop、VS Code、IDEA。
- MCP Client:Host内部负责和Server建立连接的组件,一个Host可以同时连多个Server。
- MCP Server:暴露工具的中间层,它本身不一定要实现业务逻辑,但必须把能力包装成标准的“工具”供AI调用。
- 底层资源:Server背后真正操作的东西,可能是数据库、文件系统、浏览器,也可能是某个外部API。
1.2 协议通信的两种方式
MCP底层基于JSON-RPC 2.0通信,传输层有两种主流方式:
一种是stdio,也就是标准输入输出。客户端直接启动一个本地子进程,通过进程的stdin/stdout和Server通信。这种方式的优点是配置简单、性能好、没有网络暴露面,适合跑在本地的工具,比如文件操作、本地数据库、代码分析。缺点也很明显:Server只能被本机客户端使用,而且生命周期跟着进程走。
另一种是HTTP + SSE或Streamable HTTP,Server作为一个独立服务跑在某个端口上,客户端通过HTTP请求调用。这种方式适合部署在远程服务器上,可以同时服务多个客户端,也适合把公司内部的API能力开放给AI使用。现在很多团队在做Spring AI Alibaba、Java服务发布MCP,基本都是走这条路线。
我在实际使用中给一个建议:本地工具能走stdio就走stdio,别图省事全都搞成HTTP服务。本地数据库连接串直接写在命令行里虽然方便,但在进程列表里能被看到,敏感环境里还是要注意。
1.3 MCP和Tool、Skill、Prompt的区别
这个问题被问得太多了,我直接列一张表。
| 概念 | 层次 | 解决什么问题 | 类比 |
|---|---|---|---|
| Prompt | 提示词层 | 告诉AI应该怎么做、按什么格式回应 | 给新员工写岗位说明书 |
| Tool | 能力单元层 | 提供一个可执行的函数,让AI可以调用 | 给新员工开通某个系统权限 |
| Skill | 行为流程层 | 组合多个工具和提示词,形成一个完整的工作流 | 给新员工一套标准化作业SOP |
| MCP | 连接标准层 | 规定工具如何被发现、如何被调用、如何传参数 | 统一所有系统的接口标准 |
很多人把MCP和Tool混为一谈,其实MCP是Tool的“传输协议”,不是Tool本身。一个MCP Server能同时暴露多个Tools,这些Tools可能来自完全不同的底层系统。Skill则更偏流程编排,它内部实现可能会用到MCP工具,也可能只是纯提示词。理解这个区别,你在设计Agent架构时才能定位清楚每一层该做什么。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 个人精选清单:设计与创意类MCP
2.1 Figma / MasterGo / 蓝湖:设计稿直转代码
设计稿转代码一直是前端开发的老大难问题。传统做法是人肉看图、人肉量间距、人肉写样式,效率低还容易出错。MCP出现后,这个场景变得顺畅很多。Figma MCP Server的配置思路是用Figma的Personal Access Token去读取设计文件的节点信息,AI拿到这些结构数据后,可以直接生成对应HTML/CSS或React代码。
配置步骤很直接:在Figma开发者后台生成一个有File Content只读权限的Token,然后在MCP配置里填上Token和File Key。File Key就是设计文件链接里那一长串ID。我建议在授权时严格按最小权限来,Figma的Token是可以限定资源范围的,不要图省事给全部文件权限。
国内团队更常用的是MasterGo和蓝湖。MasterGo作为国产设计工具,本身对国内前端生态适配更好,组件命名和资源管理方式也更符合国内习惯。它的MCP能力基本对标Figma方案,核心价值一样:让AI直接读取设计稿图层结构,而不是靠截图肉眼判断。蓝湖MCP则更多聚焦在设计标注数据的读取上,适合需要精确还原设计稿的场景。
实际操作中我发现一个关键点:设计稿的图层命名规范直接决定MCP生成代码的上限。如果图层全叫“矩形1”“组12”“Frame 42”,AI拿到的就是一堆无意义节点,生成代码自然没法看。反过来,命名规范的设计稿,AI能准确识别出导航栏、按钮、卡片这些语义化结构,产出质量会高一个量级。所以用这类MCP之前,先在团队里把设计命名规范立起来。
2.2 Blender MCP:3D建模也能对话式操作
Blender MCP是社区里特别火的一个方向,核心思路是Blender本来就支持Python脚本,MCP插件相当于在Blender里跑了一个本地服务,AI通过这个服务接收自然语言指令,再翻译成Blender Python API调用。
配置流程大概是:下载Blender MCP插件源码,放进Blender的addons目录,在偏好设置里启用插件,然后开启插件面板里的远程控制开关。插件会启动一个本地端口,你把这个地址填到Claude Code或Claude Desktop的MCP配置里,AI就能“看见”当前场景里的对象列表、材质、修改器这些信息,也能执行移动、旋转、创建物体、调整灯光等操作。
对3D从业者来说,这个工具的价值不是替代建模,而是把重复性操作交给AI。比如“把场景里所有叫Cube的物体统一改成半透明红色材质”“在Z轴上把所有选中的物体间距变成0.5米”,这种批量操作用对话就能完成,省去写脚本的时间。
但这里有个坑要提醒:不同版本的Blender对Python API兼容性差异很大,插件作者通常只维护特定版本。我实测下来,2.93和4.x的API改动不小,安装插件前先看README里标注的兼容版本,别装完才发现接口不可用。
2.3 剪映MCP:社区实验阶段的高潜力方向
剪映MCP严格来说还没有官方方案,目前更多是社区实验性质。有些开源项目会直接解析剪映草稿文件夹里的draft_content.json,把时间线、素材路径、字幕轨道这些信息结构化暴露出来,再包装成MCP工具给AI调用。
在这个基础上,AI可以做不少事:分析当前剪辑的时间线布局、批量替换某个素材、按文案自动生成字幕建议、甚至检查人物口播和字幕是否同步。剪映的工程文件本质上是JSON结构,只要协议约定好,AI完全能通过MCP直接操作。
不过要清醒认识到,这个方向还在快速迭代中。剪映不同版本的工程文件格式变化很快,社区项目很可能跟不上官方更新节奏。我的建议是:如果你想尝试,找一个最近一个月还在更新的项目,不要用半年前就停更的方案。
3. 个人精选清单:开发、调试与安全类MCP
3.1 Claude Code + 数据库MCP:让AI直接查库
给Claude Code配数据库MCP是我日常开发中用到最多的场景。语法很简单,在项目里执行类似这样的命令:
bash复制claude mcp add mysql -- npx -y mcp-server-mysql --connection-string mysql://user:pass@127.0.0.1:3306/assets
不同Server包的具体参数名称可能有差异,以对应仓库README为准。配置完成后,用claude mcp list确认Server状态,然后在对话里直接问“查一下订单表最近七天的数据量”,AI就会自动调用MCP工具执行SQL并返回结果。
这个能力在开发阶段价值极大。遇到线上问题时,你在对话里描述现象,AI帮你查库定位,双方协作效率比人肉开客户端一条条执行SQL高得多。但要特别强调一点:数据库MCP一定要使用只读账号。我在自己项目里专门建了一个只有SELECT权限的数据库用户给MCP用,避免AI在理解偏差时误执行UPDATE或DELETE操作。AI再聪明,防呆设计还是得做足。
另外,连接串里的密码会明文出现在配置文件中,如果项目是多人在用,注意别把这个文件提交到公开仓库。更稳妥的做法是放到不纳入版本管理的本地配置里,或者用环境变量引用。
3.2 Codex MCP:从GitHub压缩包到本地调试
Codex支持MCP之后,很多开发者从GitHub仓库直接下载源码压缩包来本地安装使用。流程不复杂:下载某个MCP Server仓库的源码包,解压后用包管理器安装依赖,再通过codex mcp add这种命令把本地路径注册进去。
有一类典型场景是:社区提供的MCP Server还没发布到npm包管理器,但GitHub仓库里的代码已经能用了。这时你只能走源码路径。注册命令大致是:
bash复制codex mcp add my-server -- npx tsx /absolute/path/to/server.ts
这段命令的重点有两个:一是路径必须用绝对路径,相对路径在Codex不同工作目录下会失效;二是很多TS写的Server需要用tsx这类运行时来执行,直接node server.ts会因为ESModule语法报错。
我在实际调试中踩过一个典型的坑:从Windows路径复制下来的地址反斜杠和空格处理不当,导致MCP Server启动失败。解决方法是路径用正斜杠,整个路径用双引号包裹。
3.3 Playwright MCP:浏览器自动化的标准答案
Playwright MCP是我清单里排名靠前的工具。它本质上把Playwright的浏览器自动化能力封装成了MCP工具,AI可以自己打开浏览器、跳转页面、点击元素、截图、读取DOM、执行JavaScript。对开发和测试来说,这意味着AI能真正“看见”页面长什么样。
一个典型的应用场景是:你让AI在本地开发环境里走一遍下单流程,它自己点开页面,找到对应按钮,点击后截图给你看结果,整个过程不需要人工介入。这比传统E2E测试脚本灵活得多,因为AI会在报错时看页面内容,然后自我修正选择器。
安装运行就一行:
bash复制npx @playwright/mcp@latest
然后把这个命令配置到MCP客户端即可。默认情况它会启动带界面的浏览器,方便观察。调试自动化脚本时建议关掉headless模式,看到AI每一步操作,你能在几秒内发现它是不是点错地方了。顺便说一句,国内访问部分外部站点速度不稳定时,浏览器自动化也会变慢,排查时可以看是网络问题还是等待策略问题。
3.4 安全工具箱:Burpsuite、Kali、IDA的MCP玩法
安全方向的MCP是最近的热门话题。Burpsuite MCP通过社区插件把流量捕获、扫描任务这些能力暴露成MCP工具,AI可以直接发起扫描请求、读取扫描结果、分析请求响应包。Kali MCP更常见的是用Docker部署,把nmap、gobuster这类命令行工具封装成标准工具,AI负责编排调用链。IDA MCP则面向逆向分析,辅助AI读取反汇编结果、分析函数调用关系。
这套玩法虽然看起来很酷,但必须强调使用边界:只能在你有授权和合法权限的目标环境中使用。安全测试工具本身是双刃剑,如果跑在没有授权的目标上,性质就完全变了。MCP只是降低了工具调用门槛,并没有改变工具的法律边界。在自己搭建的靶场环境里练习完全没问题,拿去做未授权测试坚决不行。
4. 个人精选清单:办公与工程软件类MCP
4.1 Office Word MCP:让AI帮你改文档
Word MCP Server解决的是文档批处理和格式规范化问题。AI通过MCP Server读取docx内容、操作段落样式、替换文本、插入表格,甚至根据模板生成完整合同。原理上docx就是带特定XML结构的压缩包,MCP Server在中间做了一层解析和封装。
典型场景是批量生成周报:给AI一份上周工作要点列表,让它按公司模板格式生成Word文档,标题层级、加粗、表格样式都由模板决定。以前用VBA宏或者文档模板实现的事,现在用自然语言就能驱动。
安装方式以对应仓库为例,一般是下载Server后本地运行,再配置到客户端。我建议在正式使用前做一次模板适配测试,因为不同公司模板的页边距、字体、编号规则千差万别,AI默认生成的格式大概率要微调。
4.2 工业软件也来凑热闹:NX Open与博途
工业软件接入MCP是非常有想象力的方向,但说实话目前还非常早期。NX Open MCP做的事情是把Siemens NX的二次开发接口桥接出来,AI可以通过对话生成NX Open脚本,比如批量创建零件特征、自动装配约束。好处很明显:搞NX开发的人不用再去翻几千页的API文档,直接描述需求让AI生成脚本,然后同样通过MCP回写执行。
博途TIA V21相关的话题更复杂。目前博途官方没有直接提供MCP插件,网上流传的方案多半是把TIA Openness(博途的二次开发接口)桥接出来,让AI能生成或修改PLC相关代码块。这个方向还处于实验室阶段,工业现场对稳定性要求极高,我不建议在真实生产线上尝试。在测试环境里玩玩可以,正式项目还是等工具成熟或者官方支持。
4.3 生活服务类:美团MCP的想象空间
美团MCP严格来说更多是场景演示性质,但它代表了一类趋势:生活服务类App把自己的能力开放给AI Agent。试想一下,AI帮你规划周末行程,查餐厅、看评价、对比价格、甚至直接下单,这些能力如果都通过MCP标准化暴露出来,Agent的实用价值会大幅提升。
当然,这类MCP通常需要对应的开放平台API授权,涉及交易和隐私数据,不会像开发工具那样随便公开可用。目前看到的大多是官方合作或内部演示项目。对我们的启发是:做Agent开发时,如果有自建的后台系统,可以尽早考虑用MCP把核心业务能力暴露出来,后续无论接入哪个AI助手都能用。
5. 手把手接入:三种最常用的MCP落地方式
5.1 在Claude Code里配数据库MCP
我以本地MySQL为例,把完整过程走一遍。先确定你要用的MCP Server包名称,然后执行添加命令,以某个通用Server为例:
bash复制claude mcp add mysql -- npx -y mcp-server-mysql --connection-string mysql://readonly_user:密码@127.0.0.1:3306/your_db
执行后用claude mcp list确认状态为connected。接着在对话区域问AI:“帮我看一下当前连接到了哪些数据库工具?”AI如果回答它能看到MySQL相关的工具描述,说明配置成功。
如果要换连接字符串,可以用claude mcp remove mysql移除后重新添加。团队项目里如果想让所有协作者共享一套配置,可以在项目根目录放一个JSON配置文件,里面声明MCP Server的command、args和env,代码仓库里大家共用一个模板,本地用环境变量区分不同环境。这种方式在CI也容易调试。
5.2 Spring AI Alibaba调用外部MCP服务
Java生态接入MCP,目前最顺手的方案是Spring AI Alibaba。它专门提供了MCP Client相关组件,企业里如果有人已经发布了内部MCP Server,别人接起来就很方便。
首先在pom里引入spring-ai-alibaba-starter-mcp-client,然后在application.yml里注册远程服务地址:
yaml复制spring:
ai:
mcp:
client:
connections:
remote-server:
url: http://your-mcp-server:8080/mcp
启动应用后,在代码里注入McpToolUtils之类的工具类,就能拿到远程Server暴露的工具列表,然后像调用本地方法一样使用这些工具。可以把从MCP服务器获取的工具列表注册到Spring AI的ToolCallback中,让Agent在对话里自动触发。这个过程里,工具名称和描述是从服务端动态获取的,不是写死在客户端代码里,所以服务端更新工具,客户端无需重新发版。
5.3 Java项目把REST接口发布成MCP
反过来,如果你自己是服务提供方,想把已有的REST接口暴露成MCP Server,同样可以用Spring AI Alibaba。核心思路是把方法标记为工具,框架自动生成MCP协议端点。
引入依赖后,在配置类或服务类里写类似这样的代码:
java复制@Tool(description = "根据用户ID查询订单列表")
public List<Order> getOrdersByUserId(String userId) {
// 调用原始服务层代码
return orderService.listByUserId(userId);
}
启动服务后,Spring AI会自动暴露一个MCP相关的HTTP端点,支持MCP协议的客户端直接连接就能发现这个工具。这里我强烈建议把@Tool的description写清楚,因为它就是LLM决定“什么时候该调用这个工具”的唯一依据。描述里应该包含方法用途、参数含义、返回结构、异常可能性,越清晰AI用起来越准。
如果不想依赖Spring AI全家桶,也可以用MCP官方的Java SDK手写一个Server启动类,通过jsonrpc处理工具调用请求。但介于Spring生态在Java领域的普及度,我推荐优先用Spring方案,省心很多。
5.4 关于认证和权限:MCP的OAuth玩法
MCP Server如果是远程HTTP服务,认证就是一个绕不开的问题。MCP协议支持基于OAuth 2.1的授权流程,比较典型的场景是Figma MCP、GitHub MCP这类需要访问用户私有数据的服务。
流程大概是:客户端发起连接时,Server返回一个HTTP 401,并带上授权URL。客户端打开浏览器让用户登录授权,授权服务器回调一个Authorization Code,客户端再用这个Code换取Access Token,之后所有MCP请求都带上这个Token。Server端收到请求后验证Token权限,决定是否放行。
在国内企业内部落地时,通常不会直接对接公共OAuth提供商,而是把MCP接入公司自己的SSO系统。实现原理是一样的,只是Authorization Server换成了公司内部IDP。开发时注意Token的过期刷新机制,MCP客户端一般会自动处理Refresh Token,但如果你是自己写的客户端,务必要把刷新逻辑做对,否则过一段时间所有调用都会静默失败。
6. 常见问题速查:我踩过的那些坑
6.1 高频报错与排查方向
| 现象 | 可能原因 | 解决思路 |
|---|---|---|
| MCP Server启动失败 | 依赖没装齐、Node版本过低 | 看Server日志,npm install重装,确认Node版本 |
| 连接成功但看不到工具 | 协议版本不匹配、工具描述为空 | 检查Server端日志输出,看工具列表接口是否返回正常数据 |
| stdio类型的Server连不上 | 命令路径不对、PATH环境变量缺失 | 用绝对路径,检查本机Node/npm是否在PATH里 |
| 远程MCP返回401/403 | OAuth授权过期、API Key没配 | 刷新Token,检查Server日志里具体是哪一步拒绝 |
| 下载MCP总失败 | 网络源问题、文件路径含中文或空格 | 先下载好依赖包手动安装,路径换成英文无空格目录 |
| IDAE或Android Studio里找不到MCP入口 | 插件版本太旧、入口被折叠 | 确认插件版本更新到最新,在设置里直接搜索“MCP”关键词 |
| Trae的Builder连接MCP后无反应 | 模型上下文过长、Server未就绪 | 重启IDE,清空当前对话上下文,重新连接 |
6.2 几个容易忽视的配置细节
第一,路径问题。Windows本地开发时,MCP配置里的命令和参数路径最好全部用正斜杠,反斜杠和空格经常导致进程启动失败。这是新手翻车率最高的原因。
第二,版本锁定。很多MCP Server更新非常频繁,用npx -y直接跑latest版本,今天能跑到明天可能因为依赖变更而报错。我自己的习惯是把用到的Server版本号固定在配置里,生产环境更是要锁死。
第三,日志位置。MCP Server报错时,客户端的错误信息往往很模糊。远程HTTP类型直接看Server控制台输出,stdio类型要确认Host是否把子进程stderr暴露出来。一个快速定位技巧是先在命令行里手动执行一次MCP Server启动命令,看看有没有报错,再放到客户端里跑。
第四,小智这类智能体应用下载MCP失败的问题。很多时候不是MCP配置本身的问题,而是应用拉取远程配置时超时或校验失败。可以先在本地把MCP Server手动启动起来,确认端口在监听,然后在智能体配置里直接填本地HTTP地址,跳过自动下载步骤。
聊了这么多,我最后说一句自己的真实体会:MCP虽然还在快速迭代,但方向已经很明确——AI要从“聊天工具”变成“操作系统级入口”,协议标准化是必经之路。我的建议是不要追求把所有MCP都装一遍,从接入成本最低、收益最直接的一两个开始,比如先给自己的Claude Code配一个数据库MCP和Playwright MCP,用顺手了再扩充设计类、办公类。工具的清单会过期,但你对这套协议运作方式的理解不会。
