上周三,我在处理一个拥有120个接口的B端后台项目时,发现Copilot这类代码补全工具的局限。它能生成完美的useEffect结构,但Swagger文档和IDE之间的手动同步、字段名变更后的全局搜索替换,依然耗时耗力。这种“补全”逻辑是帮我写代码,不是帮我完成任务。
于是,我尝试将整个API对接工作流交给一个基于MCP(Model Context Protocol)的Agent。
补全与代理是两回事
以前的工作流是:读Swagger → 手写Interface → 调用Axios → 处理状态 → 运行报错 → 回去检查字段。我是人肉中继。
MCP改变了LLM获取上下文的方式。它不再依赖我把文档复制粘贴到对话框,而是让Agent通过“标准接口”直接访问数据源。我配置了一个Swagger MCP Server,Agent现在可以调用get_endpoint_schema等工具,实时感知后端变更。它不再猜测,而是像同事一样先查文档再写代码。
实战:构建“类型自愈”工作流
我用LangChain MCP搭建了闭环:读取定义 → 生成代码 → 运行验证 → 错误反馈 → 自动修正。
具体步骤:
- 部署Swagger MCP Server:用开源适配器连接项目开发环境。Agent可通过协议直接查询
/api/v1/orders的参数和响应结构。 - 定义Agent工具集:通过LangChain MCP,Agent获得了读取本地.ts文件、执行
npm run build检查错误、以及通过MCP Server获取最新API定义的能力。 - 实现类型自愈循环:这是核心。当Agent生成的代码导致TypeScript编译报错(比如后端把
userId改成user_id),它会捕捉到TS2322错误,触发MCP查询对比差异,然后自动重写接口定义文件。
测试结果:一个复杂的订单详情页API对接,过去需要2小时(沟通、对齐字段、处理null值),现在Agent在8分钟内完成了从类型定义到Zustand状态管理的全流程。效率提升明显,而且它处理403权限拦截这类边界情况比手动更细致。
落地时的真实约束
效率提升背后,也有坑。一个是上下文污染:让Agent一次读取整个Swagger JSON,Token消耗快且容易产生幻觉。得让它按需查询具体Endpoint。
另一个是权限与稳定性。尝试让Agent自动更新数据库相关接口时,遇到了鉴权失效问题。如果MCP Server的权限配置与Agent执行环境不匹配,会导致大量401报错和死循环。
此外,Agent对复杂状态管理逻辑倾向写简单的useState。为了适配公司的Redux Toolkit规范,我必须在System Prompt中强制要求它先调用特定的“架构规范MCP Server”检索项目模式。
从“写代码”到“审代码”
这次重构让我看到角色偏移。当40%的时间不用花在同步API类型和处理undefined报错上时,核心竞争力变成了对业务逻辑的定义能力和对Agent输出的审核能力。
目前的MCP生态还在迭代,但它已经证明:一个能自主访问Swagger、DB、Git等生产工具的Agent,比只能在编辑器里补全单词的Copilot强大。如果你还在手动复制API字段,可以试试搭建一个简单的MCP Server,把重复的同步工作交给代理。