前端的AI路其之一: MCP与Function Calling

前言

AI已经来了。24年末到25年的这几个月里面尤为明显,AI已经开始入侵我们生活的方方面面。总有人说:程序员要被替代了。为了不被替代,为了乘着这股浪潮,作为前端,也只能all in AI了。 接下来,我将以我的视角,来记录一个前端在ai的学习路程。愿你我共勉

1.何为Function Calling

在阐述MCP之前,我想先聊一下Function Calling 。不知道各位有没有体验过Function Calling。如果一句话总结就是 Funcion Calling 是给大模型插上手脚,让我们通过对话的方式,让模型调用对应的工具达到你要的效果 其实很像Siri或者 小爱同学的使用方式。 比如我们想十分钟后让Siri叫我们一下,就可以说: 嘿 Siri,定一个十分钟后的闹钟。然后Siri就会在电脑上建一个闹钟,十分钟后叫醒你。 这其实就像Function Calling实现的效果。给模型插上手脚

1.1 举个栗子

我们举个栗子来描述一下吧。

如果从程序的角度实现这样一个定闹钟的功能,你会怎么做?

如果是我,首先得有一个软件A,然后我会写好这个定闹钟的脚本,支持输入闹钟的时间,然后将这个方法给软件使用。 接下来,用户就可以在软件上通过表单填写提交等方式来定闹钟。

这样一个定闹钟的功能 涉及了三方: 脚本、软件、用户。脚本提供定闹钟的功能、软件提供使用平台、 用户是调用方。 现在作为用户,不想填写脚本了,觉得麻烦,能不能让软件自己搞,用户吩咐一下就行?

可以!我们把大模型看做软件。现在用户说了:定一个十分钟后的闹钟。那么模型该怎么做呢?首先肯定要理解这句话,用户要定一个十分钟后的闹钟。接下来再看下自己能不能做。

那么怎么让模型知道自己能不能做,以及该怎么做呢?这就是Function Calling的存在意义了。它让模型能够理解我们的脚本,并在对应的时候执行这个脚本。

了解了Function Calling,我们再来看MCP

2 何为MCP

2.1 官方定义

官方定义

MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.

理解一下就是 MCP提供了一种标准化的方式,让模型能够连接到不同的数据源和工具。就像USB-C端口一样。不论什么牌子的电脑,只要有USB端口,那么可以插各种外置,键盘啊、鼠标啊、音响啊。只要是USB-C端口,就可以。

2.2 图解

图上提到了了几个概念 MCP Hosts(MCP主机)MCP Clients(MCP客户端)MCP Servers(MCP服务器)Local Data Sources(本地数据源)Remote Services(远程服务)其实我感觉 Clinet 和 Hosts其实不应该分开来看。我把他们看做一个概念Clinet: 即有能力通过MCP访问外部服务的软件

这里也可以用一句话来描述:Server A、B、C 是具有访问本机数据以及远程数据的能力,并且按照MCP协议提供了该能力,Clinet可以通过MCP协议调用A、B、C以使用他们的能力。

2.3 再举个栗子

上面的例子,我在软件A上实现了一个闹钟功能,突然有一天,另外有一个软件B,它也有闹钟功能的诉求,后面还有软件C、D等等。而且他们各自技术栈不一样。怎么办?基于他们各自写一套?这时候,如果能有一套标准就好了,我们将闹钟功能单独提供,各个软件按照标准接入、调用,是不是就一劳永逸了? 同理,如果不同的大模型都遵循同一套协议,那么是不是可以实现一个闹钟,多方调用? 这个统一的协议就是 模型上下文协议(MCP Model Contex Protocol)

如果我们再用一句话总结 MCP就是大模型界的HTTP 。类比到前后端,不论后端是JavaGoNode、前端是JSRust。只要遵循HTTP,那就可以相互通信。 MCP也是类似,不论是什么样的模型,只要遵循MCP协议,Function Calling也遵循MCP协议开发,那么就可以实现无差别复用。

结语

这只是我对Function CallingMCP的浅显理解。为什么会在聊MCP的时候先聊了Function Calling?是因为我看到了很多把他们放在一起比较的文章,但是不论怎么解释,我都觉得好像有些不太合心意。最后,我得到了一个启示,MCP是协议,Function Calling是工具,二者不是一个层面东西,放在一起比较没有意义。最后,我发现MCP应该说是是Function Calling的标准化形态。它让Function Calling的适用性大大提升,把我们从适配中解放出来,让我们更专注于创造。

最后,如果文章有不对之处,欢迎各位指正。虚心求教,不为面子,只为真相。

愿你我共勉,祝好。

参考

相关推荐
墨风如雪3 小时前
告别纸上谈兵:Meta CWM让AI代码真正活起来
aigc
是店小二呀8 小时前
整合亮数据Bright Data与Dify构建自动化分析系统
大数据·自动化·dify·mcp·bright data
唐某人丶9 小时前
教你如何用 JS 实现 Agent 系统(3)—— 借鉴 Cursor 的设计模式实现深度搜索
前端·人工智能·aigc
逛逛GitHub9 小时前
GitHub 上贼牛逼浏览器自动化 MCP,已有 2 万人点赞。
github·mcp
coder_pig9 小时前
Claude Code + Holopix AI | 轻松复刻 "虚假广告"-🧟‍♀️射击小游戏
aigc·ai编程·claude
coder_pig9 小时前
玩转 Claude Code CLI | 1、安装配置 & 基本使用
aigc·ai编程·claude
OpenTiny社区11 小时前
基于华为云大模型服务MaaS和OpenTiny框架实现商城商品智能化管理
前端·agent·mcp
javastart11 小时前
Agno 架构介绍:高性 Multi-agent 系统框架深度解析
人工智能·aigc
桂花饼11 小时前
性能怪兽:GPT-5-Codex三大核心进化,重新定义AI编程
人工智能·chatgpt·aigc·gpt-5·gemini-2.5·grok4·it/互联网
带刺的坐椅13 小时前
Solon v3.4.6, v3.5.4, v3.6.0-M1 发布。正式开始 LTS 计划
java·spring·ai·web·solon·mcp