大语言模型 17 - MCP Model Context Protocol 介绍对比分析 基本环境配置

news2025/5/23 22:33:45

MCP

基本介绍

官方地址:

  • https://modelcontextprotocol.io/introduction
    “MCP 是一种开放协议,旨在标准化应用程序向大型语言模型(LLM)提供上下文的方式。可以把 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 提供了一种标准化的方式,让你的设备能够连接各种外设和配件一样,MCP 也提供了一种标准化的方式,让 AI 模型能够连接不同的数据源和工具。”

在这里插入图片描述
● MCP 主机(MCP Hosts):像 Claude Desktop、IDE 或 AI 工具等程序,它们希望通过 MCP 访问数据。
● MCP 客户端(MCP Clients):维护与服务器 1:1 连接的协议客户端。
● MCP 服务器(MCP Servers):轻量级程序,它们通过标准化的模型上下文协议(Model Context Protocol)公开特定的功能。
● 本地数据源(Local Data Sources):你的计算机上的文件、数据库和服务,MCP 服务器可以安全地访问这些数据。
● 远程服务(Remote Services):通过互联网可用的外部系统(例如 API),MCP 服务器可以与其连接。

https://www.anthropic.com/news/model-context-protocol
在这里插入图片描述

社区也在积极推进:

  • https://github.com/modelcontextprotocol

在这里插入图片描述

为什么

官方给的选择理由:
MCP 帮助您在 LLM 之上构建智能体和复杂的工作流。LLM 经常需要与数据和工具集成,而 MCP 提供:
● 越来越多的预构建集成,您的 LLM 可以直接接入
● 在不同的 LLM 提供商和供应商之间灵活切换的能力
● 在您的基础设施内保护数据的最佳实践

对比FC

MCP 本质上是 通过 JSON 的标准,将工具的能力、参数等描述清楚,在和大模型对话的时候,传递到上下文中。
而 Function Call 是需要 LLM 支持的,比如在 DeepSeek-R1 中,开源版本不支持 Function Call 的,所以此时我们实现的功能就会受到限制。
Function Call 主要用于扩展模型的功能,使其能执行任务,而 Model Context Protocol (MCP) 主要用于维持对话上下文,增强模型的个性化和记忆能力。
两者互补,使得 AI 既能高效执行任务,又能保持对话连贯性。

这里呢,我生成了一个表格来进行对比:
在这里插入图片描述

应用场景

● 智能代码编辑器 (IDE): 与文件系统、版本控制、包管理器和文档集成,以实现更丰富的上下文感知和代码建议 。
● 智能助手和生产力工具: 使 AI 助手能够访问日历、电子邮件、文档和其他个人或企业数据,以执行诸如安排日程、总结信息和管理工作流程等任务 。
● 增强的数据分析平台: 允许 AI 自主发现并与多个数据库、数据可视化工具和模拟进行交互,以进行复杂的数据分析 。 提到 AI2SQL 是使用 MCP 进行 AI 驱动数据查询的一个例子。
● 用于特定任务的自定义 AI 代理: 构建专门的 AI 代理,可以利用特定的工具和数据源来自动化客户支持、财务和运营等领域的任务 。

我怎么看

接触了这么多 LLM、Agent,很多时候大模型只是充当一个衔接的能力,本质还是要提供出API,才可以对大模型的能力进行扩展,来实现和业务的结合。
经常会出现:AI 集成问题(M 个模型 x N 个工具需要 M*N 个集成)
但实际在做东西的时候,我发现对应的开放出这些API来是非常困难的,每个平台都不一样,各自的接口也都不一样,所以 MCP 可以帮助我更轻松的把这些东西衔接起来。
有点像:OpenAI 的 API 定义了一个结构,大家后续出的API都是按照这个结构来的,这样的话,大家在 Python 编码的时候,只需要修改 base_url 和 api_key 就好了,剩下的入参和回参都是一样的。

在这里插入图片描述

安装UV

