Loading [MathJax]/jax/output/CommonHTML/config.js
部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >别再卷Python了!2025年程序员逆袭的唯一机会,竟是MCP?

别再卷Python了!2025年程序员逆袭的唯一机会,竟是MCP?

作者头像
福大大架构师每日一题
发布于 2025-03-31 11:45:12
发布于 2025-03-31 11:45:12
18400
代码可运行
举报
运行总次数:0
代码可运行

最后一公里

MCP(模型组合编程)在大模型的应用中可以被视为“最后一公里”的解决方案。从一个激进的角度来看,到2025年,每位程序员都应当掌握这一知识。

虽然大模型的功能相当强大,但它们仍然存在一些不足之处。例如,许多大模型在进行简单数学比较时可能犯错,像是判断9.8和9.11哪个更大。尽管经过一段时间的改进,现今的大多数模型已经能够正确回答,但这也显示了它们的局限性。RAG(检索增强生成)技术在这个过程中发挥了重要作用,它的机制与MCP类似,都可以看作是外挂程序,只不过RAG是在大型语言模型(LLM)端,而MCP则是在客户端。

此外,在没有联网的情况下,大模型无法提供实时信息,例如天气预报。这表明,大模型更擅长于处理语言和艺术类的工作,比如写作、总结和生成报告等,这也符合它们的基本特性。相对来说,对多模态模型而言,无论它生成的是梵高风格还是莫奈风格的画作,关键在于结果是否美观。

总体来看,大模型在艺术和语言领域表现出色,但在处理细致的、个性化的需求时则显得力不从心。因此,MCP的重要性在于它可以填补这些空白,为程序员提供更强大的工具去应对多样化的需求。

再说 MCP 是什么

MCP,全称为模型上下文协议(Model Context Protocol),是由Anthropic于2024年11月推出的,Anthropic是一家以其卓越的编程能力而闻名的大模型Claude的开发公司。MCP是一个由社区共同构建的开放协议,旨在提供一个通用的开放标准,以连接大语言模型与外部数据和行为。

值得注意的是,MCP作为一个开放标准,类似于我们电脑上的USB接口或手机的Type-C接口。无论哪个厂家生产的数据线,只要遵循USB或Type-C标准,就可以用于充电或数据传输。同样地,不论哪个硬盘厂商只要提供一个支持Type-C的接口,就能顺利连接到电脑上使用。

再以开发中的接口调用为例,JSON格式就是一个广泛使用的标准。只要将数据构造成符合JSON格式,不论数据接收方使用的是哪种JSON库,正确解析这些数据就变得毫无障碍。

简而言之,Anthropic制定了这个标准,期望大家都能够遵循,从而实现无缝连接和高效交互。

图片
图片

MCP 主机(MCP Hosts)

MCP主机是指那些能够支持MCP协议的程序,例如Claude Desktop、IDE及一些希望通过MCP访问数据的AI工具。而像VSCode中的Cline插件、Cursor和WindSurf等也被视作MCP主机。未来,任何能够支持MCP调用的终端都有可能成为MCP主机,甚至你自己也可以开发相应的客户端。

MCP 客户端(MCP Clients)

MCP客户端是与MCP服务器保持一对一连接的程序。从整体架构来看,主机与客户端通常是结合在一起的,客户端更偏向于编程的描述。可以将它们与数据库工具进行类比,比如Navicat软件本身可以理解为一个主机,而Navicat可以同时连接多个数据库,每个连接对应一个客户端,这些连接在MCP框架中则相当于MCP客户端。

MCP 服务器(MCP Servers)

MCP服务器是轻量级程序,通过标准化的MCP协议来暴露特定功能。MCP服务器是实现“最后一公里”的关键部分,需要根据具体需求进行开发。例如,如果想要让LLM访问自研系统的数据,就需要提供开放的接口供LLM使用。MCP服务可以用多种编程语言来开发,如Python、JavaScript(NodeJS)和Java,目前官方已提供SDK,未来可能还会推出Go、Rust、.NET等其他语言的SDK。

本地数据源(Local Data Sources)

本地数据源包括计算机文件、数据库和服务,MCP服务器能够安全地访问这些数据源。

远程服务(Remote Services)

远程服务是指可以通过互联网访问的外部系统,例如通过API进行交互的系统。比如查询实时天气时,MCP服务器需要连接国家气象局等第三方平台,这就需要通过API进行调用。

