2025年程序员必学技能:大模型MCP核心技术.pdf
2025年程序员必学技能:MCP
之前写过一篇初识MCP的文章,简单介绍了MCP是什么,但是写的比较简单,今天来个详细
一点的。
最后一公里
MCP就像是大模型世界里的“最后一公里”。说个暴论,MCP应该是每个程序员在2025年必须掌
握的知识点。
大模型功能很强大,我们都是清楚的。但是,它是有短板的。
比如大模型的数学不好,知名测试就是让大模型比较9.8和9.11哪个数大,大概半年之前,
大部分大模型都会告诉你是9.8小。现在基本都正确了,其实还要归功于RAG技术,RAG技术
的原理和MCP实际上有异曲同工之妙,都像是个外挂程序,只不过RAG挂在了LLM端,MCP
挂在了客户端。
再比如,大模型在没有联网功能前,它是没办法告诉你实时天气的。
大模型比较擅长处理文科方面的工作,比如做总结、出报告、写文章等等,这也合理,毕竟人家
LLM的全称是「大语言模型」,当然处理语言比较强。再拿多模态模型来说,比如生图模型,
你让它画一幅画,画出的是梵高风格还是莫奈风格,对于很多人来说都没什么关系,好看就行。
总结下来,大模型更擅长处理艺术类、语言类工作,或者说它擅长搞那些形而上的东西,而不太
擅长处理特别精细化的东西,那些定制化的需求就更不用说了。
再说MCP是什么
MCP,全称ModelContextProtocol,由Anthropic在2024年11月推出,也就是目前公认
写代码最厉害的大模型Claude的公司。MCP是社区共建的开放协议。目的是提供一个通用的开
放标准,用来连接大语言模型和外部数据、行为。
注意喽,它是一个开放标准,就像我们电脑上的USB接口,就像是手机上的Type-C接口,不管
是哪个厂家生产的数据线,只要遵循USB标准或者Type-C标准,就能用来充电或者传输数据。
或者不管是哪个硬盘厂商生产的硬盘,只要甩出一个支持Type-C的连接头出来,就能接到电脑
上用。
再来一个例子,我们平时开发做接口调用都用JSON,JSON的格式就是一个标准,只要你把数
据格式构造成JSON这种格式,不管是谁来接数据,不管用哪个JSON库,设置手动解析,只要
符合JSON的格式,就能够畅通无阻。
好像有点儿唠叨了,总之Anthropic是制定了一个标准,只要大家遵循这个标准来就可以了。
MCP主机(MCPHosts)
像ClaudeDesktop、IDE或希望通过MCP访问数据的AI工具等程序,还有像VsCode中的
Cline插件、Cursor、WindSurf都支持MCP了,都是MCP主机,未来支持MCP调用的终端都
可以成为MCP主机。甚至,你自己也可以开发一个客户端。
MCP客户端(MCPClients)
通过协议客户端与服务器保持1:1连接的程序。通过上图也看出来了,主机和客户端一般都是在
一起的,Client更偏重于编程概念里的解释。
可以对照数据库工具,比如Navicat软件本身可以理解为主机,而一个Navicat可以同时连接
多个数据库,每连接一个数据需要一个连接(设置多个),这些连接就可以理解为MCP里的客户
端。
MCP服务器(MCPServers)
轻量级程序,每个程序通过标准化的模型上下文协议暴露特定功能。这部分就是最后一公里的具
体实现了,需要根据具体的需求去开发,比如想让LLM访问自研系统的数据,就要提供开放接口
并供LLM使用,这部分就是MCP服务器。
MCP服务可以用Python、JavaScript(NodeJS)、Java来开发,目前这是官方开放了SDK
的,以后肯定还有Go、Rust、.NET等语言的SDK出来。
本地数据源(LocalDataSources)
您的计算机文件、数据库和服务,MCP服务器可以安全地访问这些数据源。
远程服务(RemoteServices)
可以通过互联网访问的外部系统(例如,通过API),MCP