LLM 如何使用 MCPs?

发布: (2026年1月8日 GMT+8 15:09)
3 min read
原文: Dev.to

Source: Dev.to

概览

要了解大型语言模型(LLM)如何知道模型上下文协议(MCP)服务器中有什么,想象一下 LLM 不是一个“知道”事物的人,而是一个在烹饪前被递交菜单的厨师。LLM 实际上并不“知道”MCP的存在,直到你发送一条消息为止。

步骤说明

  1. 启动会话
    在支持 MCP 的应用程序(例如 Claude Desktop 或 Cursor)中,MCP 客户端(即应用)使用标准请求 tools/list 与 MCP 服务器(即工具)进行通信。

  2. 服务器响应
    服务器返回它提供的所有工具的列表。对于每个工具,它会提供:

    • 名称
    • 描述
    • JSON Schema(工具所需的参数)
  3. 将工具列表注入提示
    MCP 客户端将此列表直接插入 LLM 的提示上下文,通常作为系统指令的一部分。

  4. 隐藏指令块
    当 LLM 收到你的消息时,它还会看到类似以下的隐藏文本块:

    You have access to the following tools:
    get_weather: Get current weather. Parameters: location (string).
    query_postgres: Run SQL on the DB. Parameters: query (string).
  5. 用户查询
    例如,你会问:“东京的天气怎么样?”

  6. 工具选择
    LLM 识别出它不知道天气信息,但看到有一个匹配意图的工具(get_weather)。

  7. 结构化工具调用
    根据它在“工具使用”或“函数调用”模式上的训练,LLM 停止生成普通文本,输出结构化片段:

    {
      "call": "get_weather",
      "args": {
        "location": "Tokyo"
      }
    }
  8. 客户端处理调用

    • 客户端检测到 LLM 输出中的片段。
    • 它暂停 LLM 并向 MCP 服务器发送指定请求。
    • 服务器执行实际代码并将结果返回给客户端。
  9. 结果回馈给 LLM
    客户端将结果再次注入 LLM 的上下文。

  10. 最终答案
    LLM 读取结果后回复,例如:“东京的天气是 15 °C,晴朗。”

Back to Blog

相关文章

阅读更多 »

Rapg:基于 TUI 的密钥管理器

我们都有这种经历。你加入一个新项目,首先听到的就是:“在 Slack 的置顶消息里查找 .env 文件”。或者你有多个 .env …

技术是赋能者,而非救世主

为什么思考的清晰度比你使用的工具更重要。Technology 常被视为一种魔法开关——只要打开,它就能让一切改善。新的 software,...

踏入 agentic coding

使用 Copilot Agent 的经验 我主要使用 GitHub Copilot 进行 inline edits 和 PR reviews,让我的大脑完成大部分思考。最近我决定 t...