跳到正文
FunCoding

搜索

搜索文档、智能体、博客、Skill 和 MCP

MCP、插件与钩子

在 Cline 里添加和管理 MCP 服务器(IDE 与 CLI 向导、本地 stdio 与远程配置、排障);用 CLI 安装插件(来源、清单格式、目录结构);内置工具参考。

MCP

MCP(Model Context Protocol)让 Cline 通过 MCP 服务器使用外部工具和数据源:把 Cline 连接到外部 API 和服务;添加内置 Cline 工具之外的自定义工具;既可以用本地服务器,也可以用远程托管的服务器。快速开始:在 Cline 里打开 MCP Servers;手动添加本地服务器,或连接到托管的远程服务器;配置凭据/环境变量;确认工具出现并测试一次工具调用。

添加服务器

手动配置:编辑你的 MCP 配置文件:CLI 用 ~/.cline/mcp.json;IDE 扩展里,在 Cline 面板点 MCP Servers 图标(顶部工具栏里的堆叠服务器图标),打开 Configure 标签页,点底部附近的 Configure MCP Servers 按钮,这会打开扩展使用的 MCP 设置 JSON,在 mcpServers 下添加/更新条目。如果要添加托管端点(而不是直接编辑 JSON),用 Remote Servers 标签页:输入 Server Name(任意唯一标签)、Server URL(完整端点 URL),选择 Transport Type(Streamable HTTP(推荐)或 SSE (Legacy)),点 Add Server。服务器配置有两种形状:本地(STDIO)服务器用 command 加 args;远程(HTTP/SSE)服务器用 url。

CLI MCP 向导:在 CLI 里运行 cline mcp,向导支持:列出服务器(显示已配置的服务器及其启用/禁用状态)、添加服务器、编辑服务器、启用/禁用(不删除而切换服务器)、删除服务器(永久移除)。添加服务器时,CLI 提示输入服务器名称、传输类型,以及命令/参数(stdio)或 URL/头(远程传输)。

配置示例

本地服务器(STDIO):

