背景

那些 LLM 不知道的事

尝试直接询问LLM“今天天气如何”时,会发现LLM无法回答——它既不知道“今天”是哪天,也无法获取地理位置信息。这揭示了LLM的局限:缺乏与外部工具和实时数据的交互能力

为解决这一问题,MCP(Model Context Protocol)应运而生。通过标准化协议,MCP使LLM能够自主调用工具(如天气API、地理位置服务),并解耦Agent与Tools的开发,显著降低维护和迭代成本。

当 LLM 学会用工具

- “让 LLM 自己学会用工具,来解答用户问题。”

上面这句话中,出现了三个角色,“用户”、“工具”、“LLM”,以及隐藏的第四个角色——将这一切粘合起来的“主控程序”。

关于四者的交互流程,下图供以参考:

MCP 干嘛来了

- 没有 MCP,我要怎么做

按照 Agent+FunctionCall 的模式,我设计了工具 schema,走通了 LLM 的服务调用,终于让 LLM 学会了用工具。但随着工具越来越多、工具调用与 LLM 耦合地越来越深,不管是维护还是迭代,都会消耗大量的精力。

那么,问题来了:

  • 能不能实现 Agent 与 Tools 的解耦?
  • 能不能能统一不同 Tools 的调用协议,让模型快速接入?
  • 能不能实现 Tools 的共享?

- 有了 MCP,我会怎么做

现在有了 MCP,一切都好起来了:

  • Agent 和 Tools,我可以分开维护了。
  • 再多的 Tools,我用"list_tools"+"call_tool"就解决了。
  • 我可以分享自己的 Tools,也可以快速接入别人的 Tools了。

近距离看看 MCP

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 架构中的角色主要有以下几种:

  • MCP Hosts: 相当于上文提到的“主控程序”,比如 Claude Desktop、IDE 等。
  • MCP Clients: 服务调用的客户端,通常会被集成到 Host 中执行 list_tools、call_tool 等操作。
  • MCP Servers: 服务调用的服务端,通常在此定义 tools、prompts、resources 等。
  • Local Data Sources: 本地数据。
  • Remote Services: 远端服务。

ps:写了个 mcp demo,就想让 LLM 告诉我,今天天气到底如何?

mcp = FastMCP("Demo")@mcp.tool(name="get_current_time",description="获取当前时间",
)
def get_current_time():"""获取当前时间并进行格式化展示:return:"""now = datetime.datetime.now()formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")return formatted_time@mcp.tool(name="get_location",description="获取当前地点",
)
def get_location():"""获取当前地点:return:"""try:response = requests.get("http://ip-api.com/json/")data = response.json()if data["status"] == "success":location_info = {"country": data.get("country", ""),"region": data.get("regionName", ""),"city": data.get("city", "")}return json.dumps(location_info, ensure_ascii=False)else:return json.dumps({"error": "无法获取地理位置"}, ensure_ascii=False)except Exception as e:return json.dumps({"error": str(e)}, ensure_ascii=False)

AI 搜索怎么玩 MCP

场景一:文件解析与总结

描述:通过阿里云AI搜索开放平台集成MCP,快速调用文件解析工具,降低开发门槛。

1. 前置准备:

1.1 注册阿里云 AI 搜索开放平台,获取 API 密钥。

