SeedBase — Synthetic Test Data について
SeedBaseは、データベースプロジェクト向けにスキーマを考慮した再現可能な合成テストデータを生成します。MCPサーバーを介して、AIアシスタントがスキーマの取り込み、DDLの確認、外部キー整合性のあるSQLデータセットの生成を行えます。
主な機能
- 01プロジェクトの一覧表示と作成
- 02SQL、CSV、JSON、ORMスキーマの取り込み
- 03方言別のスキーマDDL取得
- 04シード指定可能な外部キー整合データ生成
- 05大きな結果をローカルファイルに出力
活用シーン
- 01データベーステスト用の現実的なデータ準備
- 02既存スキーマのSeedBaseへの取り込み
- 03開発やCI向けの再現可能なデータセット生成
MCP 対応
このパッケージには、プロジェクトの一覧・作成、スキーマの取り込み、DDL取得、テストデータ生成を行う5つのツールを備えたMCPサーバーが含まれます。stdioでローカル実行する方法と、ホストされたStreamable-HTTPエンドポイントへの接続方法があります。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://seedba.se/mcpclaude mcp add --transport http seedbase-node https://seedba.se/mcp{"mcpServers":{"seedbase-node":{"type":"http","url":"https://seedba.se/mcp"}}}Cursor で開く{"servers":{"seedbase-node":{"type":"http","url":"https://seedba.se/mcp"}}}VS Code で開く{"mcpServers":{"seedbase-node":{"type":"http","url":"https://seedba.se/mcp"}}}{"mcpServers":{"seedbase-node":{"serverUrl":"https://seedba.se/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://seedba.se/mcp認証が必要ツール
6このツールにパラメーターはありません。
詳細
@seedbase/client
データベース向けに、現実的で、リレーションシップを維持し、プライバシーに配慮したテストデータを生成し、ローカルまたは CI のデータベースに直接取り込めます。
Seedbase は seedbase.dev で利用できます。そこでスキーマを作成(またはインポート)してデータセットを生成し、このパッケージを使って Postgres、MySQL、SQLite などに取り込みます。スキーマを認識し、外部キーを正しく保ち、シード値によって再現できます。
これは Node.js クライアントで、Python SDK に相当するものです。
インストール
npm install @seedbase/client
実行時の依存関係はゼロです。純粋な ESM で、Node 18 以降のネイティブな fetch を使用しています。
クイックスタート
import { SeedbaseClient } from "@seedbase/client";
// Token from the argument, $SEEDBASE_TOKEN, or ~/.seedbase/config.json
const client = new SeedbaseClient({ token: "dr_sk_..." });
// Trigger a generation and wait for it to finish
const gen = await client.generate(projectId, { seed: 42, wait: true });
// Download the result (Uint8Array)
const bytes = await client.download(gen.id, { format: "sql" });
import { writeFile } from "node:fs/promises";
await writeFile("dump.sql", bytes);
MCP サーバー(Claude Code、Claude Desktop など)
このパッケージには seedbase-mcp が含まれています。これは依存関係ゼロの Model Context Protocol
サーバーで、AI アシスタントがテストデータを生成できるようにします。必要なデータを説明するだけで(「Shop プロジェクトに MySQL のテストデータを入力して」など)、アシスタントが 5 つのツールを通じて SeedBase を最初から最後まで操作します。
| ツール | 機能 |
|---|---|
list_projects | SeedBase プロジェクト(ID、名前、データベースの種類)を一覧表示します |
create_project | 空の新規プロジェクトを作成します |
import_schema | SQL DDL(生の pg_dump --schema-only が使用可能)、CSV/JSON、または ORM モデルコードからスキーマをインポートします |
get_ddl | プロジェクトのスキーマを、方言ごとの CREATE TABLE 文として取得します |
generate_test_data | 新しい外部キー整合性のあるデータセットを生成し、SQL として返します(大きな結果は切り詰めず、ローカルファイルに書き込みます) |
ホスト型(インストール不要) — 任意の Streamable-HTTP MCP クライアントから、
Authorization: Bearer dr_sk_... ヘッダーを指定して
https://seedbase.dev/mcp に接続します。
claude mcp add-json seedbase '{"type":"http","url":"https://seedbase.dev/mcp","headers":{"Authorization":"Bearer dr_sk_..."}}'
Claude Code でローカル実行(stdio):
claude mcp add-json seedbase '{"type":"stdio","command":"npx","args":["-y","-p","@seedbase/client","seedbase-mcp"],"env":{"SEEDBASE_API_KEY":"dr_sk_..."}}'
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"seedbase": {
"command": "npx",
"args": ["-y", "-p", "@seedbase/client", "seedbase-mcp"],
"env": { "SEEDBASE_API_KEY": "dr_sk_..." }
}
}
}
seedbase.dev/register で無料アカウントを作成します(クレジットカード不要)。その後、Settings → API keys から API キーを作成してください。無料プランで、外部キー整合性のある完全なデータセットを生成できます。サーバーは stdio 専用で、https://seedbase.dev とのみ通信し、ローカルには何も保存しません。
認証
トークンは次の順序で解決されます。
- コンストラクターに渡された
tokenオプション。 SEEDBASE_TOKEN環境変数。~/.seedbase/config.jsonのtokenフィールド(seedbase loginによって書き込まれます)。
dr_sk_ プレフィックスの API キーは Authorization: Bearer ... として送信され、それ以外のトークンは Authorization: Token ... として送信されます。キーは
seedbase.dev/settings?tab=api-keys で取得できます。
API
new SeedbaseClient({
token, // optional, see resolution order above
apiUrl, // default "https://seedbase.dev/api/v1" (https enforced, http only for localhost)
configPath, // override ~/.seedbase/config.json
requestTimeout, // per-request timeout in ms, default 30000
fetch, // inject a custom fetch (e.g. for tests)
});
| メソッド | 説明 |
|---|---|
listProjects() | すべてのデータセット/プロジェクトを取得します(ページネーションに対応し、自動的に続きも取得します)。 |
getProject(projectId) | 単一のプロジェクトを取得します。 |
listGenerations(projectId) | プロジェクトの生成結果を取得します(ページネーションに対応)。 |
getGeneration(generationId) | 単一の生成結果を取得します。 |
generate(projectId, opts) | 生成を開始します。opts:{ seed, rows, format, rebaseTo, wait, timeout, pollInterval }。wait: true の場合、生成結果が completed/failed/cancelled になるまでポーリングします。 |
download(generationId, { format }) | 生成された成果物を Uint8Array としてダウンロードします。format の既定値は "sql" です。 |
seededRows(projectId, { seed, rows }) | 行を { tableName: [row, ...] } として生成して返します。順序は外部キーに安全なものです。 |
exportConfig(projectId) | プロジェクトのエンジン設定をオブジェクトとして取得します。 |
importConfig(projectId, config) | プロジェクトのエンジン設定を置き換えます。 |
すべてのメソッドは非同期で、Promise を返します。失敗すると SeedbaseError(HTTP エラーの場合は .statusCode を含む)がスローされ、サーバーの detail またはフィールドエラーを含む、わかりやすいメッセージが返されます。
import { SeedbaseError } from "@seedbase/client";
try {
await client.getProject("missing");
} catch (err) {
if (err instanceof SeedbaseError) {
console.error(err.statusCode, err.message);
}
}
Prisma シード
Prisma が管理するデータベースに、外部キーの整合性が保たれた現実的なデータを一度の呼び出しで投入します。スキーマはすでに存在している必要があります(スキーマの管理は prisma migrate が担当します)。SeedBase はデータの投入のみを行います。無料プランがあります。
// prisma/seed.ts
import { PrismaClient } from "@prisma/client";
import { SeedbaseClient } from "@seedbase/client";
import { seedPrisma } from "@seedbase/client/prisma";
const prisma = new PrismaClient();
const client = new SeedbaseClient({ token: process.env.SEEDBASE_TOKEN });
await seedPrisma(prisma, client, { project: process.env.SEEDBASE_PROJECT, seed: 42 });
続いて prisma db seed を実行してください。実行可能なデモ(オフラインで利用でき、アカウントは不要)は examples/prisma-seed-demo.mjs にあります。
リンク
- ウェブサイト:https://seedbase.dev
- ドキュメント:https://seedbase.dev/docs
- API キー:https://seedbase.dev/settings?tab=api-keys
MIT ライセンスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。