关于 MCP 的理论知识学习

文章目录

    • 1. 写在最前面
    • 2. 基本概念
      • 2.1 Why MCP
        • 2.1.1 大模型访问的局限
        • 2.1.2 过渡阶段—Function Call
        • 2.1.3 当前阶段— MCP
    • 3. 碎碎念
    • 4. 参考资料

1. 写在最前面

最近有一项任务是写旧版本迁移到新版本的支持文档,文档的编写是借助于 cursor 帮忙写的。但是实现的方式不够优雅,因为 cursor 还不支持直接访问公司的 confluence 文档站,笔者只能:

  • 首先,从 confluence 上下载两个不同版本的 api 文档说明

  • 然后,将转为 pdf 格式的文档通过 agent 的方式,让 cursor 可以浏览到

  • 最后,cursor 再针对两份文档异同,来实现一个旧文档迁移到新文档的说明

这个方式虽然也能完成需求,但是总归实现的方式还需要人工干预,不够简洁。最近 MCP 的概念很热,并且借助这个功能,似乎能够简化笔者类似需求的实现,刚好趁着五一节前的大块空余时间,先来理解一下基本概念。

2. 基本概念

为了避免梳理和记忆的内容同质化,在理解 MCP 的概念的时候,笔者尽量使用自己能够理解和记忆的方式进行,故很多地方可能存在出入,如果有不准确的地方,欢迎指出!

2.1 Why MCP

2.1.1 大模型访问的局限

在使用 cursor coding 的时候,因为只需要访问项目内的文件,同时现在也支持运行大部分的 Terminal 命令,所以大部分的时候,是能够满足需求的。

但是在让 cursor 访问项目以为的文件,就不行了,参考下面的问答:

在这里插入图片描述

2.1.2 过渡阶段—Function Call
  • 未使用 function Call

    在这里插入图片描述

  • 使用 function Call

    在这里插入图片描述

大模型的 function Call 功能通常指的是在使用大语言模型(如 GPT 系列)时,模型能够调用特定的功能或接口来执行某些操作。这种功能可以增强模型的交互性和实用性,使其能够更好地满足用户的需求。

注:function call 作为过渡阶段的原因在于 function call 平台依赖性强,不同 LLM 平台的 function call API 实现差异较大。例如,OpenAI 的函数调用方式与 Google 的不兼容,开发者在切换模型时需要重写代码,增加了适配成本。除此之外,还有安全性,交互性等问题。

2.1.3 当前阶段— MCP

MCP (Model Context Protocol,模型上下文协议)定义了应用程序和 AI 模型之间交换上下文信息的方式。这使得开发者能够以一致的方式将各种数据源、工具和功能连接到 AI 模型(一个中间协议层)。

在这里插入图片描述

注:MCP 可以理解成电脑转接头是用来连接不同类型的接口或端口,以便于设备之间的互联和兼容。比如

  • USB-C 转 USB-A:将 USB-C 设备连接到 USB-A 端口(如传统电脑)。
  • USB-C 转 HDMI:将 USB-C 设备连接到 HDMI 显示器或电视。
  • USB-C 转 VGA:将 USB-C 设备连接到 VGA 显示器。

笔者个人的简单理解, 「MCP」可以理解成类似于「GRPC」协议的一种协议标准,使用这个协议实现的 server 、client 可以很方便的兼容和适配到其他的大模型应用上。

大模型访问数据的需求是天然存在的

只不过 MCP 协议将数据连接到模型的这个环节可以更智能更统一。Anthropic 基于这样的痛点设计了 MCP,充当 AI 模型的「万能转接头」,让 LLM 能轻松的获取数据或者调用工具。

3. 碎碎念

大概理解了一下概念,想要动手实践,假期前的最后几小时可能不允许了,所以就先记录到这里吧,希望大家假期愉快吖:

  • 人生下来不是为了拖着锁链,而是为了展开双翼。

  • 不论世界如何,都要向着阳光野蛮生长,成为照亮世界的大人。

  • 成年人的烦恼,和谁说好像都不合适,要学会自我消化,想开、看开、放开。

