MCP:新时代的API,每个程序员都应该掌握

哈喽,我是老刘

老刘做Flutter开发6年多了,之前还做过Android客户端、网络安全等等不同的开发领域。

按说在这个AI蓬勃发展的时代,老刘这样的老派程序员应该属于被AI替代的对象。

不过在我看来AI虽然确实代替了开发中的一部分机械性的模板化的工作,但是同时也极大的扩展了应用的边界。

所以与其说AI替代了某某工作,不如说在AI的影响下各行各业都发生了深刻的变化。

一、AI扩展应用边界:从固定算法到动态智能​

"帮我安排下周二北京飞东京的行程,早班机别太贵,下午还能逛个秋叶原..."

三年前,如果你对手机说出这段话,它大概率会回复:"听不懂,请点击底部菜单操作"。

而今天,某程旅行App直接甩你一张完整行程单:航班比价、浅草寺路线、秋叶原店铺评分------整个过程像在跟人聊天。

为什么过去死活做不好的体验,现在突然实现了?​​ 秘密藏在技术代际的断层里。

1. 老办法到底卡在哪儿?​​

想象你要教小学生解方程:

固定算法​​:必须写死规则"见到'X+Y=Z'就代入公式",那如果要算X+Y^2怎么办?

对不起,需要提需求,进一步开发。

​​痛点的本质​​:代码只能处理人类预设的问题,​​而真实世界满是模糊需求和突发奇想​​。

2. 大语言模型:给App装上"大脑"​​

来看下面的场景:

"导航到三里屯评分最高川菜馆"

AI可以自动拆分以下动作:定位→搜餐馆→筛评分→算路线

"PDF第3页数据做成柱状图发我微信"

调OCR→提取数据→用Matplotlib画图→微信推送

本质上AI为应用提供了以下的能力:
​​听懂人话​​ :再刁钻的说法(如"那个啥PPT文件")都能基于上下文做出正确的判断。
自动规划 :可以将一个任务拆解为多个具体的步骤去执行。
​​动态组装技能​​:像乐高一样任意拼接工具链,无需程序员手写对接逻辑。

二、MCP:AI时代的"手脚"与标准化接口​

若LLM是应用的大脑,MCP则是连接外部世界的神经与肢体。

曾几何时,AI就像个只会动嘴的学霸:

你问"帮我查三月绩效",它甩你一串SQL教程

你说"邮件通知财务审批",它教你Outlook操作指南

Function call诞生

这种情况的改变是源于ChatGPT在2023年6月份的时候提出来的Function call协议。

Function call让LLM有了直接调用外部工具的能力。

假设我们让AI去查询北京今天的天气,它会按照下面的流程工作:

1、​​请求阶段​​

用户提问 + 函数定义列表 → 发送至ChatGPT API。

json 复制代码
{
  "functions": [{
    "name": "get_weather",
    "description": "获取城市天气",
    "parameters": {"type": "object", "properties": {"location": {"type": "string"}}}
  }]
}

​​2、模型决策​​

模型判断需调用函数 → 返回函数名及参数字符串,如:

json 复制代码
{"name": "get_weather", "arguments": "{"location": "Beijing"}"}

3、​​函数执行​​

AI客户端(例如CherryStudio、Cursor)解析JSON,调用本地或外部API(如天气接口),获取结果。

4、​​结果整合​​

将函数返回数据再次发送给模型 → 生成最终自然语言回复(如"今日晴,25°C")。

但是Function call并没有明确规定向LLM发送函数列表以及LLM调用某个方法时的具体字段及协议标准。

这就会造成不同LLM接受函数列表以及调用时的字段可能各不相同。

比如我要开发一个天气查询服务,就需要针对不同的LLM开发不同的通知和解析过程。

而作为一个AI客户端,比如Cursor或者CherryStudio,也需要针对不同的LLM以及不同的服务提供者做专门的适配。

为了解决上面这个问题,将Function call的通知和调用接口统一成标准协议自然而然的产生了,那就是MCP。

MCP 协议

MCP通过定义一个统一的协议层解决了上述碎片化问题:

1、​​统一交互协议​​

  • 标准化函数描述格式:所有服务提供者遵循同一套MCP Schema定义函数(名称、参数、权限)
  • 调用指令规范化:LLM返回的请求强制符合MCP JSON Schema,消除解析歧义
  • 示例:MCP函数调用指令格式
json 复制代码
{"action": "execute", "tool": "weather", "params": {"location": "Beijing"}}

2、双向解耦设计​​

三、为什么说开发者必须掌握MCP?​​

