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

相关推荐
ByteCraze1 小时前
面向Nodejs开发人员MCP快速入门
前端·node.js·agent·mcp
韩数11 小时前
小白也能看懂! 今年爆火的 MCP 协议究竟是什么?写给普通人的 MCP 指南
后端·aigc·mcp
疯狂踩坑人2 天前
MCP理论和实战,然后做个MCP脚手架吧
前端·node.js·mcp
组合缺一2 天前
Spring Boot 国产化替代方案。Solon v3.7.2, v3.6.5, v3.5.9 发布(支持 LTS)
java·后端·spring·ai·web·solon·mcp
Ericwyn3 天前
MCP Partner, 一个在线快捷 mcp client 调试工具
mcp
Breath573 天前
代码执行 + MCP:AI 代理 token 省 98%!
agent·ai agent·mcp·上下文工程
魁首3 天前
AI Agent 协议演进:从 MCP 到 ACP 的架构对比与未来展望
openai·gemini·mcp
奇舞精选3 天前
我用 Chrome 扩展验证了 MCP 的安全风险,结果发现
chrome·mcp
该用户已不存在4 天前
6款MCP工具,让AI真正懂业务
ai编程·mcp
疯狂踩坑人5 天前
Node写MCP入门教程
前端·agent·mcp