4. 参考资料

  • Introduction - Model Context Protocol

  • MCP(Model Context Protocol) ,一篇就够了

  • 回调函数 - 维基百科,自由的百科全书

  • 如何使用 Function Calling 功能_大模型服务平台百炼(Model Studio)-阿里云帮助中心

  • Introduction - Model Context Protocol

  • Core architecture - Model Context Protocol

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

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

相关文章

C++学习之路,从0到精通的征途:List类的模拟实现

目录 一.list的介绍 二.list的接口实现 1.结点 2.list结构 3.迭代器 (1)begin (2)end 4.修改 (1)insert (2)push_back (3)push_front &#xff0…

【游戏ai】从强化学习开始自学游戏ai-2 使用IPPO自博弈对抗pongv3环境

文章目录 前言一、环境设计二、动作设计三、状态设计四、神经网路设计五、效果展示其他问题总结 前言 本学期的大作业,要求完成多智能体PPO的乒乓球对抗环境,这里我使用IPPO的方法来实现。 正好之前做过这个单个PPO与pong环境内置的ai对抗的训练&#…

计算机考研精炼 操作系统

第 14 章 操作系统概述 14.1 基本概念 14.1.1 操作系统的基本概念 如图 14 - 1 所示,操作系统是计算机系统中的一个重要组成部分,它位于计算机硬件和用户程序(用户)之间,负责管理计算机的硬件资源,为用户和…

什么是基尔霍夫第一定律

基尔霍夫第一定律(Kirchhoffs First Law),也称为基尔霍夫电流定律(Kirchhoffs Current Law,简称 KCL),是电路分析中最基础的定律之一。它描述了电路中电流的守恒特性,适用于任何集总…

解决 RN Switch 组件在安卓端样式很丑的问题

