首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

MCP:让大语言模型不只是聊天,更能"动手做事"的开放协议

  • 25-04-22 00:23
  • 4596
  • 12569
juejin.cn

MCP 是什么

MCP(Model Context Protocol,模型上下文协议)是一个开放协议,用于标准化应用程序向大语言模型提供上下文的方式。

有了 MCP,大模型不只是聊天工具了,还能“动手做事”——比如查数据库、记笔记、写代码等等。

为什么需要 MCP?

大语言模型(LLM)在训练完成后,只能基于训练数据预测并回答用户问题。

这就使得 大语言模型 存在局限性——它们无法主动获取实时数据、控制外部系统或访问特定数据库等操作。

这种情况下怎么办呢?OpenAI 于2023年6月13日正式推出的 Function Calling 就解决了这个问题。

通过编写一个函数,去主动获取实时数据、控制外部系统或访问特定数据库等操作,再将结果给到大语言模型

Function calling

官网介绍:platform.openai.com/docs/guides…

Function calling 就是让大语言模型拥有了调用外部工具或者函数的能力。

大语言模型本身不具备调用工具的能力,但通过在训练阶段的设计和微调,可以让模型学会判断在什么情况下需要调用工具,生成结构化的数据(如函数名和参数),然后告诉外部程序需要调用哪些函数。

调用流程

程序(如OpenAI、DeepSeek)与大语言模型(如GPT-4o、DeepSeek R1)的交互流程:

第一步:用户查询 用户向系统提出请求,例如:"今天天气怎么样?"

第二步:构建完整请求 程序将以下内容组合后发送给大语言模型:

  • 系统提示词(如果有)
  • 用户提示词("今天北京的天气怎么样")
  • 工具定义(告知模型可调用的工具及其参数要求)

工具定义示例:

plain
代码解读
复制代码
{ "type": "function", "name": "get_weather", "description": "获取指定地点的当前温度。", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "城市和国家,例如:北京,香港" } }, "required": ["location"], "additionalProperties": false } }

第三步:模型智能解析 大语言模型理解用户意图(获取北京天气),并按照预定义的接口格式生成结构化的函数调用请求:

plain
代码解读
复制代码
{ "type": "function_call", "id": "fc_12345xyz", "call_id": "call_12345xyz", "name": "get_weather", "arguments": "{\"location\":\"北京\"}" }

第四步:执行工具调用 程序执行实际函数调用:get_weather("北京")

第五步:回传****信息 程序将上下文信息(原始用户输入和工具调用指令)以及工具调用结果发送给大语言模型

第六步:生成自然语言回复 模型根据工具调用结果,合成流畅、自然的回答

第七步:程序将生成的回复展示给用户,完成一轮完整对话

能用 Function Calling,为什么还要 MCP?

维护困难:Function Calling 通常与特定模型服务绑定,随着项目规模扩大,会导致函数调用关系复杂、难以维护。

灵活性不足:如果有新的项目需要使用这些外部函数,往往需要复制或迁移函数实现。如果新项目使用的编程语言与原项目不一致,还需要进行语言转换,增加了开发和维护成本。

缺乏统一标准:Function Calling 的实现方式因平台不同而异,缺少统一标准,容易导致代码库碎片化、功能重复开发的问题。

MCP** 的优势**:

MCP 的出现,将工具调用解耦为独立服务,使项目与外部函数分离,并以标准化的服务调用方式,提升了灵活性,实现“一次开发,多处调用”。

MCP 协议规定了统一的调用标准,开发者可以基于该协议编写 MCP Server,并开放出 MCP 服务,供其他项目和开发者复用,极大提升开发效率。

MCP 总体架构

  • MCP Hosts:支持 MCP 的应用平台,如 Claude Desktop、Cursor 或 Cherry Studio 等,负责托管和管理多智能体对话程序
  • MCP Clients:与服务器维持一对一连接的协议客户端
  • MCP Servers:专用 MCP 服务实例,通过标准化的模型上下文协议对外提供特定功能
  • Local Data Sources:MCP 服务器可安全访问的本地计算资源,包括文件系统、数据库和本地服务
  • Remote Services:MCP 服务器可通过互联网 API 连接的外部系统和服务

MCP Server 资源

github.com/modelcontex…

github.com/yzfly/Aweso…

mcp.so/zh

注:本文转载自juejin.cn的飞询的文章"https://juejin.cn/post/7492339631699345460"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top