SeedBase Test Data
Generate realistic, FK-consistent synthetic test data for your databases from your AI assistant.
Should I use this
Quality & Safety
Findings (1)
- LOWin fetch_generation
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"seedbase": {
"command": "npx",
"args": [
"@seedbase/client"
]
}
}
}Runnable packages
0.2.2stdioRemote endpoints
https://seedba.se/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢list_projects
List your SeedBase projects (id, name, database type). Use this first to find the project to work with.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"projects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"db_type": {
"type": "string"
}
},
"required": [
"id",
"name",
"db_type"
]
}
}
},
"required": [
"projects"
]
}🟢get_ddl(project, dialect)
Get a project's schema as CREATE TABLE statements. Accepts a project id or name and an optional SQL dialect (postgresql, mysql, sqlite, mssql).
Input Schema
{
"type": "object",
"properties": {
"project": {
"type": "string",
"description": "Project id (UUID) or project name"
},
"dialect": {
"type": "string",
"enum": [
"postgresql",
"mysql",
"sqlite",
"mssql"
],
"description": "SQL dialect for the DDL (default: the project's database type)"
}
},
"required": [
"project"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"ddl": {
"type": "string"
},
"dialect": {
"type": "string"
}
},
"required": [
"ddl",
"dialect"
]
}🟡generate_test_data(project, rows, seed)
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.
Input Schema
{
"type": "object",
"properties": {
"project": {
"type": "string",
"description": "Project id (UUID) or project name"
},
"rows": {
"type": "integer",
"minimum": 1,
"description": "Rows per table (optional; plan limits apply)"
},
"seed": {
"type": "integer",
"description": "Seed for deterministic output (optional)"
}
},
"required": [
"project"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"completed",
"running"
]
},
"generation_id": {
"type": "string"
},
"sql": {
"type": "string",
"description": "Complete SQL INSERTs. Absent when the result is too large — download it from download_url instead; no partial SQL is ever returned."
},
"truncated": {
"type": "boolean",
"description": "True when the SQL was too large to inline. The response then contains NO sql; fetch the complete file from download_url."
},
"download_url": {
"type": "string",
"description": "Authenticated download endpoint for the complete SQL (send your API key as 'Authorization: Bearer …')."
},
"sql_chars": {
"type": "integer"
}
},
"required": [
"status",
"generation_id"
]
}🟢fetch_generation(generation_id)
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.
Input Schema
{
"type": "object",
"properties": {
"generation_id": {
"type": "string",
"description": "The generation id (UUID) reported by generate_test_data"
}
},
"required": [
"generation_id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"completed",
"running"
]
},
"generation_id": {
"type": "string"
},
"sql": {
"type": "string",
"description": "Complete SQL INSERTs. Absent when the result is too large — download it from download_url instead; no partial SQL is ever returned."
},
"truncated": {
"type": "boolean",
"description": "True when the SQL was too large to inline. The response then contains NO sql; fetch the complete file from download_url."
},
"download_url": {
"type": "string",
"description": "Authenticated download endpoint for the complete SQL (send your API key as 'Authorization: Bearer …')."
},
"sql_chars": {
"type": "integer"
}
},
"required": [
"status",
"generation_id"
]
}🟡create_project(name, db_type)
Create a new, empty SeedBase project. Use import_schema afterwards to add the schema.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Project name"
},
"db_type": {
"type": "string",
"enum": [
"postgresql",
"mysql",
"sqlite",
"mssql"
],
"description": "Target database type (default: postgresql)"
}
},
"required": [
"name"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"db_type": {
"type": "string"
}
},
"required": [
"id",
"name",
"db_type"
]
}🔴import_schema(project, content, format)
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.
Input Schema
{
"type": "object",
"properties": {
"project": {
"type": "string",
"description": "Project id (UUID) or project name"
},
"content": {
"type": "string",
"description": "The schema source text (e.g. the DDL)"
},
"format": {
"type": "string",
"description": "Optional hint: sql, csv, tsv, json, or an ORM name (django, prisma, sqlalchemy, …). Auto-detected when omitted."
}
},
"required": [
"project",
"content"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"table_count": {
"type": "integer"
},
"fk_count": {
"type": "integer"
},
"tables": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"table_count",
"fk_count"
]
}Community
Evidence