mcpField
S
SeedBase — Synthetic Test Data

SeedBase — Synthetic Test Data

远程服务
seedba.se数据与分析015 周前更新

关于 SeedBase — Synthetic Test Data

SeedBase 为数据库项目生成了解析架构、可复现的合成测试数据。其 MCP 服务可让 AI 助手导入架构、查看 DDL,并生成符合外键关系的 SQL 数据集。

主要功能

  1. 01列出并创建项目
  2. 02导入 SQL、CSV、JSON 或 ORM 架构
  3. 03按方言获取架构 DDL
  4. 04生成可设种子的外键一致 SQL 数据
  5. 05将大型结果写入本地文件

适用场景

  1. 01为数据库测试准备真实感数据
  2. 02将现有架构导入 SeedBase
  3. 03为开发或 CI 生成可复现数据集

MCP 相关

该包内含 MCP 服务,提供项目列表与创建、架构导入、DDL 获取和测试数据生成等五种工具。它可通过 stdio 本地运行,也可连接托管的 Streamable-HTTP 端点。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://seedba.se/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://seedba.se/mcp需要授权
安装包
npm@seedbase/client0.2.2

工具

6

此工具无需参数。

详细介绍

Seedbase

@seedbase/client

smithery badge

为数据库生成逼真、保留关系且安全保护隐私的测试数据,并将其直接导入本地数据库或 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 测试数据”),助手就会通过五个工具端到端地驱动 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 客户端指向 https://seedbase.dev/mcp,并附带 Authorization: Bearer dr_sk_... 标头:

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 通信,且不会在本地存储任何内容。

身份验证

令牌按以下顺序解析:

  1. 传递给构造函数的 token 选项。
  2. SEEDBASE_TOKEN 环境变量。
  3. ~/.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 seed

一次调用即可向 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。

链接

采用 MIT 许可证。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。