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插件文件,支持 GitHubblob和 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 等)。