NexusX:定义一次模型,自动生成 REST + MCP

5 月 22 日
 tangkikodo

写一个后端应用,如果既要给前端提供 REST API ,又要给 AI Agent 提供 MCP 接口,通常的做法是维护两套接口定义。同样的业务逻辑写两遍,同样的参数校验写两遍,同样的类型定义维护两遍。改一个字段名要同步改两个地方, 费时费力

nexusx 的做法不同。你使用内置的 skill 聊需求和设计, 他会用 SQLModel 定义实体和关系,然后框架自动生成 GraphQL 、REST 和 MCP 三种协议接口。一个 Service 类和方法定义,同时服务前端 HTTP 请求和 AI Agent 的 MCP 调用。改模型定义,三种协议自动同步。

它的工作方式是这样的:实体定义就是普通的 SQLModel ,加上 @query 和 @mutation 装饰器标记查询和变更方法。然后 DefineSubset 声明 DTO ,框架自动处理数据加载和 N+1 问题。最后一行代码生成 REST 路由或 MCP 服务。

它内置的申明式数据构建能力, 可以写出清晰明了的数据结构, 借助 pydantic 的能力, 在 MCP 中可以提供详尽的信息方便 LLM 去判断。

它的 MCP 能力有被精心设计, 使用渐进披露的方式, 一方面节省 context , 另一方面接口提供了详尽的信息描述,docstring 到 field description 以及 field type 都能被 LLM 感知到。 还支持了 selection 功能避免返回过大的 reponse 浪费 context 。

项目的 skill 文件注册到 Claude Code 后,可以用自然语言描述业务需求,AI 自动执行四阶段流程:澄清需求、生成 SQLModel 和数据库初始化、填充查询方法、生成 DTO 和 REST 接口。生成的代码不是一次性模板,而是可以直接演进的产品代码。

对于想要快速构建一个同时支持 REST 和 MCP 、并且代码结构清晰好维护的后端应用来说,这个模式值得看看。

它甚至内置了一套 GraphQL 接口, 可以方便的查看持久层的数据

GitHub: https://github.com/allmonday/sqlmodel-nexus

项目还在迭代中, 欢迎大家给出建议和意见!

958 次点击
所在节点    程序员
1 条回复
xitler
5 月 22 日
那我直接 monorepo ,里面放了前后端不就行了吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1214601

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX