2025年,程序员必学技能就是MCP

最后一公里

MCP 就像是大模型世界里的“最后一公里”。说个暴论,MCP 应该是每个程序员在2025年必须掌握的知识点。

大模型功能很强大, 我们都是清楚的。但是,它是有短板的。

比如大模型的数学不好,知名测试就是让大模型比较9.8 和 9.11哪个数大,大概半年之前,大部分大模型都会告诉你是9.8小。现在基本都正确了,其实还要归功于 RAG 技术,RAG 技术的原理和 MCP 实际上有异曲同工之妙,都像是个外挂程序,只不过 RAG 挂在了LLM端,MCP挂在了客户端。

再比如,大模型在没有联网功能前,它是没办法告诉你实时天气的。

大模型比较擅长处理文科方面的工作,比如做总结、出报告、写文章等等,这也合理,毕竟人家 LLM 的全称是「大语言模型」,当然处理语言比较强。再拿多模态模型来说,比如生图模型,你让它画一幅画,画出的是梵高风格还是莫奈风格,对于很多人来说都没什么关系,好看就行。

总结下来,大模型更擅长处理艺术类、语言类工作,或者说它擅长搞那些形而上的东西,而不太擅长处理特别精细化的东西,那些定制化的需求就更不用说了。

再说 MCP 是什么

MCP,全称 Model Context Protocol,由 Anthropic 在 2024 年 11 月推出,也就是目前公认写代码最厉害的大模型 Claude 的公司。MCP是社区共建的开放协议。目的是提供一个通用的开放标准,用来连接大语言模型和外部数据、行为。

注意喽,它是一个开放标准,就像我们电脑上的USB接口,就像是手机上的 Type-C 接口,不管是哪个厂家生产的数据线,只要遵循USB标准或者 Type-C标准,就能用来充电或者传输数据。或者不管是哪个硬盘厂商生产的硬盘,只要甩出一个支持 Type-C的连接头出来,就能接到电脑上用。

再来一个例子,我们平时开发做接口调用都用 JSON,JSON 的格式就是一个标准,只要你把数据格式构造成 JSON 这种格式,不管是谁来接数据,不管用哪个JSON库,设置手动解析,只要符合 JSON 的格式,就能够畅通无阻。

好像有点儿唠叨了,总之 Anthropic 是制定了一个标准,只要大家遵循这个标准来就可以了。

img

MCP 主机(MCP Hosts)

像 Claude Desktop、IDE 或希望通过 MCP 访问数据的 AI 工具等程序,还有像 VsCode 中的 Cline 插件、Cursor、WindSurf 都支持MCP了,都是MCP主机,未来支持MCP调用的终端都可以成为 MCP主机。甚至,你自己也可以开发一个客户端。

MCP 客户端(MCP Clients)

通过协议客户端与服务器保持 1:1 连接的程序。通过上图也看出来了,主机和客户端一般都是在一起的,Client 更偏重于编程概念里的解释。

可以对照数据库工具,比如 Navicat 软件本身可以理解为主机,而一个 Navicat 可以同时连接多个数据库,每连接一个数据需要一个连接(设置多个),这些连接就可以理解为MCP里的客户端。

MCP 服务器(MCP Servers)

轻量级程序,每个程序通过标准化的模型上下文协议暴露特定功能。这部分就是最后一公里的具体实现了,需要根据具体的需求去开发,比如想让LLM访问自研系统的数据,就要提供开放接口并供LLM使用,这部分就是 MCP服务器。

MCP 服务可以用 Python、JavaScript(NodeJS)、Java 来开发,目前这是官方开放了 SDK 的,以后肯定还有 Go、Rust、.NET 等语言的SDK 出来。

本地数据源(Local Data Sources)

您的计算机文件、数据库和服务,MCP 服务器可以安全地访问这些数据源。

远程服务(Remote Services)

可以通过互联网访问的外部系统(例如,通过 API),MCP 服务器可以连接到这些服务。例如查询实时天气,你的MCP服务器也要去国家气象局等第三方平台获取,这不就需要 API调用了吗。

调用机制

MCP 的调用机制需要客户端、MCP服务端、LLM 三方配合。

首先MCP 是一个服务,比如一个查询天气的 Spring Boot 应用,按照官方标准实现具体的服务接口,在本地启动。

将服务在客户端进行配置,就像在注册中心注册一样,通常是启动命令,例如 npx 或者java,意思就是客户端打开后,在本地同时启动MCP服务。例如下面这个配置文件内容,配置了两个服务,一个用 Java 实现的,一个是 Node。