{
  "mcpServers": {
    "local-server": {
      "command": "node",
      "args": ["/path/to/server.js"],
      "env": {
        "API_KEY": "your_api_key"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

远程服务器(Streamable HTTP):

{
  "mcpServers": {
    "remote-server": {
      "type": "streamableHttp",
      "url": "https://example.com/mcp",
      "headers": {
        "Authorization": "Bearer your-token"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

type 字段选择传输方式;省略时为向后兼容默认使用旧的 sse 传输,所以要显式设置 "type": "streamableHttp" 以使用推荐的传输,只对旧式 SSE 服务器用 "type": "sse"。传输类型:STDIO 是本地进程,延迟更低、本地设置更简单;远程 HTTP/SSE 是托管端点,集中部署,支持多客户端使用。本地工具用 STDIO,共享的托管服务用远程传输。

管理与安全

在 MCP 设置里你可以启用/禁用服务器、重启无响应的服务器、设置请求超时、移除服务器。安全基础:只安装你信任的服务器;把密钥存在环境变量里;把 autoApprove 限于安全的工具;批准前评审工具调用。排障:服务器连不上——核对命令/URL、服务器进程状态和端口;缺少工具——确认服务器成功启动并暴露了工具;认证错误——重新检查 API key/令牌和所需的头;超时错误——增大 MCP 超时并直接测试服务器响应。MCP 在 Cline CLI 里也能用,在 CLI MCP 设置里配置服务器、使用相同的服务器定义;你也可以非交互地列出服务器:cline config mcp 或 cline config mcp --json。

插件

注意:这个功能目前只适用于 Cline SDK、CLI 和 Kanban,暂不适用于 VS Code 和 JetBrains 扩展。插件用自定义工具、生命周期钩子(hooks)、斜杠命令等扩展 Cline,可以全局安装(所有会话可用)或按项目安装。Hooks 的细节在 SDK 插件页里。

cline plugin install 命令从四种来源类型安装插件:

  • 文件 URL:cline plugin install https://github.com/owner/repo/blob/main/plugins/my-plugin.ts 或 raw 链接;文件 URL 直接安装单个 .ts 或 .js 插件文件,支持 GitHub blob 和 raw URL,远程插件文件 URL 必须用 https://。
  • Git 仓库:cline plugin install https://github.com/owner/repo.git 或 git@github.com:owner/repo.git;安装器克隆仓库、安装生产依赖并注册插件入口文件;要安装特定分支或标签,追加 @ref,如 ...repo.git@v1.2.0。
  • npm 包:cline plugin install npm:@scope/my-plugin 或 cline plugin install --npm my-plugin。
  • 本地路径:cline plugin install ./my-plugin、~/plugins/my-tool 或 /absolute/path/to/plugin.ts;本地安装把文件或目录复制到插件存储里,支持单个 .ts/.js 文件和带 package.json 的目录。

额外标志:--force(替换同一来源的现有安装)、--json(以 JSON 输出结果,便于脚本)、--cwd <path>(安装到 <path>/.cline/plugins 而不是全局目录)。安装后,运行 cline config 并检查插件标签页确认插件已加载。示例:typescript-lsp-plugin 是插件如何工作的好参考,它添加一个 goto_definition 工具,用 TypeScript Language Service API 通过导入、重新导出和类型别名解析符号定义:cline plugin install https://github.com/cline/typescript-lsp-plugin.git,安装后 Cline 可以用文件路径和行号调用 goto_definition 找到符号在哪里定义,比文本搜索精确得多。

插件清单格式:要让仓库或 npm 包可作为 Cline 插件安装,它的 package.json 应包含声明插件入口的 cline 字段:

{
  "name": "my-cline-plugin",
  "version": "1.0.0",
  "cline": {
    "plugins": [
      {
        "paths": ["./index.ts"],
        "capabilities": ["tools", "hooks"]
      }
    ]
  }
}

cline.plugins 数组接受:带 paths 数组的对象({ "paths": ["./src/plugin.ts"], "capabilities": ["tools"] })或纯字符串("./index.ts")。每个路径应指向导出 AgentPlugin 的 .ts 或 .js 文件(默认导出或具名导出)。没有 cline.plugins 字段时,安装器回退到自动发现:查找标准入口点,然后递归扫描 .ts 和 .js 文件(跳过 node_modules 和 .git)。宿主提供的依赖:@cline/ 作用域下的依赖由宿主运行时提供,安装器在运行 npm install 之前自动把它们从插件的依赖列表里剔除,所以把你的插件导入的任何 @cline/* 包声明为可选的 peer 依赖(宿主目前提供 @cline/sdk、@cline/core、@cline/agents、@cline/llms 和 @cline/shared)。

插件目录结构:插件存放在两个层级的 plugins 目录里:~/.cline/plugins/(全局插件,其中 _installed/ 由 cline plugin install 管理,下分 npm/、git/、remote/(文件 URL 来源)、local/)和项目根目录的 .cline/plugins/(项目范围的插件)。全局插件在所有会话里可用,项目插件只在该项目里工作时可用。用 SDK 构建插件的指南见官方的 Writing Plugins,插件 API 参考见 SDK Plugins。

内置工具

Cline 工具是模型工作时可以调用的可执行函数:模型决定调用哪个工具,Cline 运行它,然后把结果返回给模型。通过 ClineCore 运行时,这些内置工具可用:

工具说明
bash执行 shell 命令
editor查看和编辑文件
read_files批量读取多个文件
apply_patch对文件应用 unified diff
search基于 ripgrep 的代码库搜索
fetch_web带 HTML 到 markdown 转换的 HTTP 请求
ask_question向用户请求输入

(@cline/agents 里的 Agent 默认不包含内置工具,需要你显式提供工具。)工具类别:代码库操作(editor、read_files、apply_patch、search)、执行(bash)、外部检索(fetch_web)、人在回路控制(ask_question)。Cline 可以带批准或自动批准地运行工具,取决于设置/策略;典型模式:对有风险的工具(如 bash、写入/编辑操作)要求批准;自动批准低风险工具(如读取/搜索操作);需要时完全禁用特定工具。Cline 还可以调用从 .cline/mcp.json 里配置的 MCP 服务器发现的工具,MCP 工具与内置工具一起加载,所以 Cline 在一个任务里能同时使用本地工具和外部集成。除内置工具和 MCP 之外,你还可以创建自定义工具并通过插件添加(同样只适用于 SDK、CLI 和 Kanban):在插件代码里定义工具行为和输入模式、在插件设置期间注册工具、让这些工具与内置工具一起暴露给智能体。注意旧版文档和示例里 read_file、replace_in_file、execute_command 这样的 XML 风格名称,当前的 SDK/ClineCore 运行时用上表列出的内置工具名(read_files、apply_patch、bash 等)。