调用机制

MCP的调用机制需要客户端、MCP服务器和LLM三者的合作。首先,MCP是一个服务,例如一个查询天气的Spring Boot应用,按照官方标准实现服务接口并在本地启动。接下来,需要在客户端进行配置,类似于在注册中心注册服务,通常通过启动命令(如npx或java)来实现。这意味着客户端启动时会同时启动MCP服务。例如,以下配置文件中配置了两个服务,一个是用Java实现的,另一个是用Node实现的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "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接口。

整个流程的原理相对简单,以下是一个关于调用流程的示意图。

图片
图片
  1. 用户发送消息:用户通过客户端应用程序发送一条请求消息。
  2. 消息传递:客户端将用户的消息转发给大型语言模型(LLM)。
  3. LLM 请求额外资源:LLM在处理请求时,可能需要更多的工具或数据,因此向客户端提出相应的请求。
  4. 客户端向MCP服务器发起请求:客户端根据LLM的需求,使用MCP协议向MCP服务器发送请求。
  5. MCP服务器访问数据源:MCP服务器根据收到的请求,访问所需的数据源。
  6. 数据源返回所需数据:数据源将所需的信息反馈给MCP服务器。
  7. MCP服务器将数据反馈给客户端:MCP服务器将获取的工具或数据传输回客户端。
  8. 客户端将数据传递给LLM:客户端将从MCP服务器获得的工具或数据传递给LLM。
  9. LLM 生成处理结果:LLM利用提供的工具或数据生成相应的处理结果,并将结果返回给客户端。
  10. 客户端展示最终结果:客户端将LLM生成的处理结果展示给用户。

为什么MCP 重要

在文章开头提到,尽管大型模型(大模型)在很多方面表现出色,但它们依然存在一些短板。这些短板往往反映了不同用户的真实需求。举个例子,某些用户希望获取精确的实时天气信息,这一需求就难以通过大模型直接满足。虽然可以通过搜索天气APP来获取这些信息,但如果在一个统一的应用或终端内实现这一功能,就能省去打开其他应用的步骤,使得使用更加高效。

另外,许多现有的MCP(模型连接器平台)服务已经允许用户直接在大模型的聊天窗口中操作本地数据库。这种集成化的体验为数据操作带来了便利。

再例如,用户可能希望整理自己曾写的关于JVM的文章。通过对大模型的指令,希望将这些文章整合成一份带有目录结构的汇总。如果没有MCP的支持,这样的需求在当前的大模型客户端中是无法实现的。然而,有了可以访问本地文件的MCP,就能够满足这样的需求。

实际上,类似的需求还有很多,任何现有APP的功能都有可能成为MCP服务所需的能力。通过整合这些功能,MCP能够大幅提升用户体验,使得大模型的应用场景更加广泛和灵活。

图片
图片

MCP 和 Function Calling、Agent的区别

谈到MCP(模型连接器平台),我们不可避免地会提到Function Calling(函数调用)和Agent(智能体)。乍一看,这几者似乎功能相似,都是为了解决大模型的一些短板。

MCP是一种在本地运行的系统(至少目前是这样的),像Cursor这样的主机或终端可以调用它。它能够访问本地资源和个性化的API,帮助用户实现特定需求。

Function Calling则是AI模型与外部函数或服务之间互动的一种机制。在这个模式中,模型会生成一个调用请求,宿主应用会解析这个请求并执行相应的操作,最后将结果返回给模型。其特点包括:

  1. 1. 同步执行:模型在发起函数调用后,会等待该函数执行完成并返回结果,才能继续执行后面的程序。
  2. 2. 紧耦合:模型与函数或服务的关系较为密切,需要在代码中明确指定。
  3. 3. 特定实现:不同平台或服务提供商的函数调用实现方式可能各有不同,缺乏统一的标准。

而智能体(Agent)则是一种具备自主决策能力的系统,能够执行一系列复杂的任务,例如近期受到关注的Manus。智能体通常具有以下特征:

  1. 1. 自主性:根据环境变化和目标自主做出决策。
  2. 2. 任务执行:能够处理多步骤和多环节的任务,往往需要同时调用多个工具或服务。
  3. 3. 集成性:通常结合多种功能模块,如MCP和函数调用,以实现更复杂的任务完成。

