关于 BackendGen
BackendGen 是本地编译器,可将有版本的 YAML 或 JSON 规范转换为经过测试的 NestJS、Prisma 和 PostgreSQL 后端。它面向开发者和 AI 编码 Agent,提供规范校验、变更预览,以及重新生成和破坏性模式变更的保护。
主要功能
- 01校验有版本的 YAML 和 JSON 后端规范
- 02生成 NestJS、Prisma 和 PostgreSQL 项目
- 03生成类型化 TypeScript 客户端和前端契约
- 04预览重新生成的变更并保留自定义文件
- 05运行生成项目的检查与测试
适用场景
- 01根据 Agent 编写的规范构建后端
- 02规范变更后重新生成项目
- 03应用前审查模式变更
- 04向前端 Agent 提供类型化 API 契约
MCP 相关
本地 stdio MCP 服务支持 AI Agent 查询能力、校验规范、预览并生成后端、运行生成项目的测试,以及获取前端交接契约。只有明确请求审查时才会返回迁移 SQL。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
12收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
BackendGen
**BackendGen 是面向 AI 编码 Agent 的确定性后端编译器。**为 Agent 提供精简、带版本的 YAML 或 JSON 规范,它就能生成结构清晰、经过测试的后端,而无需从头臆造数据库模型、权限、API 路由和迁移。
目前,它可以生成 NestJS 11 + Prisma 6 + PostgreSQL 仓库,其中包括类型化的 TypeScript 客户端,以及供前端 Agent 使用的小型 frontend-contract.json。生成的项目不依赖 BackendGen 运行时。
**Alpha 阶段:**BackendGen 已可供设计合作伙伴试用和用于本地项目。用于生产环境前,请审核生成的应用;它尚未完成独立安全审查,也尚未完成三次设计合作伙伴试用。
npm CLI · npm MCP 服务 · 报告问题 · 设计合作伙伴计划
适用场景
当 AI Agent 需要为前端提供真正的后端时,BackendGen 会很有用:
- 建模实体、关系、筛选、排序和分页;
- 添加身份验证、角色、行所有权、组织和租户隔离;
- 生成预订、通知、webhook、持久化任务和上传功能;
- 在编译器管理的代码与应用管理的自定义代码之间保持清晰的边界;
- 规范变更后安全地重新生成,并通过增量迁移和明确的破坏性变更审核关卡进行把控。
BackendGen 不是托管后端服务、部署平台或前端构建器。它在本地运行并生成代码,供开发者或编码 Agent 审核、自定义、测试、部署并连接到前端。
要求
- Node.js 22 或更高版本
- npm 10 或更高版本
- 只有在需要运行生成项目的集成测试时才需要 PostgreSQL
五分钟上手
试用 BackendGen 无需 npm 账户,也无需此仓库。
mkdir backendgen-try
cd backendgen-try
npx -y @2hemi/backendgen init backend.yaml --name team-api
npx -y @2hemi/backendgen validate backend.yaml
npx -y @2hemi/backendgen generate backend.yaml --output ./team-api
cd team-api
npm install
npm test
生成的项目会在安装期间运行 prisma generate,因此首次运行无需单独执行 Prisma 命令。从父目录运行
npx -y @2hemi/backendgen test-generated --output ./team-api --install,即可让 Agent 通过一条有明确边界的编译器命令完成安装、验证、构建和单元测试。
init 会创建一个有效的入门规范。编辑 backend.yaml,然后再次运行 validate 和 generate。重新生成现有项目之前,请使用 diff 预览变更内容:
npx -y @2hemi/backendgen diff backend.yaml --output ./team-api
测试完整的 SaaS 示例
仓库包含从基础 CRUD 到功能齐全的后端规范。这个多租户任务示例是很好的首次测试:
git clone https://github.com/SiTouhemi/Backendgen.git
cd Backendgen
npx -y @2hemi/backendgen validate examples/saas-tasks/backend.yaml
npx -y @2hemi/backendgen generate examples/saas-tasks/backend.yaml --output ./generated/saas-tasks
cd generated/saas-tasks
npm install
npm test
在 examples/README.md 中查看所有示例及其演示内容:
| 示例 | 演示内容 |
|---|---|
| notes API | CRUD、筛选、分页和排序 |
| auth notes | 账户、角色、所有权和身份验证 |
| SaaS tasks | 组织和强制执行的租户隔离 |
| hotel booking | 预订、防止时间重叠和通知 |
| all features | CRUD、身份验证、组织、预订、通知、webhook、任务和上传 |
将其与 AI 编码 Agent 配合使用(MCP)
MCP 包可让 AI Agent 发现受支持的后端功能、验证规范、预览更改、生成后端、运行生成的测试、返回前端交接契约和自定义指南。它还可以说明自定义点。它通过 stdio 在本地运行,无需 BackendGen 账号或网络侦听器。
只有 Agent 明确请求审核时,才会返回迁移 SQL;正常响应中不会包含生成的源代码。
将此服务添加到支持 MCP 的客户端,并且只提供你信任的目录:
{
"mcpServers": {
"backendgen": {
"command": "npx",
"args": ["-y", "@2hemi/backendgen-mcp"],
"env": {
"BACKENDGEN_ALLOWED_ROOTS": "/absolute/path/to/projects"
}
}
}
}
对于 Codex、Claude Code、Cursor、ChatGPT 桌面版、Windows、Lovable Desktop,以及正确的 v0 交接方式,请参阅 docs/AI_BUILDERS.md 中针对各客户端的命令。完整的 MCP 安全和工具参考请参阅 docs/MCP.md。
连接后,可以向 Agent 提出如下请求:
创建一个多租户任务管理后端。首先检查 BackendGen 的功能和相关特性。编写规范、验证规范、预览生成结果、在此项目中生成后端,并运行生成的测试。 将自定义行为保留在文档说明的自定义点中。
生成内容
对于有效的规范,BackendGen 会生成一个独立仓库,其中包含:
- NestJS API、Prisma schema、PostgreSQL 迁移、OpenAPI 配置和测试;
- 根据规范标准化结果生成的端点和权限规则;
- 用于编译器管理代码的
src/generated/,以及用于你自行管理代码的src/custom/; - 记录所有权和哈希值的
.backendgen/manifest.json; frontend-contract.json和供前端 Agent 使用的类型化 TypeScript 客户端。
重新生成时,BackendGen 会保留自定义文件;除非你明确使用 --force,否则不会覆盖已编辑的生成文件;对于具有破坏性或依赖数据的 schema 更改,则要求明确审核。更改线上 schema 前,请阅读
docs/MIGRATIONS.md。
验证与限制
仓库的 CI 会验证编译器、CLI、MCP、安全契约模糊测试、软件包安装和生成项目场景。生成的项目也会在发布测试矩阵中针对 PostgreSQL 进行构建和测试。具体证据请参阅 本地验证记录和 安全契约。
这些证据并不能证明每个生成的应用都适合用于生产环境。你仍需负责审核规范、生成的代码、机密信息、基础设施和部署配置。
当前边界:
- 一个生产目标:NestJS + Prisma + PostgreSQL;
- FastAPI 和其他后端目标不在计划范围内;
- 尚无托管的 BackendGen SaaS 或直接的浏览器 v0 MCP 集成;
- 在配对基准测试得出实际结果前,不要声称可以节省令牌。
文档
| 如果你需要…… | 请阅读 |
|---|---|
| 编写规范 | 规范参考 |
| 了解每项受支持的功能 | 功能包 |
| 连接 AI Agent 或 MCP 客户端 | AI 构建器集成 |
| 自定义生成的项目 | 自定义指南 |
| 安全地重新生成或更改 schema | 迁移指南 |
| 在本地运行测试 | 本地测试 |
| 了解安全边界 | 威胁模型 |
| 参与贡献 | 贡献指南 |
反馈与支持
我们正在寻找愿意在真实的非生产项目中测试 BackendGen 的开发者和 AI 开发者。请提交 issue,并说明:
- 你想构建什么;
- 经过脱敏的
backend.yaml规范; - 你使用的命令或 MCP 客户端;
- 哪些地方运行正常、哪些地方令人困惑,以及你原本期待的结果。
切勿包含 API 密钥、.env 文件、客户私有代码或生产数据库数据。如需报告安全漏洞,请按照 SECURITY.md 中的说明操作,而不要提交公开 issue。完整的支持详情请参阅 SUPPORT.md。
开发
要参与 BackendGen 本身的开发:
npm ci
npm test
npm run test:fuzz:ci
npm run test:e2e
npm run test:distribution
准备发布的维护者可以运行相同的非发布检查:npm run verify:release。基于 PostgreSQL 的执行仍是单独的 npm run verify:local:postgres 工作流,详见本地测试。
BackendGen 根据 Apache-2.0 许可证授权。生成的项目归其用户所有。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。