W
AI-Wiki
ENTITY

Cline

定义与身份

Cline是原文实验里实际使用的客户端插件,运行在VS Code中。

在该实验中,它不是被抽象讨论的协议组件,而是用户真正操作的宿主界面:用户在其中配置模型接口、安装和管理 MCP server、发起提问、查看待调用工具,并在批准后让本地工具实际执行。

原文用 Cline 来验证 MCP 的底层工作机制,因此它处于“连接大模型与本地 MCP server 的关键执行层”位置。

配置角色

原文的实验先配置 Cloudflare AI Gateway,再在VS Code中安装 Cline 插件,通过 Cline 把后端模型请求改为经由 Gateway 转发。

具体配置方式包括:

  • 在 Cline 中选择 OpenAI compatible 作为接口类型。
  • Cloudflare AI Gateway 提供的链接填入 base URL
  • 申请并填写模型提供方的 API Key。原文示例先使用 OpenRouter 的 API Key,也提到后续实验中把 DeepSeek API 开放平台创建的 API Key 信息填写到 Cline 中。
  • 填写模型 ID。原文示例给出“免费的 DeepSeek V3”作为模型 ID 示例。

这说明 Cline 在文中的一个核心角色,是作为统一前端,把不同模型提供方通过兼容 OpenAI 的方式接入同一调用入口,再借助 Gateway 观察真实请求日志。

MCP 安装与管理角色

原文将 Cline 直接作为安装 MCP server 的入口使用。

用户进入 Cline 后,点击 MCP 小按钮,在市场中搜索与时间有关的 MCP server,文中以 time 类 server 为例。

这里有两个边界条件被原文明确写出:

  • MCP server 本质上是运行在用户电脑上的程序。
  • 文中这个 time server 是用 Python 编写的,因此本机必须先安装 Python 运行环境。

在满足本地运行环境条件后,原文描述 Cline/AI 会自动完成安装过程中的一部分工作,安装流程包括:

  • 创建文件夹。
  • 使用 PIP 命令安装对应 Python 包。
  • 创建并保存配置文件。
  • 配置文件可按需修改,例如加入本地时区。
  • 最后由用户点击 approve 完成配置。

安装完成后,可在该 server 下看到两个工具:

  • 获取当前时间。
  • 进行时间转换。

这说明 Cline 不只是聊天入口,还承担本地 MCP server 的发现、安装、配置确认与可用工具展示职责。

在调用链中的双重职责

原文对 Cline 在 MCP工具调用链路 中的职责描述得非常明确,且具有双重性。

1. 向模型传递工具说明

Cline 会把用户问题与 MCP 的详细使用方法一起发送给大模型,其中 MCP 工具说明被附加在系统提示词中。

原文在 Cloudflare AI Gateway 日志中看到的系统提示词,明确包含类似如下信息:

  • MCP 允许系统与本地运行的 MCP server 通信。
  • 这会给系统带来额外的工具和资源扩展能力。
  • 可通过 use_mcp_tool 执行 MCP 协议相关工具调用。
  • 可通过 access mcp resource 获取资源。
  • 系统提示词中还明确列出可用工具,如 get current timeconvert time,以及各自的传参格式。

因此,模型之所以“知道”有哪些 MCP 工具、工具叫什么、参数该怎么传,并不是模型天然认识这些工具,而是因为 Cline 把这些说明注入进了系统提示词。

2. 执行对本地 MCP server 的实际调用

Cline 不仅负责把工具说明告诉模型,还负责在模型做出选择后,真正执行调用。

原文给出的调用过程是:

  1. Cline 把用户提问及 MCP 详细使用方法传给大模型。
  2. 大模型决定应当使用哪个 MCP 工具,以及参数应如何传递。
  3. Cline 根据模型决定的调用方式,去调用本地 MCP server。
  4. Cline 拿到 MCP server 的返回结果后,再连同之前上下文一起交回大模型。
  5. 大模型整理输出,给用户最终答案。

这里原文还补充了一个重要事实:MCP server 本质上是本地的 Node.js 或 Python 程序。也就是说,真正执行工具的是本机程序,而 Cline 是把模型决策翻译成实际本地调用的执行者。

文中示例:展示待调用工具并等待用户批准

原文用“现在的时间是什么”作为演示问题。

在这个例子中,Cline 会向用户展示模型可能要调用的 MCP 工具,原文给出的示例名称是:

  • get current time time

随后由用户批准,Cline 再执行该调用。

调用完成后,返回值被再次送回模型,最终模型给出当前时间结果;原文提到结果时区为上海。

这体现了 Cline 在交互层面的一个特点:它不会把本地工具调用完全隐藏,而是把“准备调用什么工具”显式展示给用户,并通过批准机制继续执行。

关键信息与边界

它不是 MCP server 本身

Cline 负责安装、管理和调用 MCP server,但它本身不是 MCP server。

原文反复强调,真正的 MCP server 是本地运行的程序,可能是 Python,也可能是 Node.js;Cline 则是宿主客户端与执行调度层。

它也不是模型能力本身

模型是否会使用 MCP 工具,取决于 Cline 是否把 MCP 工具说明注入到系统提示词,以及后续是否按模型决策执行工具调用。

因此,文中的 MCP 能力并不是模型内建出厂能力,而是“模型 + Cline + 本地 MCP server”共同形成的结果。

它支持不具备 function call 的模型参与 MCP 流程

原文专门用 DeepSeek Re 进行验证,并指出其不支持 function call/function code。

尽管如此,只要把相关 API Key 和模型信息填入 Cline,模型仍可在推理过程中使用 MCP 工具并得到正确答案。

这背后的原因是:MCP 相关知识是由 Cline 附加进系统提示词中的,模型只要能读懂提示词,就能基于这些说明决定使用 MCP。

因此,从文中实验语境看,Cline 也是证明MCP与Function Call关系的重要实验载体:MCP 与 function call 功能相似,但二者相互独立、没有依赖关系。

细节补充

  • 原文实验先通过 Cloudflare AI Gateway 抓取与 AI 交互的所有请求数据,再从日志中验证 Cline 确实把 MCP 工具说明注入了系统提示词。
  • time 类 MCP server 安装时,用户并非零操作;虽然 AI/Cline 会自动完成部分步骤,但仍需本地预装 Python,并在最后点击 approve 完成配置。
  • 配置文件不是完全固定的,原文明确提到可以修改配置文件以添加本地时区。
  • Cline 展示给模型的并不只是工具名,还包括参数格式,这一点对模型正确决定调用方式至关重要。

相关条目