1. 躲不开的AI洪水:你的行业正在被"智能体"重塑​

当00后实习生用AI三天搞定报销系统,老程序员盯着自己写的10万行代码陷入沉思...

当老板发现AI能自动调数据库、连微信、改OA流程------你写的传统代码正在加速贬值!

2. 传统的开发模式正在被MCP重塑​

以前对接钉钉+用友+微信要写三套接口,但现在只需要对接对应的MCP服务,即可以让LLM去智能调用,也可以让AI生成对接的代码实现固定策略调用。

也就是说对接MCP接口的服务,可以同时满足传统的接口调用方式,也可以支持AI调用的方式。

从这个角度看它可以完全替代现有的接口体系,而不是仅仅用于AI的场景。

3. 生态卡位战:不做MCP Server=被踢出AI餐桌​

这里以高德地图的MCP服务为例,来看看生态位的重要性
先发优势固化用户习惯​​

  • 当开发者第一次调用地图服务时,高德MCP Server已是现成选项,接入成本接近于零

    • 可以找到的地图服务MCP的资料、教程和生态基本都是指向高德的。
  • AI应用默认接入高德后,沉淀为路径依赖

    • 当系统中一个服务运行良好的时候,除非有特殊原因,否则几乎不可能去做这种底层服务的替换。
      数据飞轮碾压技术差异​​
  • 当高德通过海量调用积累实时路况、POI热度等场景数据,反哺AI(比如亲子游线路推荐)

    • 新玩家即便技术更强,也会因缺乏数据闭环沦为"实验室玩具";

四、开发者的两条黄金赛道

其实智能体和MCP是全新的开发模式,对开发者来说有很多可以探索的方向和玩法。

这里列举两条老刘自己能看到的思路。

​​工具提供方​​:

把你的系统变成MCP Server

比如把财务软件暴露为"智能记账工具"

再比如提供本地主机上的MCP服务,就像老刘现在在使用的excel mcp,和智能体用自然语言说一下就可以将本地excel做对应的处理,效果非常好。
​​智能体设计师​​:

用MCP像搭乐高一样组装AI工作流

比如自动抓GitHub代码+跑测试+发Slack通知

五、从何开始?

前面我们讨论的是MCP在未来开发体系中的地位。

但是对于我们开发者来说要从何开始呢?

老刘自己是做客户端开发的,这两年更是主要写Flutter代码,原生方面都略微有些生疏了。

我觉得对于和老刘类似的程序员来说,就可以先从使用MCP开始。

比如先搭建一个本地的mcp运行环境,然后配置一些mcp服务优化自己的工作流程。

我在自己的电脑上基于Trae + excel mcp + 文件系统mcp,做了不少数据整理、配置文件生成等工作。节约了很多的时间。

当然Dart也能做相关的开发工作:

未来的手机端App,作为一个mcp host去调用mcp服务应该会是一件很常见的事情。

而Flutter作为目前跨平台开发的顶流,将各种端侧的功能封装为mcp server也是非常有可能的。

好了,本文主要是老刘对目前MCP、AI对于开发者的一些影响的思考和判断。

结尾添加了一些作为客户端、Flutter开发者能从哪里开始入手。

如果看到这里的同学对客户端、Flutter开发或者MCP感兴趣,欢迎联系老刘,我们互相学习。

点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。

可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》

相关推荐
weixin_505154466 分钟前
数字孪生包含哪些技术和创新?
大数据·人工智能·物联网·数据安全·数字孪生
京东零售技术9 分钟前
技术天才集结令!6/26 北京高校大模型技术交流开放日来了
人工智能
京东零售技术12 分钟前
京东零售基于Flink的推荐系统智能数据体系 |Flink Forward Asia 峰会实录分享
人工智能
snowful world16 分钟前
PolyU Palmprint Database掌纹识别数据集预处理(踩坑版)
数据库·人工智能·opencv
爱意随风起风止意难平18 分钟前
如何用AI赋能学习
人工智能·学习·aigc
Listennnn18 分钟前
Ollama vs. vLLM
人工智能
A达峰绮19 分钟前
AI时代的行业重构:机遇、挑战与生存法则
大数据·人工智能·经验分享·ai·推荐算法
昨日之日200633 分钟前
LatentSync V8版 - 音频驱动视频生成数字人说话视频 更新V1.6版模型 支持50系显卡 支持批量 一键整合包下载
人工智能·音视频
shengjk11 小时前
最全的 MCP协议的 Stdio 机制代码实战
人工智能
coder_pig1 小时前
UI设计不求人,对话 Figma MCP 直出UI设计稿!
mcp