扒一扒最近较火的MCP

----->更多内容,请移步“鲁班秘笈”!!<-----

MCP正在成为一种标准,可帮助开发人员构建AI系统,使这些系统能够与其他外部应用程序进行有效通信。Microsoft最近宣布将MCP集成到其Copilot Studio 中,以简化AI应用程序和代理访问工具的方式。此外,OpenAI还宣布在其产品中支持MCP,例如Agents SDK和ChatGPT的桌面应用程序。

封面的图片很直观的阐述了MCP,它是一种开放协议,MCP 是一个开放协议,用于标准化应用程序向大语言模型提供上下文的方式。MCP由Anthropic公司在2024年底推出,旨在解决大语言模型(LLM)与外部数据源和工具之间的集成问题。

进入2025年它在github的星星也是一路暴涨,可以将MCP想象成AI应用的USB-C端口。正如USB-C提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP也提供了一种AI模型连接到不同数据源和工具的标准化方式。

MCP由三个核心组件构成:Host、Client和Server。

举个栗子解释上图,假设你正在使用某个大模型的桌面端(例如LLMDesktop)进行大模型询问:"我桌面上有哪些文档?"

  • Host:LLMDesktop作为Host,负责接收你的提问并与对应的LLM模型交互。

  • Client:当LLM模型决定需要访问你的文件系统时,Host中内置的MCPClient会被激活。这个Client负责与适当的MCPServer建立连接。

  • Server:在这个例子中,文件系统会被MCPServer调用。它负责执行实际的文件扫描操作,访问你的桌面目录,并返回找到的文档列表。

进一步抽象,当用户提出一个问题时:

1) 客户端把你的问题发送给LLM。

2) LLM分析可用的工具,并决定使用哪一个(或多个)。

3)客户端通过MCPServer执行所选的工具。

4) 工具的执行结果被送回给LLM。

5) LLM结合执行结果构造最终的prompt并生成自然语言的回应。

6)回应最终展示给用户

LLM自动挑选工具

MCPServer是由LLM主动选择并调用的!那么有意思的事情来了,模型如何选择工具呢?

可以通过分析官网的代码得知:模型是通过Prompt Engineering来实现的。也就是说MCPServer将所有它能提供的工具进行结构化描述,包括给一些使用示例加入到提示词,以便让LLM理解且来确定该使用哪些工具。

什么是工具,工具可以是接口调用,也可以是任何的服务。熟悉Agent的同学应该不是很陌生。另一方面,由于MCP是Anthropic最早提出,肯定对Claude做了专门的训练(毕竟是自家协议,Claude更能理解工具的prompt以及输出结构化代码)

system_message=("你是一位小助手,你有权访问下面的这些工具:\n\n"f"{工具描述,包括出入参数}\n""请选择最合适的工具来回答用户的问题.""如果没有任何工具需要,就直接回答.\n\n""重要:若你需要使用工具,你必须按照下面的格式响应"#下面对于工具的使用做出了提示词层面的约束"…………:\n""{\n"'"tool":"tool-name",\n''"arguments":{\n''"argument-name":"value"\n'"}\n""}\n\n""Afterreceivingatool'sresponse:\n""1.Transform the rawdata into a natural,conversational response\n""2.Keep responses concise but informative\n""3.Focus on the most relevant information\n""4.Use appropriate context from the user'squestion\n""5.Avoid simply repeating the rawdata\n\n""Please use only the tools that are explicitly defined above.")

工具文档至关重要由此而言特别重要,模型通过工具描述文本来理解和选择工具,因此精心编写工具的名称、文档和参数说明至关重要。

由于MCP的选择是基于prompt的,所以任何模型其实都适配MCP,只要你能提供对应的工具描述。但是当你使用非Claude模型时,MCP使用的效果和体验难以保证(没有做专门的训练)。

下面再次展示了一个例子,DB MCP Server提供了Execute SQL的Tool,然暴露出来,但是客户使用的时候,将资源和需求发送给LLM,让LLM决定执行的SQL与调用的工具,最后完成SQL调用和执行。

Text-to-SQL with MCP Diagram Showing How MCP Primitives (Resources, Prompts, and Tools) Are Implemented in Database Context

MCP Server

MCP-Based Database Integration Diagram Showing How SQL Clients Connect to Different Database Engines Through the MCP Protocol Layer

MCP服务是MCP世界与外部系统的特定功能(API、数据库、本地文件等)之间的桥梁/API。它们本质上是根据MCP规范公开这些外部功能的包装器。服务器可以用各种语言(Python、TypeScript、Java、Rust等)构建,只要它们可以通过支持的传输方式进行通信。

服务器主要通过两种方法与Client端通信:

  • STDIO(标准输入/输出):当Client和Server在同一台计算机上运行时使用。这对于本地集成(例如,访问本地文件或运行本地脚本)来说既简单又有效。

  • 通过SSE的HTTP(服务器发送的事件):客户端通过HTTP连接到服务器。初始设置后,Server可以使用SSE标准通过持久连接将消息(事件)推送到Client。

除了上述的三个要素,其实还存在另外的两个要素:

  • 本地数据源:MCP服务可以安全访问的计算机文件、数据库和服务

  • 远程服务:MCP服务可以连接到的互联网(例如,通过API)提供的外部系统

这种架构设计使得LLM大模型可以在不同场景下灵活调用各种工具和数据源,而开发者只需专注于开发对应的MCPServer,无需关心Host和Client的实现细节。

热度上升

虽然Anthropic在2024年底宣布了MCP,但其势头在2025年初显著加速。这不仅仅是随机的炒作。几个因素汇聚在一起:

1.MCP是专为满足现代AI Agent的需求而设计的。MCP优化和抽象了Agent的运行模式

工具(模型控制):AI决定执行的。

资源(应用程序控制):提供给AI的上下文。

提示(用户控制):特定的用户调用的交互。

2.MCP的开放标准存在非常好的规范,且提供非常详细的规格说明。

3.Anthropic不是从头开始重新发明一切,而是从语言服务器协议(LSP)改编而来,例如JSON-RPC2.0。

4.Anthropic为它构建了强大的初始生态系统,并发布了一个全面的初始

客户:ClaudeDesktop,还包括各种服务(文件系统、git、Slack等)。

5. 开发工具包也是齐整。Python、TypeScript、Java、Kotlin、C#。

6.Cursor和Windsurf等工具集成了MCP。Composio等公司为数百个集成提供了预构建服务。OpenAI也宣布支持MCP。

野心很大,成败在于生态,值得关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值