简单理解MCP:AI如何使用工具


简单理解MCP:AI如何使用工具(以天气/新闻服务为例)
在这里插入图片描述

你是否注意到人工智能(AI)助手正变得越来越智能?它们不再仅仅是聊天,还能执行实际操作,比如查询天气、在线搜索,甚至预订会议。这通常涉及到使用外部的“工具”(如API或函数)。

但是,一个AI(比如驱动你最喜欢的聊天应用的那个)是如何可靠地连接并使用由不同开发者创建的各种工具呢?这就是模型上下文协议 (Model content Protocol, MCP) 发挥作用的地方。
在这里插入图片描述

MCP解决的问题

想象一下,你试图将来自不同国家的电器插头插入你家的墙上插座——你需要各种转换器,因为它们的插头标准各不相同!类似地,不同的AI模型和不同的工具提供者可能有各自独特的“沟通”方式。将它们连接起来可能会变得混乱和复杂。

MCP就像一个通用适配器或一种标准语言。它定义了一套通用的规则,规定了AI模型、你使用的应用程序(客户端)以及工具提供者(MCP服务器)应该如何交互。

认识参与者

为了理解工作流程,让我们明确各个角色:

  1. AI (大语言模型 - LLM): 这是“大脑”(比如来自OpenAI、Anthropic、Google等的模型)。它理解你的请求,并决定是否需要工具来回答。
  2. MCP 服务器 (MCP Server): 这是“工具箱提供者”。它是一个提供一个或多个工具的服务。在我们的例子中,想象一个“天气与新闻服务”,它提供获取天气预报和新闻头条的工具。
  3. 客户端 (Client): 这是正在交互的应用程序(例如,一个特殊的聊天界面、一个编码助手)。它充当中间人,将你和AI连接到MCP服务器(工具箱)。重要的是,通常是你(或应用程序开发者)告诉客户端应该连接到哪个(或哪些)MCP服务器。 AI不决定使用哪个服务器,只决定使用已连接服务器上的哪个工具

在这里插入图片描述

MCP 工作流程:分步详解(以天气/新闻为例)

让我们来看看当你通过客户端应用向AI助手提问时,事情是如何运作的,比如问:“明天伦敦的天气怎么样?还有,最新的头条新闻是什么?”

第1步:客户端连接到MCP服务器

  • 首先,你正在使用的客户端应用程序需要与你(或应用程序)指定的“天气与新闻服务”MCP服务器建立连接。
  • 可以想象成: 把你的应用程序插入天气与新闻服务指定的端口。MCP定义了如何安全可靠地建立这种连接。

第2步:客户端发现可用工具

  • 一旦连接成功,客户端会询问MCP服务器:“嘿,你提供哪些工具?”
  • 服务器会按照MCP标准回复一个列表。这个列表包含:
    • 工具名称(例如,get_weather_forecast, get_latest_news)。
    • 描述(例如,“为指定城市提供天气预报”,“获取当前热门新闻头条”)。
    • 所需输入(例如,get_weather_forecast 需要一个 city 名称)。
  • 可以想象成: 阅读机器上按钮的标签,看看每个按钮是干什么用的。

第3步:客户端为AI准备请求

  • 你在客户端应用中输入你的请求:“明天伦敦的天气怎么样?还有,最新的头条新闻是什么?”
  • 客户端接收你的请求,并将其与从天气与新闻服务器收到的可用工具列表(来自第2步)打包在一起。它将这个完整的包裹发送给AI (LLM)。

第4步:AI决定是否以及如何使用工具

  • AI分析你的请求(“伦敦天气”、“头条新闻”)。
  • 它查看可用的工具(get_weather_forecast, get_latest_news)及其描述。
  • 它判断:
    • “要回答天气部分,我需要 get_weather_forecast 工具,并且 city 输入应该是’伦敦’。”
    • “要回答新闻部分,我需要 get_latest_news 工具(这个可能不需要特定输入)。”
  • 然后,AI将指令发送回客户端,大致意思是:“请使用 get_weather_forecast 工具,参数 city=伦敦,并使用 get_latest_news 工具。” MCP标准化了AI传达这个决定的方式。

第5步:客户端通过MCP执行工具

  • 客户端收到来自AI的指令。
  • 然后,它使用标准的MCP格式 (call_tool) 向天气与新闻MCP服务器发出正式请求:
    • “运行 get_weather_forecast,输入 city='伦敦'。”
    • “运行 get_latest_news。”
  • 可以想象成: 客户端按照AI的指示按下了机器上的特定按钮。

