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

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.pswp.cn/pingmian/82097.shtml

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

相关文章

云原生安全之PaaS:从基础到实践的技术指南

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 云原生安全之PaaS:从基础到实践的技术指南 一、基础概念 PaaS(Platform as a Service)平台 PaaS是一种云计算服务模型,为开发者提供应用程序的开发、部署和运行环境,涵…

Chrome中http被强转成https问题

原因:2023年11月1日,chrome发布HTTPS-Upgrades功能,在用户访问 http:// 的旧链接之后,会自动尝试跳转到通过加密的 https:// 协议,访问该网站。且探测到 https 服务存在也会自动改成 https。 亲测两种方案可行&#x…

Linux 操作文本文件列数据的常用命令

文章目录 Linux 操作文本文件列数据的常用命令基本列处理命令高级列处理列数据转换和排序列数据统计和分析 Linux 操作文本文件列数据的常用命令 Linux 提供了多种强大的命令来处理文本文件中的列数据,以下是一些最常用的命令和工具: 基本列处理命令 c…

如何理解线性判别分析(LDA)算法?

在高维数据空间中,特征变量呈指数级增长,信息分布密集且复杂。研究者在面对海量特征时,仿佛置身于一幅结构高度抽象且维度交织的多变量图景之中,其解析与建模犹如在一幅复杂的数据宇宙图谱中导航,既需理论框架的指引,也依赖于算法工具的精确刻画。如何从众多维度中筛选出…

鸿蒙UI开发——Builder函数的封装

1、问题引入 我们在开发中可能会遇到这样一个问题:将一个Builder修饰后的函数用变量或者数组记录下来,在业务其他地方使用这些Builder函数。 举个例子,有下面一段代码: Builderfunction builderElement() {}let builderArr: Fu…

ARM笔记-ARM指令集

第三章 ARM指令集 3.1 ARM指令集简介 ARM微处理器的ARM指令集 ,所有的指令长度都是32位 ,并且大多数指令都在一个单独指令周期内执行。 主要特点: 指令是条件执行的ARM微处理器的指令集是加载/存储型的在多寄存器操作指令中一次最多可以完成…

Spring Boot接口通用返回值设计与实现最佳实践

一、核心返回值模型设计(增强版) package com.chat.common;import com.chat.util.I18nUtil; import com.chat.util.TraceUtil; import lombok.AllArgsConstructor; import lombok.Data; import lombok.Getter;import java.io.Serializable;/*** 功能: 通…

2025年上半年软件架构师考试回忆版【持续更新】

文章目录 案例分析1、端AI相对于云AI的优势2、redis持久化,主从库3、解释器架构风格4、知识图谱5、区块链 论文1、基于事件驱动的模型2、多模型数据库及其应用3、负载均衡设计方法4、论软件测试理论及其应用 考试感受 2025年软件考试架构考试于5月24日如期举行&…

Windows下编译Zipios

本文记录在Windows下编译Zipios的流程。 注1:文章内容会不定期更新。 零、环境 操作系统Windows 11VS Code1.92.1Git2.34.1Visual StudioVisual Studio Community 2022CMake3.22.1 一、安装依赖 二、编译 2.1 下载代码 git clone https://github.com/Zipios/Zi…

SOC-ESP32S3部分:11-任务创建

飞书文档https://x509p6c8to.feishu.cn/wiki/EH3owsPahisvl6kL6k3cqaQ3n0g 在我们学习单片机的时候,main函数入口中一般有一个while大循环在不停轮询,如果我们需要实现多种不同的业务,就需要用到状态机,根据不同时刻的要求执行不…

[Git] 如何进行版本回退

版本控制系统最重要的能力之一,就是能够轻松地在项目的不同历史版本之间切换。有时,你可能发现最近的修改引入了严重问题,或者需要回到之前的某个节点重新开始。这时,“版本回退”功能就派上用场了。 版本回退:反方向…

易贝平台关键字搜索技术深度解析

一、核心搜索机制 关键词匹配原理 采用TF-IDF算法计算关键词权重 支持同义词扩展(如"phone"匹配"cellphone") 标题权重 > 副标题 > 商品描述 搜索排序因素 # 搜索权重模拟计算 def calculate_rank(keyword, item): title…

深度剖析 MCP SDK 最新版:Streamable HTTP 模式

好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受. 目录 一、概述 二、快速上手:开启 Streamable HTTP 服务端开启 客户端连接 三、深入两个核心参数 stateless_http json_resp…

树莓派开箱上手教程(无需显示器版)

树莓派开箱上手教程(无需显示器版) 硬件准备 名称参数电源适配器5V电源适配器,至少需要3A的额定电流,配备USB Type-C输出接头microSD卡用来将树莓派的操作系统安装到上边,至少需要8GB容量,一般建议16GB及以…

MySQL强化关键_015_存储过程

目 录 一、概述 1.说明 2.优点 3.缺点 二、存储过程的操作 1.创建 2.调用 3.查看 4.删除 三、变量 1.系统变量 (1)说明 (2)查看系统变量 (3)设置系统变量 2.用户变量 (1&…

动态规划dp

这里写目录标题 动态规划01背包完全背包多重背包混合背包二维费用的背包分组背包有依赖的背包背包问题求方案数背包问题求具体方案数位 DP状压 DP常用例题 动态规划 01背包 有 n n n 件物品和一个容量为 W W W 的背包,第 i i i 件物品的体积为 w [ i ] w[i] w…

arcgis js统计FeatureLayer的椭球面积、平面面积

1、导入依赖 import FeatureLayer from arcgis/core/layers/FeatureLayer import { geodesicArea, planarArea, simplify } from arcgis/core/geometry/geometryEngine; import { project, load as projectionLoad } from arcgis/core/geometry/projection2、初始化project o…

2.2.1 05年T2

引言 本文将从一预习、二自习、三学习、四复习等四个阶段来分析2005年考研英语阅读第二篇文章。为了便于后续阅读,我将第四部分复习放在了首位。 四、复习 方法:错误思路分析总结考点文章梳理 4.1 错题分析 题目:26(细节题&…

Java 连接并操作 Redis 万字详解:从 Jedis 直连到 RedisTemplate 封装,5 种方式全解析

引言 在分布式系统和高并发场景中,Redis 作为高性能内存数据库的地位举足轻重。对于 Java 开发者而言,掌握 Redis 的连接与操作是进阶必备技能。然而,从基础的 Jedis 原生客户端到 Spring 封装的 RedisTemplate,不同连接方式的原…

谈谈对《加密算法》的理解

文章目录 一、什么是加密算法?二、常见的加密算法有哪些?2.1 对称加密2.2 非对称加密2.3 哈希算法 三、加密算法代码展示3.1 MD5加密3.2 秘钥加密3.3 AES加密解密 四、加密算法的使用场景 一、什么是加密算法? 加密算法是一种通过数学方法将…