What SeedBase does
SeedBase turns a database schema into realistic, synthetic test data, referentially intact and ready in seconds.
Referentially intact
Respects foreign keys, types and constraints. Joins just work.
Synthetic & privacy-friendly
No real people or companies, invented yet realistic data.
Many targets
PostgreSQL, MySQL/MariaDB, SQLite, SQL Server. Export as SQL, CSV, JSON or Parquet, and push to MongoDB, Redis or Elasticsearch.
Reproducible
Fixed seed, identical data. Perfect for stable tests across a team.
Anonymize production data
Auto-detect personal data (PII) and mask it while preserving formats and foreign keys, privacy-friendly, with optional differential privacy.
Consistent subsetting
Pull a foreign-key-complete slice of your real database, a realistic 1% for local or CI.
Time simulation
Growth curves, seasonality, cohorts and churn, data that evolves over time.
Multi-store & streaming
Consistent entities into MongoDB, Redis and Elasticsearch, or stream events live to a webhook.
Three ways to use it
Web app
Import or build a schema, generate datasets, inspect and export them, all in the browser.
CLI
Pull schema and datasets straight into your local database with one command.
AI integration
A Claude Code plugin (skill and MCP server) generates test data right inside your coding assistant.
CLI in 4 steps
The CLI is pull-oriented: schema and datasets live on the platform, you pull them into your local database.
pip install seedbase
seedbase login
seedbase init
seedbase pull all
Everyday examples
seedbase generations # your datasets
seedbase pull all --drop # recreate tables + load data
seedbase pull data --replace # refresh data only
seedbase pull data -g nightly # a specific dataset
seedbase pull all --drop --dry-run # preview without writing
Python SDK & pytest
Programmatic access for scripts and CI, plus a pytest plugin that provides seeded data as a fixture.
from seedbase import SeedbaseClient
client = SeedbaseClient(token="dr_sk_...")
gen = client.generate(project_id, seed=42, wait=True)
data = client.download(gen["id"], fmt="sql")
In a test
def test_orders(seeded_data):
assert seeded_data
Command reference
| seedbase status | Login, plan, project and target DB at a glance. |
| seedbase projects | List your projects. |
| seedbase init | Configure project + target database (.seedbase.json). |
| seedbase generations | List a project's generated datasets. |
| seedbase pull schema | Create the project's tables in the target DB. |
| seedbase pull data | Write a dataset into the target DB. |
| seedbase pull all | Schema + dataset in one step. |
| seedbase generate | Trigger a remote generation (CI/CD). |
| seedbase diff | Show schema changes since the last pull. |
Useful options
| --drop | Drop existing tables first. |
| --replace | Empty tables before inserting (no duplicates). |
| --generation <id|name> | Pick a specific dataset (default: newest). |
| --dry-run | Only show what would happen. |
| --to-file <path> | Write SQL to a file instead of the DB. |
| --quiet / --json | Silent or machine-readable output for scripts. |
AI integration (Claude)
A plugin for Claude Code brings SeedBase into your AI coding assistant as native tools, describe what you need and Claude does the rest. It authenticates with an API key, no CLI install required.
Set up
# create an API key at seedbase.dev, Settings, API keys
# Option 1, hosted, zero install:
claude mcp add-json seedbase '{"type":"http","url":"https://seedbase.dev/mcp","headers":{"Authorization":"Bearer dr_sk_..."}}'
# Option 2, local via npx:
claude mcp add-json seedbase '{"type":"stdio","command":"npx","args":["-y","-p","@seedbase/client","seedbase-mcp"],"env":{"SEEDBASE_API_KEY":"dr_sk_..."}}'
Tools Claude then has
| list_projects | List your SeedBase projects. |
| get_ddl | Get a project's schema as CREATE TABLE (per dialect). |
| generate_test_data | Generate a dataset and return it as SQL. |
Example, you just say
Ready to start?
The free plan covers PostgreSQL and MySQL export plus basic generation.
Create a free account