从主要区别来看:

  • MCP作为一种协议,主要处理模型与外部工具和数据源的交互,提供标准化的接口和通信方式,非常灵活,可以根据标准实现几乎任何功能。
  • Function Calling则是关注于模型与特定函数或服务之间的具体交互实现,强调在代码层面的功能调用,与大模型及其服务端、特定客户端紧密结合,灵活性较低。
  • 智能体则是一个更复杂的系统,能够自主执行任务,通常整合MCP和Function Calling等机制来实现复杂功能。

综上所述,这三者各自有不同的定位和应用场景,虽然都是为了解决大模型的短板,但在实现方式和功能灵活性上有明显差异。

MCP 发展预测

随着AI技术的不断深入,未来生活的方方面面都将更加依赖于AI。因此,MCP(模型连接器平台)必然会跟随这一趋势继续演进。以下是对MCP未来发展的一些预测,部分已经开始显现。

超级客户端的兴起

目前,大部分功能需要通过特定的应用程序来实现。但随着AI的普及,未来可能会出现集成多种工具和服务的超级客户端,例如豆包或小爱同学。这些客户端将为用户提供统一的操作体验,用户可以在一个应用中无缝访问本地文件、数据库、浏览器及其他服务,从而显著提升工作效率。

目前,小爱同学的功能主要集中在定时和天气查询。但如果能够通过MCP与更多服务商连接,这样的智能助手将能够处理更多的需求。

MCP市场的形成

未来的MCP市场可能类似于现在的应用商店,个人和企业都能够提交自己的MCP服务。例如,一个短视频平台可以提供推荐视频的API,用户则可以在支持MCP的客户端中直接观看视频。现阶段,Cline插件已经具备了一些MCP市场的功能,用户可以浏览和安装开源MCP服务,但其使用体验仍然相对初级,有待进一步优化。

远程运行能力的发展

MCP不仅支持本地STDIO的通信,还能通过HTTP/SSE进行网络交互。这意味着,未来的MCP系统将具备在本地和远程环境中灵活运行工具的能力。对于程序员而言,在本地运行Node、Python或Java代码并不困难,但对于缺乏编程背景的用户来说,这可能是一项挑战。因此,要让更多人能普遍使用MCP,必须解决本地启动服务这一问题。

