说实话,我见过太多“下一代”协议了。Web3、Blockchain、Metaverse...每个都说要改变世界,最后都被现实干趴下。但这次MCP,我愿意试着用用。
为什么?因为我这些年做AI产品,最烦的不是模型不够强,是集成地狱。每个AI应用都要连数据库、连API、连CRM、连内部工具...你以为用LangChain就完事了?不,每个模型还得写自定义适配器。ChatGPT一套代码,Claude另一套,Gemini再一套。2023年那会儿,换个模型就得重写,维护起来想骂娘。
原文说得直接:Without MCP: Every AI tool needs separate connectors. Hard to maintain. Hard to scale. Vendor lock-in risk. 这不是正确废话,是真痛点。我当年搞一个客服机器人,光是接Salesforce、Zendesk、Jira三个系统,两周没了。而且换模型就得从头来,老板还催着上线,你猜我当时的血压。
MCP干了什么?它定义了一个标准接口:AI模型(Host)通过MCP Client,跟MCP Server通信。Server里放你的工具、API、数据库逻辑。一次集成,到处能用。原文比喻成USB-C,我同意——但不是完美的USB-C,至少现阶段像早期版本,可能还要转接头。
看核心结构(原文拆得很清楚):
- Host:AI应用本身,比如Claude Desktop、IDE、你的聊天助手。
- Client:桥接层,负责让AI知道有哪些工具可用。
- Server:你写工具的地方。一个server可以暴露多个tool,每个tool就是一个函数,AI能动态发现并调用。
原文给了JavaScript示例,我直接跟着跑了试试。npm安装@modelcontextprotocol/sdk和zod,创建server,加一个getWeather工具。代码很简单:
javascript
server.tool("getWeather", { city: "string" }, async ({ city }) => {
return { content: [{ type: "text", text: 🌤️ Weather in ${city}: 32°C, Clear Sky }] };
});
然后跑node server.js,AI就能调用这个工具。关键在于:你没写任何AI模型特定的适配代码。AI通过MCP协议发现这个工具,自动决定何时调用。原文画了流程图:用户问“天气”,AI检测缺少信息→搜索工具→找到getWeather→调用MCP server→获取结果→返回答案。AI不再是单纯的文本生成器,变成了工具使用者。
但我说了,别当魔法。原文列了常见错误:
- ❌ 认为MCP替代API:它只是包装,底层还是得调实际API。
- ❌ 直接暴露数据库:MCP server里不要裸写SQL查询,要加中间层和鉴权。
- ❌ 不验证输入:用户问“删除所有用户”,AI可能直接调用你的deleteAll工具——你连个确认都没有?
- ❌ 当黑盒:MCP不是“AI会自动解决一切”,你仍然需要设计合理的工具接口。
我补充一点体验:MCP Server的编写质量直接决定AI行为。如果你的工具描述不清晰(比如getWeather的description写“获取天气”),AI可能在你不想的时候调用。好的实践是给工具写详细描述,给参数加约束。就像给实习生写说明书。
那么现在该不该上?我的建议:值得试试,但别all-in。
- 如果你在做一个需要连接多个数据源的AI应用(HR bot查工资、Dev bot查GitHub、财务bot拉交易),MCP能让你一套工具层喂给多个AI。原文说了:Before MCP = 集成地狱;After MCP = 一个工具层服务所有AI。
- 如果你只是搞个简单的GPT陪聊,别折腾,没必要。
- 如果你担心生态不成熟——确实,目前MCP的SDK还在迭代,社区库不够多。但协议设计本身简洁,自己写一个server也就几十行代码。成本低,收益看场景。
最后,原文的类比到位:MCP之于AI工具,就像REST之于API,HTTP之于Web,USB-C之于硬件。标准化总是后发制人,但一旦搞定,就没人想回到以前。
动手建议:
1. 装SDK,写一个简单的tool(比如查询本地文件,或者调一个公开API)。
2. 连上Claude Desktop(它原生支持MCP),看AI怎么发现调用。
3. 别一上来就想接生产数据库,先用mock数据测试流程。
4. 注意鉴权和输入验证——这是你的责任,不是MCP的。
MCP不是银弹,但它解决了真正的问题。至少比那些喊了三年还跑不通的“去中心化xxx”靠谱。试试,不亏。