解决此种问题的方式有很多 可以导入原生库react-native-switch 切图 (会缺少动画) 使用 js 组件 这里使用 js 绘制组件(原生体验)解决此类问题 Switch.tsx import React, { useEffect, useRef, useState } from react; import { Animated, Pressabl…

【AI】【MCP】搭建私人王炸MCP自动化工作流

目录 一、什么是MCP 二、MCP大集合 三、准备工作 3.1 安装node.js 3.2 安装vscode 3.3 安装cline插件 3.3.1 安装 3.3.2 配置Cline 四、配置MCP服务 4.1 Search-mcp服务 4.2 playwright-mcp 服务 前言:梦想组合,轻松办公,告别手动&a…

Git 实操:如何使用交互式 Rebase 移除指定提交(真实案例分享)

在日常开发中,有时候我们提交了一些不想保留的记录,比如测试代码、错误的功能提交等。 ⚠️ 在操作 4. 强制推送到远程仓库前的注意事项 强制推送(git push --force 或 git push -f)确实很强大但也危险,因为它会重写…

11.Excel:函数

一 函数是什么 函数是定义好的公式。 单元格内输入sum然后tab,框选要求和的范围,然后回车键。 补充:公式。 公式以开头,可以用于计算,返回数值。 分别点击各个数值,中间用加号连接。这样很不方便&#xff…

Springboot使用ThreadLocal提供线程局部变量,传递登录用户名

文章目录 概述使用创建ThreadLocalUtil工具类在登录拦截器中使用ThreadLocal存储登录用户名在/userInfo接口中获取登录用户名 注意事项参考视频 概述 使用 创建ThreadLocalUtil工具类 utils/ThreadLocalUtil.java package org.example.utils;/*** ThreadLocal 工具类*/ Supp…

1399. 统计最大组的数目

1399. 统计最大组的数目 题目链接&#xff1a;1399. 统计最大组的数目 代码如下&#xff1a; class Solution { public:int countLargestGroup(int n) {int res 0;unordered_map<int, int> um;int maxValue 0;for (int i 1;i < n;i) {string value to_string(i);…

VS Code 插件Git History Diff 使用

右上角 查看单个文件记录

数学建模论文手的学习日常01

目录 一.要写的内容&#xff1a; 二.文章标题&#xff1a; 三.摘要&#xff08;非常非常非常重要&#xff09; 四、关键词&#xff1a; 五、问题重述 六、模型假设 七、符号说明 八、模型的建立与求解 九、模型的分析与检验 十、模型的评价、改进与推广 十一、参考…

深度学习: AI 体育领域

一、引言 在科技与体育深度融合的当下&#xff0c;AI 体育逐渐成为推动体育行业变革的重要力量。深度学习凭借其强大的数据分析与模式识别能力&#xff0c;为 AI 体育带来了全新的发展机遇。从运动员动作分析到智能健身指导&#xff0c;从赛事预测到运动康复辅助&#xff0c;深…

在 Ubuntu24.04 LTS 上 Docker 部署英文版 n8n 和 部署中文版 n8n-i18n-chinese

一、n8n 简介 n8n 是一个低代码&#xff08;Low-Code&#xff09;工作流自动化平台&#xff0c;可以帮助用户以非常简单的方式创建自动化流程&#xff0c;连接不同的应用程序和服务。n8n的设计理念是为了让复杂的工作流变得简单易用&#xff0c;同时也支持高度的自定义&#xf…

《系统分析师-第三阶段—总结(八)》

背景 采用三遍读书法进行阅读&#xff0c;此阶段是第三遍。 过程 本篇总结第15章的内容 第15章 总结 系统运行与维护&#xff0c;系统经过测试交付之后&#xff0c;进入运行维护阶段&#xff0c;维护分为系统运行、故障维护、系统评价和系统相关的策略。 疑问&#xff1a;…

LeetCode 1295.统计位数为偶数的数字:模拟

【LetMeFly】1295.统计位数为偶数的数字&#xff1a;模拟 力扣题目链接&#xff1a;https://leetcode.cn/problems/find-numbers-with-even-number-of-digits/ 给你一个整数数组 nums&#xff0c;请你返回其中位数为 偶数 的数字的个数。 示例 1&#xff1a; 输入&#xff1…

DDD是什么?电商系统举例

一、DDD的基本概念 领域驱动设计&#xff08;Domain-Driven Design&#xff0c;简称DDD&#xff09;是由Eric Evans提出的一种软件开发方法论&#xff0c;旨在应对复杂业务系统的设计和实现。它的核心思想是将软件的设计与业务领域紧密结合&#xff0c;通过深入理解业务需求&a…

K8S ConfigMap 快速开始

一、什么是 ConfigMap&#xff1f; ConfigMap 是 Kubernetes 中用于存储非敏感配置数据的 API 对象&#xff0c;支持以键值对&#xff08;Key-Value&#xff09;或文件的形式存储配置&#xff0c;允许将配置与镜像解耦&#xff0c;实现配置的集中管理和动态更新。 二、主要用…

Prometheus使用Recoding Rules优化性能

通过PromQL可以实时对Prometheus中采集到的样本数据进行查询&#xff0c;聚合以及其它各种运算操作。而在某些PromQL较为复杂且计算量较大时&#xff0c;直接使用PromQL可能会导致Prometheus响应超时的情况。这时需要一种能够类似于后台批处理的机制能够在后台完成这些复杂运算…

C++ RAII 编程范式详解

C RAII 编程范式详解 一、RAII 核心概念 RAII&#xff08;Resource Acquisition Is Initialization&#xff0c;资源获取即初始化&#xff09; 是 C 的核心编程范式&#xff0c;通过将资源生命周期与对象生命周期绑定实现安全、自动化的资源管理。 核心原则&#xff1a; 资源…