1.2 VSCODE 配置 Cline 工具,集成阿里云 MCP 服务器。

    1.3. Cline 配置 LLM 接口

    API Provider 选择 OpenAI Compatible

    Base URL设为 https://dashscope.aliyuncs.com/compatible-mode/v1

      1.4 安装 UV,管理 Python 环境

      curl -LsSf https://astral.sh/uv/install.sh | sh

      或者

      pip install uv

      2. Cline 配置 MCP Server

      2.1. 下载 alibabacloud-opensearch-mcp-server

      2.2. 配置mcp server

      {"mcpServers": {"aisearch-mcp-server": {"command": "uv","args": ["--directory","/path/to/aisearch-mcp-server","run","aisearch-mcp-server"],"env": {"AISEARCH_API_KEY": "<AISEARCH_API_KEY>","AISEARCH_ENDPOINT": "<AISEARCH_ENDPOINT>"}}}
      }

      3. 任务演示

      4. 业务价值

      • 降低接入成本:通过阿里云标准化接口快速集成搜索服务。
      • 灵活扩展:支持以AI搜索为核心丰富的模型服务,可满足多样化的业务需求,加速产品迭代

      立即体验:阿里云AI搜索开放平台

      场景二:向量检索及排序

      描述:结合OpenSearch向量检索版,支持动态扩展与精准查询,优化成本。

      1. 前置准备

      (新增)开通 Opensearch向量检索版,构建一张向量表。

      (其他)同场景一

      2. Cline 配置 MCP Server

      2.2. 下载 alibabacloud-opensearch-mcp-server

      2.2. 配置 mcp server

      {"mcpServers": {"aisearch-mcp-server": {"command": "uv","args": ["--directory","/path/to/aisearch-mcp-server","run","aisearch-mcp-server"],"env": {"AISEARCH_API_KEY": "<AISEARCH_API_KEY>","AISEARCH_ENDPOINT": "<AISEARCH_ENDPOINT>"}},"opensearch-vector-mcp-server": {"command": "uv","args": ["--directory","/path/to/opensearch-vector-mcp-server","run","opensearch-vector-mcp-server"],"env": {"OPENSEARCH_VECTOR_ENDPOINT": "http://ha-cn-***.public.ha.aliyuncs.com","OPENSEARCH_VECTOR_USERNAME": "<username>","OPENSEARCH_VECTOR_PASSWORD": "<password>","OPENSEARCH_VECTOR_INSTANCE_ID": "ha-cn-***","OPENSEARCH_VECTOR_INDEX_NAME": "<Optional: index in vector table>","AISEARCH_API_KEY": "<Optional: AISEARCH_API_KEY for embedding>","AISEARCH_ENDPOINT": "<Optional: AISEARCH_ENDPOINT for embedding>"}}}
      }

      3. 任务演示

      4. 业务价值

      • 精准检索:结合阿里云向量数据库,支持动态扩展和无缝集成。
      • 成本优化:按需付费模式,降低向量检索的计算成本。

      立即体验:阿里云OpenSearch向量检索

      场景三:Elasticsearch 智能检索

      描述:集成阿里云ES服务,实现高效实时数据分析与容灾保障。

      1. 前置准备

      (新增)开通 Elasticsearch,创建一份索引并写入测试数据

      (其他)同场景一

      2. Cline 配置 MCP Server

      2.2. 参考 elasticsearch-mcp-server

      2.2. 配置mcp server

      {"mcpServers": {"elasticsearch-mcp-server": {"command": "npx","args": ["-y","@elastic/mcp-server-elasticsearch"],"env": {"ES_URL": "http://es-cn-***.public.elasticsearch.aliyuncs.com:9200","ES_USERNAME": "<USERNAME>","ES_PASSWORD": "<PASSWORD>"}}}
      }

      3. 任务演示

      4. 业务价值

      • 实时分析:支持全文搜索、复杂查询及实时数据分析。
      • 高可靠性:阿里云 ElasticSearch 提供多副本容灾,保障数据安全。

      立即体验:阿里云Elasticsearch

      为什么选择阿里云 MCP 解决方案?

      选择阿里云 MCP 解决方案的核心原因在于其通过标准化协议与全生命周期服务,显著降低工具链集成复杂度并加速AI应用落地。阿里云 MCP 以协议驱动替代传统硬编码模式,实现跨平台工具调用:

      • AI搜索开放平台:提供丰富的 AI 搜索组件化服务服务,调用多模态数据解析、大语言模型、效果测评等数十个服务,实现智能搜索、检索增强生成(RAG)、多模态搜索等场景的搭建,例如:智能客服、对话式搜索、图谱增强、个性化推荐等。
      • OpenSearch:内置了各行业的查询语义理解、机器学习排序算法等能力,并充分开放了文本向量检索引擎能力,助力开发者快速搭建智能搜索服务。通过 AI 搜索开放平台,用户可以灵活调用多模态数据解析、文档切分、文本向量、大模型文本生成等组件化服务,满足多种搜索场景需求,例如:电商、内容资讯、游戏、金融等多种行业场景。
      • 阿里云 Elasticsearch:可以快速地、近乎于准实时地存储、查询和分析超大数据集,广泛应用于实时日志处理、信息检索、数据的多维查询和统计分析等场景,如:智能客服、企业内部知识库、电商导购、数据服务等。

      通过 MCP 协议,可快速调用阿里云 OpenSearch 、ElasticSearch 等工具,帮助企业快速集成工具链、降低开发复杂度、提升业务效率。

      更多资讯

      • 探索更多案例:点击查看阿里云 AI Searach 指南
      • 免费试用
        • AI搜索开放平台(免费开通)
        • Elasticsearch (免费试用)
        • OpenSearch(免费试用)

      本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
      如若转载,请注明出处:http://www.pswp.cn/diannao/89884.shtml
      繁体地址,请注明出处:http://hk.pswp.cn/diannao/89884.shtml
      英文地址,请注明出处:http://en.pswp.cn/diannao/89884.shtml

      如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

      相关文章

      JVM 简介与作用

      &#x1f680; JVM 简介与作用 &#x1f4da; 深入理解 Java 虚拟机的核心概念与重要作用 &#x1f4d6; 目录 &#x1f914; 什么是 Java 虚拟机&#xff08;JVM&#xff09;&#x1f310; JVM 在 Java 生态中的核心地位&#x1f500; JVM 跨平台原理剖析&#x1f4dd; 总结 …

      ✨ OpenAudio S1:影视级文本转语音与语音克隆Mac整合包

      ✨ OpenAudio S1&#xff1a;影视级文本转语音与语音克隆Mac整合包 &#x1f680; OpenAudio S1 简介 OpenAudio S1 是由 Fish Audio 开发的 Fish Speech 系列的最新一代人工智能语音生成模型。该模型旨在大幅提升 AI 语音生成的技术水平&#xff0c;为用户提供更加自然、富有表…

      spring加载外部properties文件属性时,读取到userName变量值和properties文件的值不一致

      问题 使用spring DI注入外部properties文件属性时&#xff0c;读取到userName变量值和properties文件的值不一致。 bean属性注入&#xff1a; <!--加载配置文件--> <context:property-placeholder location"classpath:*.properties"/><bean id"…

      黑马点评系列问题之基础篇p7 06初识redis无法在虚拟机查到图形化界面存进去的键

      问题描述 在RESP中输入了一些键(name,age等这些) 但是在图形化界面里面输入的&#xff0c;在非图形化界面就找不到&#xff0c;在非图形化界面里输入的&#xff0c;在图形化界面里就可以查到。 原因分析及解决 经过多次实验&#xff0c;发现是因为在添加键名的时候&#xff0…

      在VMware虚拟机中安装Windows 98时,Explorer提示“该程序执行了非法操作,即将关闭”的解决办法

      在使用iso文件&#xff08;MD5: 0E496B5DCC519F550AAF0BCFBB4A11EA&#xff09;安装Windows98时&#xff0c;遇到此提示。 虽然原因未知&#xff0c;也无需深入探究&#xff0c;但是根据网友在 https://www.bilibili.com/opus/435866522585702782 中给出的相似经验&#xff…

      在浏览器中使用SQLite(官方sqlite3.wasm)

      有人可能会问&#xff1a;既然浏览器里又内置得IndexedDB&#xff0c;而且在IndexedDB里存数据&#xff0c;关了浏览器数据也不会丢&#xff0c;为什么还要在浏览器里用SQLite? 实际上&#xff0c;当 IndexedDB 内的数据量增多&#xff0c;数据和数据之间的关系变得复杂&…

      数据结构(Java)--位运算

      前言 本文为本小白学习数据结构的笔记&#xff0c;将以算法题为导向&#xff0c;向大家更清晰的介绍数据结构相关知识&#xff08;算法题都出自B站马士兵教育——左老师的课程&#xff0c;讲的很好&#xff0c;对于想入门刷题的人很有帮助&#xff09; 为什么要使用为位运算 位…

      秋招Day14 - Redis - 应用

      Redis如何实现异步消息队列&#xff1f; List配合LPUSH和RPOP。 另外就是用 Redis 的 Pub/Sub 来实现简单的消息广播和订阅。 但是这两种方式都是不可靠的&#xff0c;因为没有 ACK 机制所以不能保证订阅者一定能收到消息&#xff0c;也不支持消息持久化。 Redis如何实现延时…

      因果语言模型、自回归语言模型、仅解码器语言模型都是同一类模型

      因果语言模型、自回归语言模型、仅解码器语言模型都是同一类模型 flyfish 因果语言模型&#xff08;causal Language Models&#xff09; 自回归语言模型&#xff08;autoregressive language models&#xff09; 仅解码器语言模型&#xff08;decoder-only language models&am…

      jvm架构原理剖析篇

      简单题&#xff08;5道&#xff09; 考查内容&#xff1a;JVM运行时数据区域 题干&#xff1a;Java虚拟机栈的主要作用是&#xff1f; A. 存储对象实例 B. 存储方法调用和局部变量 C. 存储静态字段 D. 存储字节码指令 正确答案&#xff1a;B 解析&#xff1a;虚拟机栈用于存储方…

      智链万物:人工智能驱动的产业智能化革命

      当生成式AI在艺术与创意领域掀起风暴&#xff0c;大型语言模型重塑信息交互方式时&#xff0c;一场更为基础、影响更为深远的变革&#xff0c;正在全球实体经济的根基处悄然发生并加速推进——这就是产业智能化。它并非简单的“机器换人”&#xff0c;而是人工智能&#xff08;…

      python中上下文管理器 与 try finally有什么区别

      目录 主要区别代码对比何时使用哪种方式 主要区别 语法简洁性 上下文管理器使用 with 语句&#xff0c;语法更简洁优雅try-finally 需要显式编写异常处理代码&#xff0c;更冗长 代码复用性 上下文管理器可以封装为类或函数&#xff0c;便于在多处复用try-finally 通常需要在每…

      人体属性识别+跌倒检测:儿童行为监测与安全升级

      智慧幼儿园的AI智能检测盒应用实践 背景&#xff1a;传统园区管理的三大痛点 传统幼儿园管理长期面临三大核心挑战&#xff1a;一是安全监控依赖人工巡查&#xff0c;存在视觉盲区与响应延迟&#xff0c;如某连锁幼儿园曾因人工巡查疏漏&#xff0c;导致3起儿童跌倒事故未能及…

      【ESP32-IDF笔记】09-UART配置和使用

      环境配置 Visual Studio Code &#xff1a;版本1.98.2 ESP32&#xff1a;ESP32-S3 ESP-IDF&#xff1a;V5.4 支持型号&#xff1a;ESP32、ESP32-C2、ESP32-C3、ESP32-C5、ESP32-C6、ESP32-C61、ESP32-H2、ESP32-P4、 ESP32-S2、ESP32-S3 简介 通用异步接收器/发送器 (UART) …

      在 .NET Core 和 React 中使用 WebSockets 和 SignalR 进行实时数据传输

      对于需要即时更新和通知的应用程序来说&#xff0c;实时数据传输至关重要。在 .NET Core 中&#xff0c;WebSocket 和 SignalR 提供了强大的工具来实现客户端和服务器之间的实时通信。在本指南中&#xff0c;我们将探讨如何在 .NET Core 应用程序中使用 WebSocket 和 SignalR 实…

      第八十六篇 大数据排序算法:从厨房整理到分布式排序的智慧

      目录一、基础排序算法&#xff1a;生活场景中的计算智慧1.1 冒泡排序&#xff1a;图书馆的书籍整理1.2 插入排序&#xff1a;厨房调料的整理艺术二、高效排序算法&#xff1a;大数据处理的利器2.1 快速排序&#xff1a;音乐APP的智能歌单2.2 归并排序&#xff1a;学校成绩单的合…

      开源 | V3.1.1慧知开源重卡运营充电桩平台 - 重卡运营充电桩平台管理解决方案;企业级完整代码 多租户、模拟器、多运营商、多小程序;

      【开源免费版】推荐一套企业级开源充电桩平台&#xff1a;完整代码包含多租户、硬件模拟器、多运营商、多小程序&#xff0c;汽车 电动自行车、云快充协议&#xff1b;——(慧哥)慧知开源充电桩平台&#xff1b;https://liwenhui.blog.csdn.net/article/details/148242725?spm…

      ONLYOFFICE 协作空间 企业版使用秘籍-8.使用虚拟数据房间,处理机密文档更安全

      在当今快节奏的社会中&#xff0c;信息已成为极其关键的资源&#xff0c;因此&#xff0c;保护敏感数据至关重要。ONLYOFFICE 协作空间中的虚拟数据房间&#xff08;VDR&#xff09;提供了一个安全便捷的工作空间&#xff0c;确保文档受到严密保护的同时&#xff0c;也能实现轻…

      系统架构设计师论文分享-论软件架构复用

      我的软考历程 摘要 2023年2月&#xff0c;我所在的公司通过了研发纱线MES系统的立项&#xff0c;该项目为国内纱线工厂提供SAAS服务&#xff0c;旨在提升纱线工厂的数字化和智能化水平。我在该项目中担任架构设计师&#xff0c;负责该项目的架构设计工作。本文结合我在该项目…

      虚拟主机与独立服务器如何选择

      在搭建和维护网站时&#xff0c;选择合适的服务器套餐至关重要。虚拟主机和独立服务器是两种常见的选择&#xff0c;它们各有优缺点&#xff0c;适用于不同需求的用户。本文将深入探讨这两种服务器类型的特点&#xff0c;以帮助您为您的网站选择最合适的服务器解决方案。虚拟主…