mcpField
S
seedgen

seedgen

ローカル
github.com/CloudCorpRecords開発ツール01 週間前に更新

seedgen について

seedgenは、再現可能なテスト用フィクスチャやデータベースのシードレコードを生成するローカルツールです。フィールド仕様と数値シードを指定すると、実行環境や実行時期によらず同じレコードを生成します。

主な機能

  1. 01数値シードによる決定的な生成
  2. 027種類のフィールド型
  3. 03範囲・長さ・選択肢・日付の指定
  4. 04宣言順のフィールドを持つJSON出力
  5. 05入力箇所を示す検証エラー

活用シーン

  1. 01再現可能なテスト用フィクスチャの作成
  2. 02開発用データベースのシード行生成
  3. 03CIや複数環境での同一レコード再生成

MCP 対応

MCPサーバーは、シード、レコード数、フィールド仕様を受け取り、生成結果を返す`generate_seed_data`ツールを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-seedgen": {
"command": "npx",
"args": [
"-y",
"@reneturcios/seedgen"
]
}
}
}
起動コマンドnpx -y @reneturcios/seedgen

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/seedgen0.1.0
ocighcr.io/cloudcorprecords/seedgen:0.1.0

ツール

1

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
seedintegerはい固定 PRNG のシード(符号なし32ビット整数)
countintegerはい生成するレコード数(1..1000)
fieldsarrayはい出力順のフィールド仕様(1つ以上)

詳細

seedgen

テストフィクスチャやデータベースのシード行は、手入力(少量で古く、気づかないうちに実態を反映しなくなる)か、ランダム生成(実行するたびに異なるため、失敗したテストを再現できない)になりがちです。seedgen は後者の方法を採りつつ、その欠点を解消します。レコードの形状、つまりフィールド名と型、範囲、長さ、選択肢、日付範囲に加えて、数値のシードを 1 つ指定すると、そのシードが示すレコードを正確に生成します。翌週に別のマシンや CI で再度実行しても、出力は同一です。固定された PRNG(mulberry32)を使い、乱数値を固定された順序で消費するためです。レコードごと、宣言した順序でフィールドごとに処理します。

よくあるフィクスチャのニーズを満たす 7 種類のフィールド型があります。

  • integer — min から max までの整数。両端を含みます(デフォルトは 0 と 100)。
  • number — min から max までの小数(デフォルトは 0 と 1)。小数第 4 位に丸められます。
  • boolean — true または false
  • string — 小文字のアルファベットで構成された length 文字の文字列(デフォルトは 8、最大 64)
  • enum — 指定した values のいずれか
  • email — @example.com の前に 8 文字のローカル部を持つメールアドレス
  • date — from から to までの実在する暦日(両端を含みます。デフォルトの範囲は 2020 年を含みます)。UTC で計算され、YYYY-MM-DD 形式で出力されます。

フィールドの型で使わないプロパティは、拒否されず無視されます。たとえば、boolean フィールドに余分な min を指定しても何も変わりません。不正な入力は検証エラーとなり、問題のあるパスが示されます(例:fields[1].values must be a non-empty array)。該当するものには、符号なし 32 ビット範囲外のシード、1..1000 の範囲外の件数、フィールド名の重複、整数ではない整数型の境界値、逆転した範囲、2021-02-29 のような架空の暦日があります。エラーが発生した場合、何も生成されません。レコードセットの一部だけが生成されることはありません。処理は純粋かつローカルで行われ、ネットワークも設定も必要なく、渡された入力以外のファイルを読み込むこともありません。

CLI

npx @reneturcios/seedgen generate --input args.json
npx @reneturcios/seedgen --version

args.json には引数オブジェクト全体を記述します。

{
  "seed": 42,
  "count": 3,
  "fields": [
    { "name": "id", "type": "integer", "min": 1, "max": 10 },
    { "name": "code", "type": "string", "length": 4 },
    { "name": "active", "type": "boolean" }
  ]
}

生成されたセットは JSON として出力されます。形式は {seed, count, records} で、各レコードには宣言したフィールドが宣言順に格納されます。

{
  "seed": 42,
  "count": 3,
  "records": [
    { "id": 7, "code": "lwre", "active": false },
    { "id": 3, "code": "qwmg", "active": false },
    { "id": 8, "code": "hfnr", "active": false }
  ]
}

終了コード:成功時は 0、実行時エラー(読み取り不能または無効な入力ファイル、無効な入力を含む)時は 1、使用方法のエラー時は 2 です。

MCP サーバー

npx -y @reneturcios/seedgen mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "seedgen": {
      "command": "npx",
      "args": ["-y", "@reneturcios/seedgen", "mcp"]
    }
  }
}
ツール
  • generate_seed_data — フィールド仕様と数値のシードから、決定論的なシードレコードを生成します。

    • seed(integer、必須)— 固定された PRNG に使用する符号なし 32 ビットのシード
    • count(integer、必須)— 生成するレコード数(1..1000)
    • fields(array、必須、1 件以上)— {name, type, ...} オブジェクトで指定するフィールド仕様。name は仕様全体で一意である必要があります。type は integer、number、boolean、string、enum、email、date のいずれかです。残りのプロパティ(min、max、length、values、from、to)は、それらを使用する型の調整に使います。

    {seed, count, records} を返します。

Docker

docker run -i ghcr.io/cloudcorprecords/seedgen
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/seedgen generate --input /w/args.json

開発

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (pure local, no network)
npm run dev     # run the CLI from source

ライセンス

MIT — Copyright (c) 2026 Rene Turcios

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。