一个 MCP 让 Cursor 变聪明 70%?Augment Context Engine 实测,大项目救星

17 阅读3分钟

昨天刷热榜看到有人讨论 Augment Code,评论区一堆人在争"到底比 Cursor 强在哪"。说实话我之前也觉得——又一个 AI 编程工具,能有啥新花样?

直到我发现了它的 Context Engine MCP

这玩意的思路很野:不是让你换编辑器,而是把 Augment 的"大脑"作为 MCP 服务塞进你现有的工具里。Cursor、Claude Code、Zed、Copilot,随便你用哪个,都能接上。

我测了 3 天,结论是——在大项目上,效果确实炸裂。 小项目嘛...聊胜于无。

先说结论

场景原生 Cursor+ Context Engine MCP提升
跨文件重构(10+ 文件)经常漏改、改错引用基本全对,偶尔需手动微调⭐⭐⭐
新需求开发(已有代码库)不了解项目约定,代码风格混乱能遵循项目现有模式⭐⭐⭐
Bug 修复(复杂调用链)只看当前文件,经常治标不治本能追溯到根因所在的文件⭐⭐⭐
简单脚本/新项目够用没明显区别
代码补全速度略慢 0.5-1s⭐(反而降了)

急性子看到这就够了,下面是完整的折腾过程。

为啥大项目 AI 编程这么拉胯?

做过大项目的应该都有体会:你让 Cursor 改一个接口的返回格式,它改了 controller 层,但 service 层的类型没同步,前端调用也没更新。你跟它说"全改了",它说"好的已经修改完成"——然后 TypeScript 编译 50 个报错。

根本原因很简单:上下文不够。

Cursor 的上下文窗口是有限的,就算开了 codebase indexing,本质上也是基于关键词的搜索。它不真正"理解"你的代码架构——哪个 service 调了哪个 repository,哪个组件依赖了哪个 hook,这些关系它是模糊的。

Augment 的 Context Engine 做的事情不一样。它会对整个项目建一个语义索引,不是简单的全文搜索,而是理解代码的结构、依赖关系和调用链路。据官方说能处理 10 万+ 文件的项目。

关键是——它把这个能力包装成了 MCP 服务,你不用换编辑器。

安装过程(5 分钟搞定)

1. 注册 Augment 账号

augmentcode.com 注册,Indie 计划 $20/月,有 14 天免费试用。

2. 在 Cursor 里配置 MCP

在项目根目录创建 .cursor/mcp.json

{
  "mcpServers": {
    "augment-context": {
      "command": "npx",
      "args": ["-y", "auggie-context-mcp@latest"]
    }
  }
}

重启 Cursor,第一次启动会弹出浏览器让你登录 Augment 账号授权。

3. 在 Claude Code 里配置

如果你用 Claude Code,在项目根目录的 .mcp.json 里加:

{
  "mcpServers": {
    "augment-context": {
      "command": "npx",
      "args": ["-y", "auggie-context-mcp@latest"]
    }
  }
}

4. 等索引建完

这一步是最磨人的。首次运行会对项目建语义索引,我的项目大概 8 万行代码,花了差不多 6 分钟。大项目可能更久,但后续增量更新很快。

终端里能看到进度:

[augment] Indexing project... 23,456 / 48,912 files
[augment] Building dependency graph...
[augment] Index complete. 48,912 files, 312 modules, 2,847 cross-references.

实测:3 个真实场景

场景 1:跨文件接口重构

我们项目有个 UserService.getProfile() 方法,要改返回格式——把嵌套的 address 字段拍平成 cityprovincestreet 三个顶层字段。

原生 Cursor 的表现:

  • 改了 UserService.ts 的返回类型 ✅
  • 改了 UserController.ts 的接口文档 ✅
  • 漏掉了 UserTransformer.ts 里的转换逻辑 ❌
  • 前端 useUserProfile.ts hook 里的解构完全没动 ❌
  • 单元测试 user.service.spec.ts 的 mock 数据没更新 ❌

加了 Context Engine 后:

  • 自动识别了所有 7 个相关文件
  • 连测试的 fixture 数据都给改了
  • 唯一漏掉的是一个 E2E 测试里 hardcode 的 JSON——但这个确实比较隐蔽

这就是语义索引和关键词搜索的差距。Context Engine 知道 UserTransformer 的输出会被 UserController 用,而 Cursor 只能靠文件名和 import 猜。

