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

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

相关推荐
Danny转行做跨境20 小时前
AI 搜索时代选品数据采集: MCP 与爬虫实战对比
跨境电商·mcp·sorftime
壹米饭21 小时前
手搓 MCP 到最简 Agent,我都做了什么?
agent·ai编程·mcp
Sakura_j_h_1 天前
从零写一个 MCP stdio Server:用 Python 校验博客文章格式
开发语言·python·自动化·ai工具·mcp·json-rpc
xrlfreedom1 天前
MCP 面试高频考点:企业内网统一管理多个 MCP Server,Tools 权限与审计怎么落地?
tools·mcp·最小权限与审计日志·typescript mcp sdk
风雨中的小七1 天前
解密Prompt系列73. 爆改对话框:揭秘 Intelligent UI 的动态界面魔法
llm·agent·mcp
正在走向自律2 天前
AI Agent 落地这一年:从“能跑起来”到“敢放出去”
大数据·人工智能·ai agent·智能体·mcp·a2a
VIP_CQCRE2 天前
视频任务显示‘已提交’之后:别让异步生成变成黑盒
异步任务·工作流·ai视频·mcp
xrlfreedom2 天前
MCP 面试高频考点:为团队沉淀可复用 Prompts 工作流,Tools、Resources、RAG 怎么分工?
tools·resources·mcp·rag 知识库
vjmap2 天前
MCP 实战:在 WorkBuddy 里一句话让 AI 生成红军长征地图动画(唯杰 AI 地图动画 MCP 接入教程)
aigc·gis·mcp
Bayze3 天前
让两个模型吵一架,再用第三个裁决——我把多 AI 协作磨成了五种模式,六轮真实测试修出七个 Bug
mcp