1. 架构总览

cline 是一个以“AI助手+工具集成+编辑器/命令行增强”为核心的现代开发平台。其架构高度模块化,支持多种扩展方式,能够通过标准协议(如 MCP)动态集成外部工具和服务。整体设计兼顾了前端 UI、后端服务、协议通信、自动化脚本、文档和多语言支持。


2. 主要组成部分

2.1 协议与数据层

  • proto/
    使用 Protocol Buffers (gRPC) 定义了跨进程/跨模块通信协议,包括 MCP 服务、工具调用、资源访问、服务器管理等。所有前后端、插件、外部服务的交互都基于这些协议,保证了强类型和高兼容性。

    2.2 核心服务层

  • src/services/
    封装了各类底层服务,如 MCP 服务器管理(McpHub)、文件系统、终端、日志、搜索、账号、鉴权等。每个服务独立、可复用,便于扩展和维护。

    2.3 控制器与业务逻辑层

  • src/core/controller/
    负责将协议请求(如 gRPC 调用)路由到具体业务逻辑,实现如 MCP 服务器管理、工具调用、超时设置、市场下载等功能。每个功能点都有独立的 controller 文件,便于解耦和测试。

  • src/core/task/ToolExecutor.ts
    统一调度和执行所有“工具”调用(如 execute_command、read_file、use_mcp_tool 等),并处理审批、错误、用户反馈、自动化等流程,是 AI 助手与底层工具的桥梁。

    2.4 前端与 UI 层

  • webview-ui/
    采用 React 实现的现代前端,负责与用户交互、展示工具/服务器/市场/任务等信息。通过 gRPC 客户端与后端通信,支持实时状态更新和丰富的交互体验。

    2.5 扩展与插件机制

  • MCP(Model Context Protocol)
    通过 MCP 协议,cline 可以动态集成本地或远程的“工具服务器”,这些服务器可以暴露任意功能(如 API 调用、自动化、数据查询等),极大扩展了 AI 助手的能力。MCP 支持 stdio、SSE、HTTP 等多种传输方式,适配本地和云端场景。

3. 典型工作流举例

L流程图

  1. 用户在前端(webview-ui)发起请求(如“运行命令”、“调用工具”)。
  2. 前端通过 gRPC 调用后端 controller。
  3. controller 调用 ToolExecutor,ToolExecutor 根据请求类型调度底层服务(如 MCP、终端、文件系统等)。
  4. 若涉及 MCP 工具,则通过 MCP 协议与外部服务器通信,获取结果。
  5. 结果通过 controller 返回前端,前端展示给用户。
  6. 所有交互、审批、错误、反馈等都有统一的提示和处理机制。

4. 扩展性与适用场景

  • 支持本地/远程工具、API、自动化脚本、数据查询等多种扩展方式。
  • 适合 AI 助手、代码自动化、企业集成、DevOps、数据分析等多种场景。
  • 易于二次开发和企业定制,支持多语言和多平台。