场景 2:基于现有模式开发新功能

让它参考现有的 OrderModule 写一个 PaymentModule,包括 controller、service、entity、DTO。

原生 Cursor 写出来的代码能跑,但风格跟项目完全不搭——用了不同的装饰器写法、不同的错误处理模式、DTO 校验方式也不一样。

Context Engine 加持后,生成的代码基本上就是项目代码的"延续":

// 它自动遵循了项目的错误处理模式
@Post('refund')
async createRefund(@Body() dto: CreateRefundDto) {
  const result = await this.paymentService.createRefund(dto);
  if (result.isFailure()) {
    // 项目统一用 Result 模式,不是直接 throw
    return ApiResponse.fail(result.error);
  }
  return ApiResponse.ok(result.value);
}

这段代码的风格跟项目里其他 controller 完全一致——包括 Result 模式、ApiResponse 封装,甚至连参数命名的习惯都对了。原生 Cursor 写出来的大概率是 throw new HttpException()

场景 3:复杂 Bug 追踪

有个线上问题:用户偶尔会收到两封相同的通知邮件。

让 Cursor 查,它在 NotificationService.send() 里找了半天,说"没发现重复调用的逻辑"。因为重复的根因不在这——是上游的 EventBus 在 RabbitMQ 重连后会重发消息,而 NotificationHandler 没有做幂等校验。

Context Engine 给出的分析直接定位到了 EventBus 的重连逻辑和 NotificationHandler 缺少幂等 key 的问题。它甚至建议了修法:

// NotificationHandler.ts
async handle(event: NotificationEvent) {
  // Context Engine 建议加的幂等校验
  const idempotencyKey = `notification:${event.userId}:${event.type}:${event.triggerId}`;
  const exists = await this.redis.get(idempotencyKey);
  if (exists) {
    this.logger.warn(`Duplicate notification skipped: ${idempotencyKey}`);
    return;
  }
  await this.redis.set(idempotencyKey, '1', 'EX', 3600);

  await this.notificationService.send(event);
}

踩坑记录

坑 1:索引卡死在 node_modules

首次索引如果没有配 .augmentignore,它会尝试索引 node_modules,然后就卡住了。

解决:项目根目录创建 .augmentignore

node_modules/
dist/
.next/
coverage/
*.min.js

坑 2:跟 Cursor 自带的 codebase indexing 冲突

两个索引系统同时工作,偶尔会出现 Cursor 给的上下文和 Context Engine 给的上下文打架的情况。建议在 Cursor Settings 里把 Codebase Indexing 关掉,全部交给 Context Engine。

坑 3:token 消耗翻倍

因为 Context Engine 会注入大量上下文,每次请求的 token 数会明显增加。一天下来 token 用量大概是原来的 1.8-2.2 倍。

这里有个省钱技巧:Claude Code 的底层模型 API 不一定要走官方。我把 API 请求指向了 ofox.ai 的聚合接口,改个 base_url 就行,价格上有优势,而且国内延迟低很多,Context Engine 注入的大上下文传输速度快不少。

坑 4:免费试用期只有 14 天

14 天一到,要么付 20/月(Indie),要么ContextEngine就不工作了。但说实话,如果你的项目超过5万行代码,这20/月(Indie),要么 Context Engine 就不工作了。但说实话,如果你的项目超过 5 万行代码,这 20 的 ROI 是正的。

不适合的场景

别被我吹得太厉害了,也说说不好用的地方:

  1. 小项目(< 1 万行):上下文本来就够用,Context Engine 加了等于没加
  2. 纯前端页面:组件之间的关系比较扁平,原生 Cursor 够用
  3. 对响应速度敏感:Context Engine 会增加 0.5-1s 延迟,Tab 补全的体验会变差
  4. 团队免费版够用的:如果你就一个人写个人项目,可能不值这个钱

小结

Augment Context Engine MCP 的思路我很喜欢——不跟 Cursor 正面竞争做编辑器,而是做"AI 编程的外挂大脑"。对于大项目,这种深度语义索引确实是刚需。

我的用法是:日常开发用 Cursor + Context Engine MCP,复杂重构和 Bug 追踪切到 Claude Code + Context Engine MCP。两个工具用同一个 Context Engine,上下文是共享的,体验很顺滑。

如果你的项目够大、够复杂,值得花 5 分钟试试。