SeedBase Test Data

io.github.marcelglaeserPublished by GitHub account marcelglaeserv0.2.2Updated Oct 24, 2026

Generate realistic, FK-consistent synthetic test data for your databases from your AI assistant.

VerifiedStreamable HTTPWeb executableDatabasesDeveloper Tools

Overview

AI-generated overview

SeedBase MCP server that lets an assistant list projects, import schemas and generate foreign-key-consistent synthetic test data as SQL inserts.

What you can do
  • List and create SeedBase projects, showing id, name and database type
  • Import a schema from SQL DDL, INSERT dumps, CSV/TSV, JSON or ORM model code, replacing the current schema
  • Read a project's schema back as CREATE TABLE statements in a chosen SQL dialect
  • Generate a fresh synthetic dataset with optional rows per table and fetch a running generation by id
When to use it
Useful when you need realistic, relationship-preserving test data for a Postgres, MySQL, SQLite or MSSQL database and want an assistant to drive schema import and generation end to end.
Requirements
A SeedBase account and an API key (dr_sk_...) supplied as the SEEDBASE_API_KEY environment variable for the local stdio server, or as an Authorization bearer header for the hosted endpoint. The local option runs through npx and needs Node.js 18+; network access to SeedBase is required.
Before you install
The API key is a secret that grants access to your SeedBase projects; keep it out of shared configs. Importing a schema replaces the project's existing schema, and creating projects or generating data changes state in your SeedBase account. Generated data and schema details are sent to SeedBase's servers.

Installation

In SourceWeft

  1. Open SeedBase Test Data in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.marcelglaeser%2Fseedbase/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "seedbase-test-data": {
      "type": "http",
      "url": "https://seedba.se/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

[Seedbase]

@seedbase/client

[smithery badge]

Generate realistic, relationship-preserving, privacy-safe test data for your databases — and pull it straight into your local or CI database.

Seedbase lives on seedbase.dev: you model (or import) a schema there, generate datasets, and use this package to pull them into Postgres, MySQL, SQLite and more. Schema-aware, foreign-key-correct, reproducible by seed.

This is the Node.js client, a counterpart to the Python SDK.

Install

bash
npm install @seedbase/client

Zero runtime dependencies — pure ESM, built on the native fetch of Node 18+.

Quickstart

js
import { SeedbaseClient } from "@seedbase/client";
// Token from the argument, $SEEDBASE_TOKEN, or ~/.seedbase/config.jsonconst client = new SeedbaseClient({ token: "dr_sk_..." });
// Trigger a generation and wait for it to finishconst 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 server (Claude Code, Claude Desktop & friends)

This package ships seedbase-mcp — a zero-dependency Model Context Protocol server that lets AI assistants generate test data for you. Describe what you need ("fill my Shop project with MySQL test data") and the assistant drives SeedBase end-to-end through five tools:

ToolWhat it does
list_projectsList your SeedBase projects (id, name, database type)
create_projectCreate a new, empty project
import_schemaImport a schema from SQL DDL (raw pg_dump --schema-only works), CSV/JSON or ORM model code
get_ddlGet a project's schema as CREATE TABLE statements, per dialect
generate_test_dataGenerate a fresh FK-consistent dataset and return it as SQL (large results are written to a local file, never truncated)

Hosted (zero install) — point any Streamable-HTTP MCP client at https://seedbase.dev/mcp with an Authorization: Bearer dr_sk_... header:

bash
claude mcp add-json seedbase '{"type":"http","url":"https://seedbase.dev/mcp","headers":{"Authorization":"Bearer dr_sk_..."}}'

Local via Claude Code (stdio):

bash
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):

json
{  "mcpServers": {    "seedbase": {      "command": "npx",      "args": ["-y", "-p", "@seedbase/client", "seedbase-mcp"],      "env": { "SEEDBASE_API_KEY": "dr_sk_..." }    }  }}

Create a free account at seedbase.dev/register (no credit card), then create an API key under Settings → API keys. The free tier is enough to generate full, foreign-key-consistent datasets. The server is stdio-only, talks exclusively to https://seedbase.dev, and stores nothing locally.

Authentication

The token is resolved in this order:

  1. The token option passed to the constructor.
  2. The SEEDBASE_TOKEN environment variable.
  3. The token field in ~/.seedbase/config.json (written by seedbase login).

API keys with the dr_sk_ prefix are sent as Authorization: Bearer ..., other tokens as Authorization: Token .... Get a key at seedbase.dev/settings?tab=api-keys.

API

js
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)});
MethodDescription
listProjects()All datasets/projects (paginated, followed automatically).
getProject(projectId)A single project.
listGenerations(projectId)Generations for a project (paginated).
getGeneration(generationId)A single generation.
generate(projectId, opts)Trigger a generation. opts: { seed, rows, format, rebaseTo, wait, timeout, pollInterval }. With wait: true it polls until the generation reaches completed/failed/cancelled.
download(generationId, { format })Download the generated artifact as a Uint8Array. format defaults to "sql".
seededRows(projectId, { seed, rows })Generate and return the rows as { tableName: [row, ...] }, in foreign-key-safe order.
exportConfig(projectId)The project's engine config as an object.
importConfig(projectId, config)Replace the project's engine config.

All methods are async and return Promises. Failures throw a SeedbaseError (with .statusCode for HTTP errors), carrying a readable message that includes the server's detail or field errors.

js
import { SeedbaseError } from "@seedbase/client";
try {  await client.getProject("missing");} catch (err) {  if (err instanceof SeedbaseError) {    console.error(err.statusCode, err.message);  }}

Prisma seed

Fill a Prisma-managed database with realistic, foreign-key-consistent data, in one call. Your schema must already exist (your prisma migrate owns it); SeedBase only fills it. Free tier.

js
// prisma/seed.tsimport { 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 });

Then run prisma db seed. A runnable demo (offline, no account) is in examples/prisma-seed-demo.mjs.

Links

MIT licensed.

Source: README.md at commit 297782b

Tools

6

list_projects

List projects

List your SeedBase projects (id, name, database type). Use this first to find the project to work with.

Takes no parameters.

get_ddl

Get schema DDL

Get a project's schema as CREATE TABLE statements. Accepts a project id or name and an optional SQL dialect (postgresql, mysql, sqlite, mssql).

Parametersdialectprojectrequired

generate_test_data

Generate test data

Generate a fresh synthetic dataset for a project and return it as SQL INSERT statements. Optionally set rows per table. The data is foreign-key consistent.

Parametersrowsseedprojectrequired

fetch_generation

Fetch generation result

Fetch a previously started generation by id: returns its status, and the SQL INSERT statements once completed. Use this when generate_test_data reported the generation as still running.

Parametersgeneration_idrequired

create_project

Create project

Create a new, empty SeedBase project. Use import_schema afterwards to add the schema.

Parametersnamerequireddb_type

import_schema

Import schema

Import a database schema into a project from pasted content: SQL DDL (CREATE TABLE …, raw pg_dump/mysqldump schema output works), SQL INSERT dumps, CSV/TSV, JSON, or ORM model code (Django, Prisma, SQLAlchemy, …). Replaces the project's current schema.

Parametersformatcontentrequiredprojectrequired

Version history

1
  1. v0.2.2LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts