# Cline 先规划再动手。给规划一张地图。

Canonical source: https://maguyva.ai/zh-hans/for-cline

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Cline 会读文件、跑命令，改任何东西之前都会先问你。Maguyva 索引整个仓库并通过 MCP 返回结果，于是 Plan 模式从真实的调用点出发，而不是从目录列表出发。

> .clinerules 管怎么做事，Maguyva 管代码现在怎么写。

## 关于 Cline 需要知道的

四条 Cline 专属事实。

### cline_mcp_settings.json

从 Cline 面板里的 MCP Servers 图标打开：先进 Configure 标签页，再点 Configure MCP Servers。服务器放在 `mcpServers` 下。

### 远程，按 URL 连接

Cline 通过 Streamable HTTP 连接 Maguyva 的端点。没有本地进程，也不需要 Node.js。

### 直接写进请求头

和 Cline 自己的示例一样，密钥直接写进 `Authorization` 请求头。设置文件位于编辑器的用户存储中，不在你的仓库里。

### 用 streamableHttp，不用 SSE

条目里保留 `"type": "streamableHttp"`：没有类型时，Cline 会当作旧式 SSE。把你信任的工具列进 `autoApprove`，就能跳过它们的批准提示。

## Cline 规则是一份工作约定，好好用它。

```text
# .clinerules/testing.md
- 把任务标记为完成之前，先跑测试套件。
- 添加依赖之前先询问。
```

工作区规则是放在 `.clinerules/` 或 `.cline/rules/` 中的 Markdown 文件；Cline 也会读取 `AGENTS.md`、`.cursorrules` 和 `.windsurfrules`。规则适合写：

- Cline 应该运行的命令。
- 用 frontmatter glob 限定到某个路径的护栏。
- 你已经懒得一遍遍重复的团队约定。

规则告诉 Cline 该怎么做。它不会告诉 Cline，哪些服务在读它正要迁移的那张表。

## 规则和读文件不够用的地方

Cline 靠一次次请求、多读文件来填补的三个缺口。

### // 从目录列表做出的规划

Plan 模式依据 Cline 目前读过的内容推理。在大仓库里，那不过是一棵目录树加几个文件，规划也就继承了这些缺口。

### // 每次读取都是一次往返

Cline 为摸清情况打开的每个文件，都要花 token 和一次模型请求。在陌生的包里摸索，可能在第一次编辑前就用掉大半上下文窗口。

### // 文本搜索找到的是字符串，不是调用方

“还有谁在调用它？”是一个图的问题。文本搜索能找到字符串，却分不清真正的调用方、注释、mock 和同名方法。

## 作为 Cline 中 MCP 服务器的 Maguyva

一条 mcpServers 条目让 Cline 获得：

- **面向已索引仓库的 11 个工具**: 语义、结构（AST）、图和文本搜索，外加符号查找、依赖方和文件检索。
- **带文件路径和行号的答案**: 覆盖 285+ 种语言，规划引用的都是真实存在的文件。
- **只读的工具**: Maguyva 的工具只查询索引，没有一个会修改你的文件。

> Cline 规则告诉 Cline *怎么工作*。
> Maguyva 给 Cline *一张用来规划的地图*。

## 两种工作流

照着地图规划，然后执行。

### 01. 从真实调用点规划改动

```text
cline plan> 把会话刷新移到 auth 包里

dependency_search("refreshSession", dependents)
  src/api/middleware.ts:58
  src/jobs/renew.ts:12
  src/web/hooks/useSession.ts:30

→ 进入 Act 模式之前，规划已列出三个调用点。
[exit 0]
```

规划会列出它要动的每个文件，你批准的是一份清单，而不是一个直觉。

### 02. 找到真正的实现，而不是测试夹具

```text
cline> 我们的按比例计费是怎么算的？

semantic_search("proration calculation")
  src/billing/proration.ts:22   prorate()   ← 实现
  test/billing/proration.spec.ts:7   ← 夹具

→ Cline 只读一个文件，而不是六个。
[exit 0]
```

排序结果会把实现排在同名夹具之前。

## 在 Cline 中配置

三个步骤。Free 层级：3 个代码仓库, 最多 5 万行索引代码，无需信用卡。

### 01. 在 maguyva.ai 索引一个代码仓库

挑一个你已经熟悉的，这样你能给答案打分。

### 02. 把 Maguyva 添加到 Cline 的 MCP 设置

`cline_mcp_settings.json`

```json
{
  "mcpServers": {
    "maguyva": {
      "type": "streamableHttp",
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer mgv_xxxx"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
```

### 03. 替换占位符，然后问一个问题

把 `mgv_xxxx` 换成你的 API 密钥并保存文件。问一个你已经知道答案的问题，然后打开它引用的文件。

Cline 的 [MCP 文档](https://docs.cline.bot/mcp/mcp-overview)介绍了远程服务器、超时和自动批准。

## 索引一个你已经熟悉的代码仓库。

通过 MCP 连接 Cline，然后问一个你能核实的问题。
