BackendGen について
BackendGenは、バージョン付きのYAMLまたはJSON仕様から、テスト済みのNestJS、Prisma、PostgreSQLバックエンドを生成するローカルコンパイラーです。開発者やAIコーディングエージェント向けに、仕様検証、変更プレビュー、再生成や破壊的なスキーマ変更への保護を提供します。
主な機能
- 01バージョン付きYAML・JSONバックエンド仕様の検証
- 02NestJS、Prisma、PostgreSQLリポジトリの生成
- 03型付きTypeScriptクライアントとフロントエンド契約の生成
- 04再生成の変更プレビューとカスタムファイルの保持
- 05生成プロジェクトのチェックとテスト実行
活用シーン
- 01エージェント作成の仕様からバックエンドを構築
- 02仕様変更後のプロジェクト再生成
- 03適用前のスキーマ変更レビュー
- 04型付きAPI契約のフロントエンドエージェントへの受け渡し
MCP 対応
ローカルのstdio MCPサーバーにより、AIエージェントは機能の確認、仕様検証、バックエンドのプレビューと生成、生成テストの実行、フロントエンド連携契約の取得を行えます。マイグレーションSQLは、レビュー用に明示的に要求された場合のみ返されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @2hemi/backendgen-mcpBACKENDGEN_ALLOWED_ROOTSOptional list of filesystem roots BackendGen may read and write, separated by ';' (or ':' between POSIX absolute paths).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
12掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
BackendGen
BackendGen は、AI コーディングエージェント向けの決定論的なバックエンドコンパイラーです。 コンパクトでバージョン管理された YAML または JSON の仕様をエージェントに渡すと、データベースモデル、権限、API ルート、マイグレーションを一から考案する代わりに、構造化されテスト済みのバックエンドを生成できます。
現在は、型付きの TypeScript クライアントと、フロントエンドエージェントが利用する小さな frontend-contract.json を含む NestJS 11 + Prisma 6 + PostgreSQL リポジトリを生成します。生成されたプロジェクトは、BackendGen のランタイム依存関係を必要としません。
アルファ版の状況: BackendGen は、設計パートナーとの試用やローカルプロジェクトで利用できる段階です。本番環境で使用する前に生成されたアプリケーションをレビューしてください。独立したセキュリティレビューと、設計パートナーとの 3 回の試用はまだ完了していません。
npm CLI · npm MCP サーバー · 問題を報告 · 設計パートナープログラム
用途
AI エージェントがフロントエンドの背後に実際のバックエンドを必要とする場合に、BackendGen が役立ちます。
- エンティティ、リレーション、フィルター、並べ替え、ページネーションをモデル化します。
- 認証、ロール、行の所有権、組織、テナント分離を追加します。
- 予約、通知、Webhook、永続ジョブ、アップロードを生成します。
- コンパイラーが管理するコードと、アプリケーションが管理するカスタムコードの境界を明確に保ちます。
- 仕様の変更後に安全に再生成します。増分マイグレーションを行い、破壊的変更には明示的なレビューゲートを設けます。
BackendGen は、ホスト型バックエンドサービス、デプロイプラットフォーム、フロントエンドビルダーではありません。ローカルで実行し、開発者やコーディングエージェントがレビュー、カスタマイズ、テスト、デプロイし、フロントエンドに接続できるコードを生成します。
要件
- Node.js 22 以降
- npm 10 以降
- 生成されたプロジェクトの統合テストを実行する場合のみ PostgreSQL
5 分で試す
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 を使うと、エージェントは 1 つの制約付きコンパイラーコマンドでインストール、検証、ビルド、ユニットテストを実行できます。
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 コーディングエージェントで使用する(MCP)
MCP パッケージを使うと、AI エージェントは対応するバックエンド機能を確認し、仕様を検証し、変更をプレビューし、バックエンドを生成し、生成されたテストを実行して、フロントエンドへの引き継ぎ契約とカスタマイズのガイダンスを返せます。カスタマイズできる箇所について説明することもできます。stdio 経由でローカル実行されるため、BackendGen アカウントもネットワークリスナーも必要ありません。
マイグレーション SQL は、エージェントがレビューのために明示的に要求した場合にのみ返されます。通常の応答では、生成されたソースコードは省略されます。
信頼できるディレクトリのみを指定して、このサーバーを MCP 対応クライアントに追加してください。
{
"mcpServers": {
"backendgen": {
"command": "npx",
"args": ["-y", "@2hemi/backendgen-mcp"],
"env": {
"BACKENDGEN_ALLOWED_ROOTS": "/absolute/path/to/projects"
}
}
}
}
Codex、Claude Code、Cursor、ChatGPT desktop、Windows、Lovable Desktop、および正しい v0 引き継ぎの手順については、docs/AI_BUILDERS.md にあるクライアント固有のコマンドを参照してください。MCP のセキュリティとツールに関する完全なリファレンスは、docs/MCP.md を参照してください。
接続したら、次のようなリクエストをエージェントに送ります。
マルチテナントのタスク管理バックエンドを作成してください。まず BackendGen の機能と関連する機能パックを確認してください。仕様を作成して検証し、生成内容をプレビューしてから、このプロジェクト内に生成し、生成されたテストを実行してください。カスタム動作は、ドキュメントに記載されたカスタマイズ箇所に実装してください。
生成されるもの
有効な仕様を指定すると、BackendGen は次の内容を含む独立したリポジトリを生成します。
- NestJS API、Prisma スキーマ、PostgreSQL マイグレーション、OpenAPI の設定、テスト。
- 正規化された仕様に基づく、生成済みエンドポイントと権限ルール。
- コンパイラーが管理するコード用の
src/generated/と、ユーザーが管理するコード用のsrc/custom/。 - 所有権とハッシュを記録する
.backendgen/manifest.json。 - フロントエンドエージェント向けの
frontend-contract.jsonと型付き TypeScript クライアント。
再生成時、BackendGen はカスタムファイルを保持し、--force を明示的に指定しない限り編集済みの生成ファイルの上書きを拒否します。また、破壊的なスキーマ変更やデータに依存するスキーマ変更には、明示的なレビューが必要です。稼働中のスキーマを変更する前に、docs/MIGRATIONS.md をお読みください。
検証と制限
このリポジトリの CI では、コンパイラー、CLI、MCP、セキュリティ契約のファジング、パッケージのインストール、生成されたプロジェクトの各シナリオを検証します。また、リリーステストマトリックスでは、生成されたプロジェクトを PostgreSQL に対してビルドおよびテストします。具体的な検証内容については、ローカル検証記録とセキュリティ契約を参照してください。
この検証結果は、生成されたすべてのアプリケーションが本番環境で安全であることを証明するものではありません。仕様、生成コード、シークレット、インフラストラクチャ、デプロイ設定をレビューする責任は、引き続きユーザーにあります。
現在の制限:
- 本番環境向けのターゲットは NestJS + Prisma + PostgreSQL の 1 つです。
- FastAPI やその他のバックエンドターゲットは、意図的に対象外としています。
- BackendGen のホステッド SaaS と、ブラウザー版 v0 との直接的な MCP 連携はまだありません。
- ペアベンチマークで実際の結果が得られるまでは、トークン削減を主張しないでください。
ドキュメント
| 必要な内容 | 参照先 |
|---|---|
| 仕様を作成する | 仕様リファレンス |
| 対応機能を確認する | 機能パック |
| AI エージェントまたは MCP クライアントを接続する | AI ビルダー連携 |
| 生成されたプロジェクトをカスタマイズする | カスタマイズガイド |
| スキーマを安全に再生成または変更する | マイグレーションガイド |
| テストをローカルで実行する | ローカルテスト |
| セキュリティ上の境界を確認する | 脅威モデル |
| 貢献する | 貢献ガイド |
フィードバックとサポート
実際の非本番プロジェクトで BackendGen をテストしてくださる開発者や AI ビルダーを募集しています。以下の情報を添えて、issue を作成してください。
- 作成しようとしていたもの
- サニタイズ済みの
backend.yaml仕様 - 使用したコマンドまたは MCP クライアント
- うまくいったこと、わかりにくかったこと、代わりにどのような動作を期待していたか
API キー、.env ファイル、非公開の顧客コード、本番データベースのデータは絶対に含めないでください。セキュリティ脆弱性については、公開 issue を作成せず、SECURITY.md の手順に従ってください。サポートの詳細は 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。