你管这破玩意叫 MCP?

来源:JackCui

添加小助理:cv3d001,备注:方向+学校/公司+昵称,拉你入群。文末附3D视觉行业细分群。

扫描下方二维码,加入「3D视觉从入门到精通」知识星球(点开有惊喜),星球内凝聚了众多3D视觉实战问题,以及各个模块的学习资料:近20门秘制视频课程、最新顶会论文、计算机视觉书籍、优质3D视觉算法源码等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!

最近,有个概念很火:MCP。

据说它能够调用搜索功能、控制数据库等,那么它与 AI Agent 或者 Function Call 究竟有什么区别呢?

这篇文章,给你讲明白。

MCP官网:

https://modelcontextprotocol.io/introduction

一、什么是MCP?

MCP,全称 Model Context Protocol(模型上下文协议),是Anthropic提出的一种开放协议,旨在标准化应用程序向大语言模型(LLM)提供上下文的方式。

可以将其类比为AI模型的“USB-C”接口,它让AI能够轻松访问各种外部数据源和工具,实现更强的动态信息处理能力。

换句话说,MCP为AI模型提供了一种统一的交互协议,使其能够像联网的搜索引擎一样查询最新数据、访问企业数据库,甚至是执行自动化任务。

二、为什么MCP

MCP的提出,可以追溯到AI大模型发展面临的几个核心问题:

  • 数据时效性问题:传统大模型训练数据固定,导致其知识具有滞后性,无法实时访问最新的信息。

  • 碎片化工具链:不同的AI工具和插件往往各自为政,缺乏统一标准,使得开发者需要针对不同模型单独适配,增加了开发成本。

  • 上下文管理复杂:Function Call等现有方法可以调用API,但它们通常要求开发者显式定义调用逻辑,难以形成统一的AI生态。

在这些需求的推动下,Anthropic提出了MCP,旨在为AI模型提供标准化的数据访问方式,让模型能够与各种外部数据源进行交互。

所以MCP可以有效的结解决现有AI与环境交互带来的各种麻烦。

想象一下,如果你的AI助手可以轻松访问你的个人内部数据库、邮箱,日历等等,而不需要针对每个应用单独开发接口,这会极大提升AI的实用性。MCP就是这样一个通用的“适配器”,就像上面的图片一样,一个type-c转换器解决所有问题。

但是,如果我们都有像OpenAI的function call 我们为什么还需要MCP, 这看起来好像有点多余。

但核心上还是几个重要区别:

它使 AI 能够访问多种外部数据源(如数据库、API、搜索引擎),通过 MCP 服务器进行交互,构建开放的插件化 AI 生态。而 Function Call 则更专注于让 AI 调用预定义的函数接口,主要用于执行特定任务,如计算器调用或 API 交互,依赖开发者手动定义接口。

简单来说,Function Call更像是AI调用特定任务的API,而 MCP 更像是AI访问一个开放的数据生态。

因此,MCP 可能推动 AI 生态的发展,使其能够更自由地扩展和集成不同的数据源。

说了这么多,哪里能获取我们想要的MCP呢?

MCP.so 提供非常多插件供大家使用,例如时间MCP, 爬虫MCP等等大量丰富的MCP。

MCP商店:

https://mcp.so/

三、实战:使用Claude Desktop操作Notion

现在主流的几种使用MCP的方式有,cline, windsurf, 还有就是claude desktop。

这里我们使用Claude Desktop 作为教程。

准备工作

1、设置 MCP Notion 服务器

这边需要你有node.js, 没有的小伙伴可以去node.js 的官网下载安装一下。

然后,克隆仓库:

git clone https://github.com/suekou/mcp-notion-server.git

然后运行以下命令:

cd notion
npm run build
npm link

确保 notion/build/index.js 文件成功创建。

2、准备 Notion API 令牌