{
  "mcpServers":{
    "spring-ai-mcp-weather":{
      "command":"java",
      "args":[
        "-Dspring.ai.mcp.server.stdio=true",
        "-jar",
        "/Users/fengzheng/model-context-protocol/weather/starter-stdio-server/target/mcp-weather-stdio-server-0.0.1-SNAPSHOT.jar"
      ]
    },
    "brave-search":{
      "command":"npx",
      "args":[
        "-y",
        "@modelcontextprotocol/server-brave-search"
      ],
      "env":{
        "BRAVE_API_KEY":"xxxx"
      },
      "autoApprove":[
        "brave_web_search"
      ]
    }
}
}

之后,客户端就能根据MCP标准获取到 MCP 服务都有哪些可以用的工具(接口)了,在收到匹配的需求后就可以调用具体MCP的接口了。

整个原理其实比较简单,下面是一个调用流程图。

img

  1. 用户发送消息:用户通过客户端应用程序发送一条消息。
  2. 客户端传递消息:客户端将用户的消息传递给 LLM。
  3. LLM 请求工具或数据:LLM 可能需要额外的工具或数据来处理请求,因此向客户端发出请求。
  4. 客户端向 MCP 服务器请求:客户端根据 LLM 的需求,通过 MCP 协议向 MCP 服务器发送请求。
  5. MCP 服务器访问数据源:MCP 服务器根据请求访问相应的数据源。
  6. 数据源返回数据:数据源将所需的数据返回给 MCP 服务器。
  7. MCP 服务器返回工具或数据:MCP 服务器将获取到的工具或数据返回给客户端。
  8. 客户端提供工具或数据给 LLM:客户端将工具或数据传递给 LLM。
  9. LLM 返回处理结果:LLM 使用提供的工具或数据生成处理结果,并返回给客户端。
  10. 客户端显示最终结果:客户端将 LLM 的处理结果展示给用户。

为什么MCP 重要

在文章开头说到,大模型虽然厉害,但是有短板。而每一个短板都是一部分人的真实需求,例如有人想要精确的实时天气情况,这就是一个短板。有人说,你想查天气,直接打开一个APP不就行了吗,当然可以,但是既然有了大模型,在一个应用或一个终端中完成更简单,省去拿手机打开APP的步骤了。

再比如,直接在大模型聊天窗口操作本地数据库,已经有很多这种 MCP 服务了。

再比如,想要搞自己的知识库。加入我跟大模型说:把我曾经写的关于 JVM 的文章找出来,并给我汇总成一篇带目录结构的文章合集。 如果没有 MCP 的辅助,现在的任何大模型客户端都是没办法实现的,而有了可以访问本地文件的MCP 帮助,这个需求就有可能实现了。

还有数不胜数的类似的需求,每一个现有APP的功能都可能会成为 MCP 需要的功能。

img

MCP 和 Function Calling、Agent的区别

说到MCP就不得不提到Function Calling 和 Agent,一眼看过去,这几个好像功能差不多,目的也差不多,都是为了弥补大模型的短板。

MCP ,咱前面介绍了一大堆,就不再过多赘述了,总之它是运行在本地(至少目前是),由Cursor 这样的主机(或统称为终端)调用,可以访问本地资源、个性化的API等。

Function Calling

Function Calling 是AI模型与外部函数或服务交互的一种机制。

在这种模式下,模型生成一个函数调用请求,宿主应用解析该请求并执行相应的操作,然后将结果返回给模型。通常有以下特点:

同步执行:调用函数后,程序会等待函数执行完毕并返回结果,才继续执行后续代码。

紧耦合:模型与函数或服务之间的关系较为紧密,需要在代码中明确指定。

特定实现:函数调用的实现方式可能因平台或服务提供商而异,缺乏统一标准。

智能体(Agent) 智能体是具备自主行动能力的系统,能够执行一系列复杂的任务,比如前一段时间很火的 Manus。

它们通常具备以下特征: 自主性:能够根据环境变化和目标自主做出决策。

任务执行:能够执行多步骤、多环节的任务,往往需要调用多个工具或服务。

集成性:通常集成多种功能模块,如MCP和函数调用,以实现复杂的任务处理。

主要区别

MCP作为一种协议,主要解决模型与外部工具和数据源之间的交互问题,提供标准化的接口和通信方式。很灵活,只要遵循标准,几乎能实现任何功能。

Function Calling是模型与特定函数或服务交互的具体实现方式,关注如何在代码层面实现功能调用。需要大模型和大模型自身服务端、特定客户端紧密绑定,没那么灵活。

智能体就复杂多了,它是一个系统,能够自主执行任务,通常需要结合MCP和Function Calling等机制,以实现复杂的功能。

MCP 发展预测

AI 势不可挡,未来生活的各个方面必将充斥着AI的身影,那MCP肯定随着这个趋势继续进化。

猜测可能会出现下面这几种情况,有些正在发生。

超级客户端的出现:

现在我们想要什么功能就要打开具体的APP,随着AI的普及,是否会有超级客户端或者终端呢,就比如豆包或者小爱同学这种。

这些客户端将集成多种工具和服务,提供统一的用户体验。例如,用户可以在一个应用中同时访问本地文件、数据库、浏览器和其他服务,无缝切换,提高工作效率。