第6步:MCP服务器运行工具并返回结果

  • 天气与新闻服务器收到 call_tool 请求。
  • 它运行其内部逻辑(例如,调用其天气API合作伙伴、查询其新闻数据库)。
  • 它收集结果(伦敦的天气预报详情、新闻标题列表)。
  • 它将这些结果再次按照MCP标准打包,发送回客户端。

第7步:AI生成最终回答

  • 客户端从服务器收到工具执行的结果(例如,原始天气数据、新闻文章片段)。
  • 它将这些结果发送回AI (LLM)。
  • AI结合原始问题和工具结果,为你生成一个最终的、易于理解的回答:
    “好的,伦敦明天的天气预报是部分多云,最高气温18℃。最新的头条新闻包括…”

为什么MCP很重要?

MCP看起来可能有很多来回传递,但它的价值是巨大的:

  • 标准化 (Standardization): 大家都说同一种语言。客户端、服务器和LLM都知道如何相互沟通。
  • 互操作性 (Interoperability): 你可以轻松地更换不同的AI模型或添加新的工具服务器,而无需从头开始重建一切。一个为使用MCP而构建的客户端理论上可以与任何兼容MCP的服务器对话。
  • 简化开发 (Simplicity for Developers): 虽然涉及一些步骤,但拥有一个标准使得开发者能够更容易地构建可以可靠协作的客户端和服务器。

本质上,MCP充当了关键的管道和线路,使得AI生态系统的不同部分能够顺畅连接和协作,从而实现了我们在现代AI应用中看到的复杂的工具使用能力。它帮助AI从简单的聊天,进化到能够真正事情的阶段。

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

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

相关文章

护网奇谈: 红队工程师手记

零、引言:在演练中活着,在现实中消失 人们常说,护网是网络安全界的“大阅兵”。 每年一次,红蓝对阵,政企联动,战鼓擂响,态势大屏高挂,PPT如潮,报告成山。 你在屏幕前看…

机器翻译与数据集

机器翻译与数据集 语言模型是自然语言处理的关键,而机器翻译是语言模型最成功的基准测试。因为机器翻译正是将输入序列转换成输出序列的序列转换模型(sequence transduction)的核心问题。序列转换模型在各类现代人工智能应用中发挥着至关重要…

基于 HTML 和 CSS 实现的 3D 翻转卡片效果

一、引言 在网页设计中,为了增加用户的交互体验和视觉吸引力,常常会运用一些独特的效果。本文将详细介绍一个基于 HTML 和 CSS 实现的 3D 翻转卡片效果,通过对代码的剖析,让你了解如何创建一个具有立体感的卡片,在鼠标…

C++ 中二级指针的正确释放方法