uv 是一个现代化的 Python 软件包管理器,旨在取代 pip、venv 和 virtualenv。
在这里插入图片描述

执行直接安装:

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

官方示例

Data and file systems

● Filesystem - Secure file operations with configurable access controls
● PostgreSQL - Read-only database access with schema inspection capabilities
● SQLite - Database interaction and business intelligence features
● Google Drive - File access and search capabilities for Google Drive

Development tools

● Git - Tools to read, search, and manipulate Git repositories
● GitHub - Repository management, file operations, and GitHub API integration
● GitLab - GitLab API integration enabling project management
● Sentry - Retrieving and analyzing issues from Sentry.io

Web and browser automation

● Brave Search - Web and local search using Brave’s Search API
● Fetch - Web content fetching and conversion optimized for LLM usage
● Puppeteer - Browser automation and web scraping capabilities

Productivity and communication

● Slack - Channel management and messaging capabilities
● Google Maps - Location services, directions, and place details
● Memory - Knowledge graph-based persistent memory system

AI and specialized tools

● EverArt - AI image generation using various models
● Sequential Thinking - Dynamic problem-solving through thought sequences
● AWS KB Retrieval - Retrieval from AWS Knowledge Base using Bedrock Agent Runtime

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

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

相关文章

【软考向】Chapter 9 数据库技术基础

