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.

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.
SeedBase MCP server that lets an assistant list projects, import schemas and generate foreign-key-consistent synthetic test data as SQL inserts.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
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.Add this to your client's mcpServers config.
{
"mcpServers": {
"seedbase-test-data": {
"type": "http",
"url": "https://seedba.se/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}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.
Zero runtime dependencies — pure ESM, built on the native fetch of Node 18+.
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:
Hosted (zero install) — point any Streamable-HTTP MCP client at
https://seedbase.dev/mcp with an Authorization: Bearer dr_sk_... header:
Local via Claude Code (stdio):
Claude Desktop (claude_desktop_config.json):
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.
The token is resolved in this order:
token option passed to the constructor.SEEDBASE_TOKEN environment variable.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.
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.
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.
Then run prisma db seed. A runnable demo (offline, no account) is in
examples/prisma-seed-demo.mjs.
MIT licensed.
Source: README.md at commit 297782b
List projects
List your SeedBase projects (id, name, database type). Use this first to find the project to work with.
Takes no parameters.
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).
dialectprojectrequiredGenerate 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.
rowsseedprojectrequiredFetch 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.
generation_idrequiredCreate project
Create a new, empty SeedBase project. Use import_schema afterwards to add the schema.
namerequireddb_typeImport 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.
formatcontentrequiredprojectrequired100% 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.
npm install @seedbase/clientimport { 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);claude mcp add-json seedbase '{"type":"http","url":"https://seedbase.dev/mcp","headers":{"Authorization":"Bearer dr_sk_..."}}'claude mcp add-json seedbase '{"type":"stdio","command":"npx","args":["-y","-p","@seedbase/client","seedbase-mcp"],"env":{"SEEDBASE_API_KEY":"dr_sk_..."}}'{ "mcpServers": { "seedbase": { "command": "npx", "args": ["-y", "-p", "@seedbase/client", "seedbase-mcp"], "env": { "SEEDBASE_API_KEY": "dr_sk_..." } } }}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)});import { SeedbaseError } from "@seedbase/client";
try { await client.getProject("missing");} catch (err) { if (err instanceof SeedbaseError) { console.error(err.statusCode, err.message); }}// 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 });