现在用小爱同学通常只有两个场景:定时和查天气。如果使用MCP的方式,和更多的服务商打通,是不是就可以在小爱同学实现更多的需求了。

MCP 市场

就像现在的应用商店那样,每个人、每个公司都可以提交自己的 MCP,比如某短视频平台提交一个推荐视频接口,用户就可以在一个支持 MCP 的客户端直接刷视频了(当然同时也要支持加载视频功能)。

现在 Cline 插件有一个 MCP 市场功能,可以查看各个开源的 MCP,想用哪个就可以直接安装。但是还比较初级,有时候还不太好用。

远程运行能力的实现

MCP 支持多种通信方式,包括本地的 STDIO 和网络上的 HTTP/SSE。当需要跨机器通信时,MCP 可以使用 HTTP/SSE 实现工具的远程调用。这意味着,未来的 MCP 系统将能够在本地和远程环境中运行工具,提供灵活的部署选项。

对于程序员来说,再本地跑Node、Python、Java 都不是什么难事儿,但是如果是一个没接触过代码的人,这就太难了。

所以,如果想让更多的人用上 MCP ,一定要解决本地启动服务的问题。

零基础如何学习AI大模型

领取方式在文末

为什么要学习大模型?

学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。

大模型典型应用场景

AI+教育:智能教学助手和自动评分系统使个性化教育成为可能。通过AI分析学生的学习数据,提供量身定制的学习方案,提高学习效果。
AI+医疗:智能诊断系统和个性化医疗方案让医疗服务更加精准高效。AI可以分析医学影像,辅助医生进行早期诊断,同时根据患者数据制定个性化治疗方案。
AI+金融:智能投顾和风险管理系统帮助投资者做出更明智的决策,并实时监控金融市场,识别潜在风险。

这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。

大模型就业发展前景

根据脉脉发布的《2024年度人才迁徙报告》显示,AI相关岗位的需求在2024年就已经十分强劲,TOP20热招岗位中,有5个与AI相关。
在这里插入图片描述字节、阿里等多个头部公司AI人才紧缺,包括算法工程师、人工智能工程师、推荐算法、大模型算法以及自然语言处理等。
在这里插入图片描述
除了上述技术岗外,AI也催生除了一系列高薪非技术类岗位,如AI产品经理、产品主管等,平均月薪也达到了5-6万左右。
AI正在改变各行各业,行动力强的人,早已吃到了第一波红利。

最后

大模型很多技术干货,都可以共享给你们,如果你肯花时间沉下心去学习,它们一定能帮到你!

大模型全套学习资料领取

如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

部分资料展示

一、 AI大模型学习路线图

整个学习分为7个阶段
在这里插入图片描述
在这里插入图片描述

二、AI大模型实战案例

涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、视频和书籍PDF合集

从入门到进阶这里都有,跟着老师学习事半功倍。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、LLM面试题

在这里插入图片描述
在这里插入图片描述

五、AI产品经理面试题

在这里插入图片描述

六、deepseek部署包+技巧大全

在这里插入图片描述

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~
在这里插入图片描述

学习MCP2515可以按照以下步骤进行: 1. 获取相关资料:首先,您需要获取MCP2515的数据手册、应用笔记和参考资料等。这些资料将提供MCP2515的详细功能介绍、寄存器配置说明、通信协议和示例代码等。 2. 理解CAN总线协议:MCP2515是一个CAN控制器,因此您需要先了解CAN总线的基本原理和协议。学习CAN总线的基本概念、数据帧结构、帧ID、位定时和波特率等重要概念。 3. 硬件搭建:为了学习和测试MCP2515,您需要一个支持SPI通信的开发板或单片机,并连接MCP2515到相应的引脚上。确保硬件连接正确,并为MCP2515提供适当的电源和时钟。 4. 学习SPI通信:使用SPI接口与MCP2515进行通信是必要的。学习SPI通信的原理、时序和基本操作。了解如何初始化SPI通信并发送读写命令和数据。 5. 实验示例代码:根据MCP2515的数据手册和应用笔记,尝试编写一些简单的示例代码,例如初始化MCP2515、配置寄存器、发送和接收CAN数据帧等。通过实验示例代码,深入理解MCP2515的功能和使用方法。 6. 应用开发:一旦熟悉MCP2515的基本操作,您可以尝试将其应用于实际项目中。根据您的需求,编写代码实现更复杂的功能,例如过滤器设置、中断处理、多个CAN节点之间的通信等。 7. 社区和论坛:参与相关的社区和论坛,与其他使用MCP2515的开发者交流经验和解决问题。在这些平台上,您可以找到更多的应用案例、代码示例和技术支持。 请记住,学习MCP2515需要时间和实践。通过阅读文档、实验和不断尝试,您将逐渐掌握MCP2515的使用方法和应用技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值