综上所述,随着科技的发展和用户需求的增加,MCP将朝着更加智能、便捷的方向演进,成为未来数字生活中不可或缺的组成部分。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 福大大架构师每日一题 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一文详解模型上下文协议(MCP):打通大模型与业务场景的关键
暂且抛开MCP,这23年的时候开始搭建AI Agent智能体,对第三方插件API进行交互的时候,我就开始设想能不能自己做一个通用代码协议框架,以后AI团队统一用这个协议,方便大家code review,更好协作。AI要触及到业务就必然逃不过与业务端接口或是数据进行联通,但是之前都没有标准的交互协议,需要理解各个三方接口和协议是比较费时的事情,但如果有类似像Java工程开发标准,那么我们就很方便开发第三方接口了,不会存在那么多不同开发形态的代码,方便维护。MCP协议出现之后发现大家都在慢慢融入到开源协议框架中,故而再对一些不了解MCP的朋友详细解述这一框架协议,以后必然是以开源协议为主导的代码生态。
fanstuck
2025/03/27
1.9K2
一文详解模型上下文协议(MCP):打通大模型与业务场景的关键
从0到1玩转MCP:AI的「万能插头」,代码手把手教你!
在人工智能飞速发展的今天,LLM 的能力令人叹为观止,但其局限性也日益凸显 —— 它们往往被困于训练数据的「孤岛」,无法直接触及实时信息或外部工具。
机器之心
2025/04/07
3190
从0到1玩转MCP:AI的「万能插头」,代码手把手教你!
一文读懂:模型上下文协议(MCP)
Hello folks,我是 Luga,今天我们来聊一下人工智能应用场景 - 构建高效、灵活的计算架构的模型上下文协议(MCP)。
Luga Lee
2025/03/17
12.5K0
一文读懂:模型上下文协议(MCP)
MCP协议入门指南(值得收藏)
MCP(Model Context Protocol,模型上下文协议)是由Anthropic公司于2024年11月推出的开放通信标准,其核心目标是解决大语言模型(LLM)与外部工具的连接难题。就像USB接口统一了电子设备的充电标准,MCP协议为AI模型提供了"即插即用"的能力,使其不仅能回答问题,还能直接操作数据库、调用API、控制智能设备等。
小明互联网技术分享社区
2025/04/07
9851
MCP协议入门指南(值得收藏)
大模型应用系列:两万字解读MCP
【引】AI Agent的实际效能高度依赖于其可集成的工具生态。当Agent无法接入关键数据源或功能接口时,其应用价值将大幅受限。这一核心挑战直接决定了Agent能否在真实场景中发挥作用。
半吊子全栈工匠
2025/04/26
3.4K0
大模型应用系列:两万字解读MCP
MCP(Model Context Protocol)好比大模型外挂!
最近Anthropic主导发布了MCP(Model Context Protocol,模型上下文协议)后,着实真真火了一把。熟悉AI大模型的人对Anthropic应该不会陌生,Claude 3.5 Sonnet模型就是他们发布的,包括现在的最强编程AI模型 3.7 Sonnet。今天我们来刨析下什么是MCP,AI大模型下,需要MCP吗?
有一只柴犬
2025/03/23
6742
MCP(Model Context Protocol)好比大模型外挂!
什么是MCP协议?MCP的技术架构与核心原理是什么?MCP封装了哪些协议?
在现代 AI 的发展中,模型与外部数据源和工具的交互变得越来越复杂。为了解决这个问题,Model Context Protocol (MCP) 被提出,它是一种开放标准,旨在为 AI 模型与外部资源之间提供统一的连接方式。由 Anthropic 于 2024 年推出,MCP 希望能够像 USB-C 接口一样成为 AI 系统与各种数据源和工具之间的“通用接口”。这意味着,不同的 AI 应用可以轻松与多种数据源、工具进行“即插即用”的连接,无需再为每种不同的数据源开发独立的集成方法。
猫头虎
2025/03/23
1.8K0
什么是MCP协议?MCP的技术架构与核心原理是什么?MCP封装了哪些协议?
如何用Spring AI构建MCP Client-Server架构
现代 Web 应用正加速与大语言模型(LLMs)深度融合,构建超越传统问答场景的智能解决方案。为突破模型知识边界,增强上下文理解能力,开发者普遍采用多源数据集成策略,将 LLM 与搜索引擎、数据库、文件系统等外部资源互联。然而,异构数据源的协议差异与格式壁垒,往往导致集成复杂度激增,成为制约 AI 应用规模化落地的关键瓶颈。因此,Anthropic公司推出了模型上下文协议(Model Context Protocol, MCP),通过标准化接口为 AI 应用与外部数据源建立统一交互通道。这一协议体系不仅实现了数据获取与操作的规范化,更构建起可扩展的智能体开发框架,使开发者能够基于原生 LLM 能力快速构建复杂工作流。
程序猿DD
2025/03/27
1.6K0
如何用Spring AI构建MCP Client-Server架构
一口气讲清楚:LLM、MCP、EMB
在很多介绍AI的文章中,会频繁出现一些名词,比如LLM、MCP、EMB。这些专业术语是什么意思,有什么作用,背后的技术原理又是什么,对普通人来说有点难以理解。
老_张
2025/04/16
3140
一口气讲清楚:LLM、MCP、EMB
1次搭建完胜1亿次编码,MCP硅谷疯传!Anthropic协议解锁智能体「万能手」
从Manus及其开源复现,到Opera的浏览器操作AI智能体、AI工作伴侣Archer,再到多种个人项目,将Agent推向热议风口。
新智元
2025/03/11
2130
1次搭建完胜1亿次编码,MCP硅谷疯传!Anthropic协议解锁智能体「万能手」
什么是MCP协议?AI Agent时代如何选择MCP协议?
在人工智能(AI)迅猛发展的今天,如何让大型语言模型(LLM)充分利用外部数据和工具已成为关键问题。MCP 协议(Model Context Protocol,模型上下文协议)作为一种开放标准,正以其统一、灵活且安全的设计,为解决数据孤岛和碎片化集成问题提供了一条全新的路径。本文将详细解析 MCP 协议的原理、架构、优势及在 AI Agent 时代下的应用前景,同时探讨如何从开放性、生态支持、安全性、易用性和性能等多个维度选择适合自身场景的 MCP 实现。
猫头虎
2025/03/08
2.3K0
什么是MCP协议?AI Agent时代如何选择MCP协议?
MCP:AI时代的“万能插座”,开发者争相入局
模型上下文协议(Model Context Protocol,MCP) 是AI领域的一场“接口革命”。简单来说,它就像AI世界的 “USB-C标准”,能让不同大模型(如ChatGPT、Claude)无缝连接企业数据库、本地文件、开发工具甚至物联网设备。
AI浩
2025/04/04
2960
MCP:AI时代的“万能插座”,开发者争相入局
必看!SpringAI轻松构建MCP Client-Server架构
MCP 这个概念相信大家已经听了无数次了,但不同人会有不同的解释,你可能也是听得云里雾里的。
磊哥
2025/03/30
5491
必看!SpringAI轻松构建MCP Client-Server架构
MCP详解及手把手实战
Model Context Protocol(MCP)是一个开放协议,旨在标准化大型语言模型(LLM)与外部数据源和工具之间的集成方式。它为 AI 应用程序提供了一种统一的接口,使得不同的系统和服务能够高效、安全地协同工作。
知识浅谈
2025/04/20
9310
MCP详解及手把手实战
Anthropic的MCP将LLM连接到它们需要的应用程序
MCP 看起来像是 API 之上的一个额外层。但 Anthropic 的工程师们有一个更大的愿景,即让 MCP 成为 AI 智能体触发外部动作的通用方法。
云云众生s
2025/03/10
2810
Anthropic的MCP将LLM连接到它们需要的应用程序
一文详解模型上下文协议MCP
Anthropic 公司在 2024 年 11 月发布了模型上下文协议 (Model Context Protocol, MCP)。开发者社区最初对此反应积极,但很少有人意识到它的全部潜力。 快进到 2025 年 3 月,MCP 突然成为了人工智能领域最热门的话题。
致Great
2025/04/19
4030
一文详解模型上下文协议MCP
MCP - Model Context Protocol大模型时代的互联互通新标准
在人工智能技术飞速发展的当下,大模型的应用场景不断拓展,但其与外部数据源和工具的集成却面临着诸多挑战。为解决这一难题,Anthropic 推出了 Model Context Protocol(MCP),这一开放协议为大模型应用与外部数据源、工具之间的通信提供了标准化的解决方案,其重要性和影响力正逐渐显现。以下将从产品介绍、主要功能、官方示例、使用方法,以及横向对比同类产品和应用场景等方面进行详细阐述。
疯狂的KK
2025/04/25
1500
MCP - Model Context Protocol大模型时代的互联互通新标准
把MCP和AI代理部署在无服务器架构上,大幅提升业务性能
MCP协议通过标准化接口实现AI模型与外部工具的无缝连接,而Serverless架构提供弹性计算资源,两者结合可解决AI代理的动态资源需求。例如,企业内大量AI智能体(如千人规模)的实时调度,可通过Serverless函数动态部署MCP服务器,按需扩展计算能力。这种模式尤其适用于低频但需快速响应的场景(如临时视频处理、数据查询),避免传统软件采购的高昂成本。同时在 Serverless 环境中,每个函数执行都有独立的执行环境,这种隔离性确保了不同 AI 代理之间的安全性。通过精细的权限控制和资源访问管理,可以有效防止数据泄露和未经授权的访问,增强系统的安全性。
腾讯云原生
2025/04/09
3600
把MCP和AI代理部署在无服务器架构上,大幅提升业务性能
什么是MCP?本地如何开发MCP Server
MCP(Model Context Protocol)全称模型上下文协议,是由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。
叫我阿柒啊
2025/04/06
3.4K2
什么是MCP?本地如何开发MCP Server
MCP协议详解:一文读懂跨时代的模型上下文协议
本文主要介绍了 Anthropic 推出的开源协议 MCP(Model Context Protocol,模型上下文协议),能让你快速上手该协议,实现大型语言模型与外部数据源和工具的无缝集成。如果想要了解 MCP 协议可以收藏阅读!
腾讯云开发者
2025/03/27
4.4K0
MCP协议详解:一文读懂跨时代的模型上下文协议
推荐阅读
相关推荐
一文详解模型上下文协议(MCP):打通大模型与业务场景的关键
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验