写一个后端应用,如果既要给前端提供 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
项目还在迭代中, 欢迎大家给出建议和意见!
