Trae IDE 读取并解析接口文档:trae-swagger-mcp 插件开发分享

trae-swagger-mcp 插件开发分享

背景

针对 Trae IDE 无法直接解析 JSON 文件、且仅 DouBao 模型支持图片理解的限制,所以开发了本工具

其实上传接口文档的截图,让 AI 解析图片上的内容也十分方便,但是我想要解析完成的内容能直接帮我用Ant Design 表格组件完成页面开发,需要满足0个错别字的要求,截图有点难以实现。而且公司项目的某些接口,后端返回的业务字段经常都20、30个,长截图起来也很麻烦

其实市面上也有相应的工具:vite-plugin-swagger-mcp,但是公司部分项目还是用的webpack,这个也就不适用了

介绍

最初的设计思路,是想实现自动化文档获取(自动登录、接口搜索与解析文档)并用 Ant Design 表格展示返回的字段。但由于 Swagger + Knife4j 采用 Alert 弹窗登录方式(非 Token 认证),自动化登录难以实现

目前的实现是采用手动导入 JSON 文档的方式,确保安全性与稳定性:用户只需登录接口文档平台,导出 JSON 数据并粘贴至指定位置,即可通过 Trae IDE 智能体便捷查询接口信息,大大提升开发效率,也是这个实现恰巧兼容了 Yapi、Apifox 还有其它接口文档的解析,因为实现思路都是大差不差的

实现

其实10月份的时候就已经做的七七八八了,但是不是特别"智能",get请求、post请求参数都解析不明白。更别说post请求有分好多种 Content Type,智能体也不是很理解文档的结构

分享一下实现思路,还有踩坑的地方

Github源码:https://github.com/QianYin-Zhou/trae-swagger-mcp

一、生成简单的MCP Server

直接跟 Trae AI 说创建一个 MCP Server 项目,想让它读取根目录的 swagger-doc.json 文件,简单解析这个文件的大致内容和文件大小

开发 MCP 工具主要是这个依赖:@modelcontextprotocol/sdk

json 复制代码
{
  "name": "trae-swagger-mcp",
  "version": "1.0.0",
  "description": "trae-swagger-mcp 是一款基于 Trae IDE 的 MCP 工具,专为解析和处理接口文档而设计",
  "type": "module",
  "main": "swagger-reader.js",
  "scripts": {
    "test": "node swagger-reader-test.js",
    "start:reader": "node swagger-reader.js",
    "start:server": "node swagger-server.js"
  },
  "keywords": [],
  "author": "cissy <2405071403@qq.com>",
  "license": "ISC",
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.20.0",
    "express-basic-auth": "^1.2.1",
    "node-fetch": "^3.3.2",
    "zod": "^3.25.76"
  }
}

二、跑通流程

Trae IDE再新建一个项目或者直接用公司项目,先打开设置

选择 "手动添加" 自己开发的 MCP Server,可参考以下配置:

bash 复制代码
{
  "mcpServers": {
    "swagger-reader": {
      "command": "node",
      "args": [
        "D:/newer/trae-swagger-mcp/swagger-reader.js"
      ]
    }
  }
}

这里 swagger-reader 为工具名称,args 必须填写绝对路径才能确保在任何项目中都能正常使用。

配置效果:

添加完工具之后,还要去添加智能体

输入对话

bash 复制代码
AAASwagger专家,请阅读文档,给输出文档的大致内容、文档的大小

没问题的话就是完全跑通了

三、不断调整

确认流程能跑通之后,专注工具的开发。工具开发的核心思路就是:让 Trae 能够"理解"你的 API 接口数据结构

再建一个 swagger-reader-test.js 文件,用控制台测试输出的文本,这样就不需要老是切项目

这个"翻译"过程可以让 AI 反复修改,一直到能让它:无论复制哪个接口,什么请求,请求参数含有对象嵌套对象、响应体含有对象嵌套对象再嵌套对象,也能列出前端开发所需要的数据

效果

示例:请求参数是一个对象,这个对象嵌套了对象

接口文档,不论 yapi 还是 swagger,还是apifox ,一般都能将文档导出为 json 格式

输入对话

bash 复制代码
AAASwagger专家,请阅读文档,当前请求接口名称是什么,需要什么请求参数,是什么content type

对话效果

这里完全是一一对应的,没有错别字,再多训练训练,让它把字段处理一下,开发也能更高效。甚至也能让它可视化输出

让上面返回的接口信息,搭配组件一起使用。比如 xxx列表接口信息转成Ant Design Vue 表格组件所需的列配置

其它的 Descriptions 描述列表组件也行!


进阶

如果还想提高效率,可以配置单个项目的规则。不清楚别的IDE有没有这个功能,反正在Trae IDE中,项目规则的意思是:

在项目中创建 .trae/rules/project_rules.md 文件定义 TRAE 在当前项目中对话时需要遵循的规则。

就是一个 Markdown 文件

比如让它把接口加在 src\api\urls.js 文件上,输入对话:

bash 复制代码
AAASwagger专家,你已经把文档解析的特别棒了。我第一次用Trae IDE我想知道 `project_rules.md`  这个rules我该怎么写?

需求:现在读取解析文档做得特别好,但是我得把解析完的东西放在我的项目代码上,比如当前的接口:"/ut/lock/add" 
接口,判断有没有存在  `src\api\urls.js` 的 rfidUrl 上,没有的话,要帮我加上去,顺便要加一条中文注释在上方

我想把上面的需求固定成一句话,我怎么去写 `project_rules.md` 这个文件?

继续训练,让它判断重复的同时,告诉我哪里重复,对话

bash 复制代码
继续优化规则文档,有些场景,比如:"AAASwagger专家,给我返回请求参数,并且把接口信息添加到 projectUrl 上", 但是 lockUrl 已存在了这个接口,这时候你要跟我说"不允许添加在projectUrl ,在 lockUrl 存在接口。请不要重复添加,请引用 lockUrl "

最终的Trae Rules 规则示例:

总结

AI 就是一张白纸,需要很细致地教它怎么读懂文档。简单它能懂,但是复杂的还是要疯狂写注释,让它读懂;输出过程中,如果它犯错,要纠正,然后优化项目规则让它永远记住!很好,今天周五,祝大家训"狗"愉快!

相关推荐
张人玉2 小时前
高德API精讲系——vue+高德API搭建前端环境页面
前端·javascript·vue.js·高德api
「QT(C++)开发工程师」2 小时前
Atollic TrueSTUDIO for STM32 9.3.0 是一款专为 STM32 微控制器 设计的集成开发环境(IDE)
ide·stm32·嵌入式硬件
微祎_2 小时前
Flutter 2025 测试体系全景:从单元测试到 E2E,构建高可靠、高覆盖率的自动化质量保障网
flutter·单元测试·自动化
yaocheng的ai分身2 小时前
【转载】大规模的 code review 已经失效。这是我们修复它的方法。
ai编程
yaocheng的ai分身8 小时前
【转载】我们在大型开源项目上对 7 个 AI 代码审查工具进行了基准测试。以下是结果。
ai编程
yaocheng的ai分身8 小时前
【转载】为什么我们选择GPT-5.2作为Augment Code Review的模型
ai编程
PineappleCoder10 小时前
性能数据别再瞎轮询了!PerformanceObserver 异步捕获 LCP/CLS,不卡主线程
前端·性能优化
PineappleCoder10 小时前
告别字体闪烁 / 首屏卡顿!preload 让关键资源 “高优先级” 提前到
前端·性能优化
realhuizhu11 小时前
拿着顶级服务器跑慢查询,就像开着法拉利送外卖
ai编程·sql优化·后端开发·数据库性能·deepseek