基本概念数据库的三级模式结构 数据模型E-R 模型关系模型各种键完整性约束 关系代数5 种基本的关系代数运算:并、差、笛卡儿积、投影和选择扩展的关系代数运算:交(Intersection)、连接(Join)、除(Division)、广义投影(Generalized Projection)、外连接(O…

实战:Dify智能体+Java=自动化运营工具!

我们在运营某个圈子的时候,可能每天都要将这个圈子的“热门新闻”发送到朋友圈或聊天群里,但依靠传统的实现手段非常耗时耗力,我们通常要先收集热门新闻,再组装要新闻内容,再根据内容设计海报等。 那怎么才能简化并高…

STM32单片机GUI系统1 GUI基本内容

目录 一、GUI简介 1、emWin 2、LVGL (Light and Versatile Graphics Library) 3、TouchGFX 4、Qt for Embedded 5、特性对比总结 二、LVGL移植要求 三、优化LVGL运行效果方法 四、LVGL系统文件 一、GUI简介 在嵌入式系统中,emWin、LVGL、TouchGFX 和 Qt 是…

应届本科生简历制作指南

一、找一个专业的简历模板 首先,你需要访问 Overleaf 的官方网站,也就是Overleaf, Online LaTeX Editor,进入页面后,点击注册按钮,按照提示填写相关信息来创建一个属于自己的账号,通常需要填写用户名、邮箱…

PyTorch可视化工具——使用Visdom进行深度学习可视化

文章目录 前置环境Visdom安装并启动VisdomVisdom图形APIVisdom静态更新API详解通用参数说明使用示例Visdom动态更新API详解1. 使用updateappend参数2. ~~使用vis.updateTrace方法~~3. 完整训练监控示例 Visdom可视化操作散点图plot.scatter()散点图案例线性图vis.line()vis.lin…

企业级爬虫进阶开发指南

企业级爬虫进阶开发指南 一、分布式任务调度系统的深度设计 1.1 架构设计原理 图表 1.2 核心代码实现与注释 分布式锁服务 # distributed_lock.py import redis import timeclass DistributedLock:def __init__(self, redis_conn):self.redis = redis_connself.lock_key = …

网络安全-等级保护(等保) 2-7 GB/T 25058—2019 《信息安全技术 网络安全等级保护实施指南》-2019-08-30发布【现行】

################################################################################ GB/T 22239-2019 《信息安全技术 网络安全等级保护基础要求》包含安全物理环境、安全通信网络、安全区域边界、安全计算环境、安全管理中心、安全管理制度、安全管理机构、安全管理人员、安…

数据结构实验10.1:内部排序的基本运算

文章目录 一,实验目的二,实验内容1. 数据生成与初始化2. 排序算法实现(1)直接插入排序(2)二分插入排序(3)希尔排序(4)冒泡排序(5)快速…

wps编辑技巧

1、编辑模式 2、图片提取方法:右键保存图片 可以直接右键保存下来看看是否是原始图,如果歪着的图,可能保存下来是正的,直接保存试下 3、加批注

开放世界RPG:无缝地图与动态任务的拓扑学架构

目录 开放世界RPG:无缝地图与动态任务的拓扑学架构引言第一章 地图分块系统1.1 动态加载算法1.2 内存管理模型第二章 任务拓扑网络2.1 任务依赖图2.2 动态可达性分析第三章 NPC行为系统3.1 行为森林架构3.2 日程规划算法第四章 动态事件系统4.1 事件传播模型4.2 玩家影响指标第…

【图像处理入门】1. 数字图像的本质:从像素到色彩模型

作为图像处理的开篇,本文将带你拆解数字图像的底层逻辑:从模拟图像到数字信号的神奇转换,到像素世界的微观构成,再到彩色图像的编码奥秘。通过 Python 代码实战,你将亲手触摸图像的 “基因”—— 像素值,并…

(已解决:基于WSL2技术)Windows11家庭中文版(win11家庭版)如何配置和使用Docker Desktop

目录 问题现象: 问题分析: 拓展: 解决方法: 1、使用WSL2技术(亲测有效) 注意: 2、开启Hyper-V功能(未经亲测,待研究) 问题现象: 今天想在本…

Ubuntu20.04部署KVM

文章目录 一. 环境准备关闭防火墙(UFW)禁用 SELinux更换镜像源检查 CPU 虚拟化支持 二. 安装KVM安装 KVM 及相关组件启动 libvirtd 服务验证安装创建虚拟机 一. 环境准备 4C8G,50G硬盘——VMware Workstation需要给虚拟机开启虚拟化引擎 roo…

OpenCV CUDA 模块图像过滤------创建一个高斯滤波器函数createGaussianFilter()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::cuda::createGaussianFilter 是 OpenCV CUDA 模块中的一个工厂函数,用于创建一个高斯滤波器。这个滤波器可以用来平滑图像&#…

可视化图解算法43:数组中的逆序对

1. 题目 ​牛客网 面试笔试TOP101 描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P mod 1000000007 数据范围&…

【Python】使用Python实现调用API获取图片存储到本地

使用Python实现调用API获取图片存储到本地 目录 使用Python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现5、结果查看 1、项目概述 开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始…

腾讯2025年校招笔试真题手撕(一)

一、题目 有n 把钥匙,m 个锁,每把锁只能由一把特定的钥匙打开,其他钥匙都无法打开。一把钥匙可能可以打开多把锁,钥匙也可以重复使用。 对于任意一把锁来说,打开它的钥匙是哪一把是等概率的。但你无法事先知道是哪一把…

Vue3 与 Vue2 区别

一、Vue3 与 Vue2 区别 对于生命周期来说,整体上变化不大,只是大部分生命周期钩子名称上 “on”,功能上是类似的。不过有一点需要注意,组合式API的Vue3 中使用生命周期钩子时需要先引入,而 Vue2 在选项API中可以直接…

嵌入式学习笔记 - STM32 U(S)ART 模块HAL 库函数总结

一 串口发送方式: ①轮训方式发送,也就是主动发送,这个容易理解,使用如下函数: HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout); ②中断方式发送&#xff…

【VLNs篇】04:SayNav-为新环境中的动态规划到导航进行大型语言模型的基础构建

栏目内容论文标题SayNav: 为新环境中的动态规划到导航进行大型语言模型的基础构建 (SayNav: Grounding Large Language Models for Dynamic Planning to Navigation in New Environments)研究问题自主代理在未知环境中执行复杂导航任务(如MultiON)时&…