前往 Notion 集成页面(https://www.notion.so/my-integrations),创建一个新集成,并复制 API 令牌,保留一下等下会用。

3、配置 claude_desktop_config.json

编辑 claude_desktop_config.json,添加 Notion 服务器路径和 刚刚的Notion API 令牌:

{
  "mcpServers": {
    "notion": {
      "command": "node",
      "args": [
        "/Users/YOUR_USERNAME/Desktop/mcp-notion-server/notion/build/index.js"
      ],
      "env": {
        "NOTION_API_TOKEN": "Notion AAPI令牌"
      }
    }
  }
}

试用MCP Notion 服务器

重启 Claude Desktop,点击工具图标(右下角小榔头),查看 "notion" 是否出现在 "From Server" 选项中。

让 Claude 撰写一篇文章后,发送以下消息:

写一篇关于CLaude的文章。

授权 Claude 访问 Notion,稍等片刻,即可在 Notion 页面看到保存的内容。

操作Notion数据库

这里我们想要创建一个电影数据库,Claude会自己获取知识然后创建在Notion里,相当方便。

创建一个关于电影的数据库

然后向 Claude 询问:

告诉我评分为 ⭐️⭐️⭐️⭐️⭐️ 的电影。

Claude 将从 Notion 数据库检索相关数据,并返回匹配的结果。

四、MCP的未来展望

反正我使用了之后,我觉得MCP对于AI软件的开发会大大提高效率。

希望MCP生态能快速的发展起来,这样未来使用MCP就像使用浏览器插件一样简单且高效。

每个人能都可以创建属于自己的AI小助手。

本文仅做学术分享,如有侵权,请联系删文。

3D视觉交流群,成立啦!

目前我们已经建立了3D视觉方向多个社群,包括2D计算机视觉、最前沿、工业3D视觉、SLAM、自动驾驶、三维重建、无人机等方向,细分群包括:

工业3D视觉:相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。

SLAM:视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。

自动驾驶:深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、Occupancy、目标跟踪等。

三维重建:3DGS、NeRF、多视图几何、OpenMVS、MVSNet、colmap、纹理贴图等

无人机:四旋翼建模、无人机飞控等

2D计算机视觉:图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等

最前沿:具身智能、大模型、Mamba、扩散模型、图像/视频生成等

除了这些,还有求职硬件选型视觉产品落地、产品、行业新闻等交流群

添加小助理: cv3d001,备注:研究方向+学校/公司+昵称(如3D点云+清华+小草莓), 拉你入群。

▲长按扫码添加助理:cv3d001
3D视觉工坊知识星球

「3D视觉从入门到精通」知识星球(点开有惊喜),已沉淀6年,星球内资料包括:秘制视频课程近20门(包括结构光三维重建、相机标定、SLAM、深度估计、3D目标检测、3DGS顶会带读课程、三维点云等)、项目对接3D视觉学习路线总结最新顶会论文&代码3D视觉行业最新模组3D视觉优质源码汇总书籍推荐编程基础&学习工具实战项目&作业求职招聘&面经&面试题等等。欢迎加入3D视觉从入门到精通知识星球,一起学习进步。

▲长按扫码加入星球
3D视觉工坊官网:www.3dcver.com

卡尔曼滤波、大模型、扩散模型、具身智能、3DGS、NeRF结构光、相位偏折术、机械臂抓取、点云实战、Open3D、缺陷检测、BEV感知、Occupancy、Transformer、模型部署、3D目标检测、深度估计、多传感器标定、规划与控制、无人机仿真C++、三维视觉python、dToF、相机标定、ROS2机器人控制规划、LeGo-LAOM、多模态融合SLAM、LOAM-SLAM、室内室外SLAM、VINS-Fusion、ORB-SLAM3、MVSNet三维重建、colmap、线面结构光、硬件结构光扫描仪等。

▲ 长按扫码学习3D视觉精品课程

3D视觉模组选型:www.3dcver.com

—  —

点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

3D视觉科技前沿进展日日相见 ~ 

<think>嗯,用户问的是“functioncall”和“mcp”的区别。首先,我需要明确这两个术语的具体含义,因为不同的领域可能有不同的解释。根据常见的计算机科学和编程上下文,可能的解释方向有两个:操作系统中的系统调用(system call)与进程间通信(IPC)中的消息传递机制,或者是在某些特定框架或库中的概念,比如函数调用(function call)与某种消息传递协议(MCP)。 首先,考虑“function call”通常指的是程序中的函数调用,即一个函数执行时调用另一个函数的过程,涉及栈帧、参数传递、返回地址等。这是编程中的基础概念。而“MCP”可能有多种含义,比如“Message Channel Protocol”、“Microprocessor Control Protocol”,或者是某些系统中的专有术语。如果用户指的是操作系统中的机制,可能需要考虑“Message Passing”相关的概念,比如在进程间通信中的消息传递(Message Passing)与函数调用的对比。 需要进一步验证可能的领域。例如,在分布式系统中,消息传递(Message Passing)是进程间通信的一种方式,而本地函数调用则是同步的、直接的调用。另一个可能性是,在某些框架或库中,比如gRPC或某些RPC框架,可能会有远程函数调用(类似RPC)和特定的消息传递协议(如MCP)的区别。 如果用户指的是系统级的概念,比如系统调用(syscall)中的“function call”与“MCP”,这里可能存在混淆。系统调用是用户空间程序请求内核服务的接口,而MCP可能是指某种消息传递机制,如Mach内核中的消息传递。此时,两者的区别在于系统调用的方式:系统调用通常通过软中断或专用指令触发,而消息传递可能通过共享内存、消息队列等方式实现。 另外,也可能用户提到的“mcp”是指“Message Channel Protocol”或其他特定协议,需要具体分析。例如,在微服务架构中,服务间通信可能通过HTTP/RPC(类似函数调用)或消息队列(如AMQP、Kafka)来实现,后者属于消息传递模式。 综合来看,可能的对比方向是:函数调用(Function Call)作为直接的、同步的调用方式,而消息传递(Message Passing)作为间接的、异步的通信机制。两者的主要区别在于调用方式、通信模型(同步/异步)、耦合度、错误处理机制等。 需要进一步确认用户的具体上下文,但由于无法询问,只能基于常见情况解释。因此,在回答中需要明确假设可能的定义,并对比两者的区别,包括执行方式、通信机制、适用场景等,同时指出可能的歧义,建议用户提供更多上下文以便更准确的解答。</think>### Function Call 与 MCP 的区别分析 需要明确的是,**“Function Call”** 和 **“MCP”** 的具体含义可能因上下文不同而变化。以下是两种常见场景下的解释: --- #### **1. 编程与系统设计中的对比** 假设 **Function Call** 指常规函数调用,**MCP** 指消息传递协议(Message Passing Protocol)或类似机制: | **特性** | **Function Call** | **MCP(消息传递)** | |------------------|-------------------------------------|----------------------------------| | **执行方式** | 同步调用,直接控制权转移 | 异步通信,通过发送/接收消息完成 | | **通信范围** | 同一进程内(或线程内) | 跨进程、跨机器、分布式系统 | | **耦合性** | 高(需明确调用目标) | 低(通过消息队列/主题解耦) | | **错误处理** | 通过异常或返回值直接处理 | 需监听反馈或超时机制 | | **典型应用** | 函数库、本地逻辑执行 | 微服务通信、事件驱动架构 | **示例** - **Function Call**(函数调用): ```python def add(a, b): return a + b result = add(3, 5) # 同步调用,直接返回结果 ``` - **MCP**(消息传递): 生产者发送消息到 Kafka 主题,消费者异步订阅处理。 --- #### **2. 操作系统中的对比** 若 **Function Call** 指系统调用(System Call),**MCP** 指消息控制协议(Message Control Protocol): | **特性** | **System Call** | **MCP(消息控制协议)** | |------------------|-------------------------------------|----------------------------------| | **目的** | 用户程序请求内核服务(如文件操作) | 管理进程间通信或硬件消息传递 | | **触发方式** | 软中断(如 `int 0x80`) | 通过特定硬件/协议通道 | | **性能开销** | 较高(需上下文切换) | 依赖实现(可能优化为低延迟) | | **典型场景** | 打开文件、网络通信 | 驱动层通信、实时系统消息传递 | **示例** - **System Call**: ```c int fd = open("file.txt", O_RDONLY); // 调用内核打开文件 ``` - **MCP**: 嵌入式系统中,通过 CAN 总线协议传递控制消息。 --- ### 关键区别总结 1. **执行模型** - Function Call:同步、直接、紧耦合。 - MCP:异步、间接、松耦合。 2. **适用场景** - Function Call:单机程序逻辑、快速本地操作。 - MCP:分布式系统、解耦组件、高容错需求。 3. **技术实现** - Function Call 依赖栈和寄存器传递参数。 - MCP 依赖队列、网络协议或专用硬件通道。 --- ### 注意事项 - **术语歧义**:若 MCP 指代其他特定协议(如 **Multicast Communication Protocol**),需结合具体领域重新分析。 - **建议**:提供更多上下文(如操作系统、框架名称),可进一步明确差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值