C 中二级指针的正确释放 一、什么是二级指针? 简单说,二级指针就是指向指针的指针。 即: int** p;它可以指向一个 int*,而 int* 又指向一个 int 类型的变量。 常见应用场景 动态二维数组(例如 int** matrix&#x…

大数据平台与数据仓库的核心差异是什么?

随着数据量呈指数级增长,企业面临着如何有效管理、存储和分析这些数据的挑战。 大数据平台和 数据仓库作为两种主流的数据管理工具,常常让企业在选型时感到困惑,它们之间的界限似乎越来越模糊,功能也有所重叠。本文旨在厘清这两种…

Winform(11.案例讲解1)

今天写两个案例,用于更好的理解控件的使用 在写之前先写一个类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _1.案例讲解 { internal class Student { public string …

Spring AMQP源码解析

目录 channel和connection的区别 自动装配RabbitAutoConfiguration 消息发送流程 获取connection对象 获取channel对象 AMQConnection读取frame帧并回调publishconfirm和publishreturn MainLoop线程监听 执行回调 channel和connection的区别 Spring AMQP 是 Spring 框…

Linux系统安装PaddleDetection

一、安装cuda 1. 查看设备 先输入nvidia-smi,查看设备支持的最大cuda版本,选择官网中支持的cuda版本 https://www.paddlepaddle.org.cn/install/quick?docurl/documentation/docs/zh/install/conda/linux-conda.html 2. 下载CUDA并安装 使用快捷键…

Linux系统中的时间同步服务

1.时间同步:多主机协作工作,时间应该保持一致,如加密协议、日志、集群等,利用NTP(Network Time Protocol)协议使得各个主机时间达到同步。 ntp:将系统时钟和世界协调时UTC同步,精度在局域网内可…

【Linux笔记】系统的延迟任务、定时任务极其相关命令(at、crontab极其黑白名单等)

一、延时任务 1、概念 延时任务(Delayed Jobs)通常指在指定时间或特定条件满足后执行的任务。常见的实现方式包括 at 和 batch 命令,以及结合 cron 的调度功能。 2、命令 延时任务的命令最常用的是at命令,第二大节会详细介绍。…

软考 系统架构设计师系列知识点 —— 黑盒测试与白盒测试(1)

本文内容参考: 黑盒测试和白盒测试详解-CSDN博客 软件测试中的各种覆盖(Coverage)详解-CSDN博客 特此致谢! 零、概述 黑盒测试又名为功能测试,主要目的是发现软件设计的需求或者是软件设计规格说明书中的错误缺陷。…

yolov11 epoch100轮 训练笔记5 kaggle comet

Football Players Detection using YOLOV11 | Kaggle !pip install comet_ml import comet_mlcomet_ml.login(project_name"c") Comet - Build Better Models Faster yolov11训练 100轮一眨眼训练完了 然而comet接不到yolo的sdk 优秀 训练17轮map就0.99了 v5训练100…

Ubuntu K8S(1.28.2) 节点/etc/kubernetes/manifests 不存在

Ubuntu K8S(1.28.2) 节点/etc/kubernetes/manifests 不存在 在查看日志(journalctl -xefu kubelet)时发现各节点/etc/kubernetes/manifests 不存在,但主节点没有异常 21080 file.go:104] "Unable to read config path" err"…

neo4j基础操作:命令行增删改查

目录 一,Neo4j的增 1.1.新增节点 1.2.新增关系 1.2.1创建节点时,创建关系 1.2.2在已有的节点上,创建关系 二,Neo4j的删除 2.1删除节点 2.1.1无关系的节点删除 2.1.2 有关系的节点删除 三,节点修改 3.1 给节点…

rollout 是什么:机器学习(强化学习)领域

rollout 是什么:机器学习(强化学习)领域 指从特定初始状态开始,按照某个策略或模型进行一系列动作和状态转移,直到达到终止状态或预定时间步数 。比如: 迷宫任务:强化学习代理在迷宫中,从起始点出发,按某策略(如随机选方向走)进行移动,直到找到出口或达到最大移动…

stm32之TIM定时中断详解

目录 1.引入1.1 简介1.2 类型1.2.1 基本定时器1.2.2 通用定时器1. 触发控制单元 (Trigger Control Unit)2. 输入捕获单元 (Input Capture Unit)3. 输出比较单元 (Output Compare Unit)4. CNT 计数器5. 自动重装载寄存器 (ARR)6. 预分频器 (PSC)7. 中断与 DMA 事件8. 刹车功能 (…

centos8源码安装openssl

前言: 在使用python3.11部署运行FastAPI时,由于其uvicorn需要使用openssl模块,导致没有安装openssl的服务器项目运行不起来. 【第一步】 我的网盘下载openssl-1.1.1n.tar.gz 提取码: vay9 【第二步】 上传到服务器解压 tar -zxvf opens…

vue3 动态修改系统title

vue3 动态修改系统title 修改前 修改后 1、封装 useTitle 工具函数 创建组合式 API,通过 watchEffect 监听标题变化: // composables/useTitle.js import { ref, watchEffect } from vue;export function useTitle(initialTitle) {const title r…

比较两种判断相同二叉树的方法:递归与遍历序列对比

在二叉树操作中,判断两棵树是否相同是一个常见的问题。本文将对比两种不同的解决方案:递归法和遍历序列对比法,分析它们的优缺点,并探讨为何递归法是更优的选择。 问题描述 给定两棵二叉树的根节点 p 和 q,判断它们是…

从0开始学习大模型--Day01--大模型是什么

初识大模型 在平时遇到问题时,我们总是习惯性地去运用各种搜索引擎如百度、知乎、CSDN等平台去搜索答案,但由于搜索到的内容质量参差不齐,检索到的内容只是单纯地根据关键字给出内容,往往看了几个网页都找不到答案;而…