Bash fake data generator exposed as MCP server with 40+ tools for generating realistic test data across scalar, record, ecommerce, CRM, geo, finance, and DevOps domains
38 tools with consistent naming (seed_* prefix) and basic descriptions. All tools have input schemas with types and defaults. However, descriptions are uniformly terse (10-80 chars, well below the 194-char baseline), parameter descriptions lack detail on constraints/formats, and output schemas are entirely undocumented. No error handling guidance, no recovery paths, and no indication of what fields agents should expect from bash subprocess responses. Tools are read-only (good) but lack the depth needed for confident LLM selection and chaining.
Generate CRM activities: type (call/email/meeting), contact_email, activity_date, notes.
Generate US addresses: street, city, state, zip, country.
Generate prefixed 32-char hex API keys. Default prefix: sk_. Override with prefix param (e.g. 'pk_live_'). Does not support format.
Generate true/false values.
Generate shopping carts with embedded items. items = items per cart (default 3, max 10). sql format not supported.
Generate product categories: name, slug, parent_category.
Generate company records with flat address fields.
Output schemas completely undocumented. Tools return raw bash stdout (strings) with no indication of structure, field names, or format. LLMs cannot plan downstream tool calls or extract specific fields without guessing.
Descriptions are uniformly terse (10 - 80 chars, avg ~45). Baseline is 194 chars. Descriptions lack WHEN to use, WHAT is returned, and dependencies. E.g., 'Generate full names' does not explain output format (newline-delimited? JSON? CSV?).
Parameter descriptions lack format/constraint details. E.g., 'from_date' says 'Start date in YYYY-MM-DD format' but does not explain what happens if omitted, whether null is valid, or if dates must be in the past. No min/max for count or items parameters.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Generate CRM contacts: name, email, phone, company, title.
Generate worldwide latitude/longitude pairs. lat/lng have 4 decimal places.
Generate country records: 2-letter ISO code, name, region (Europe/Asia/Americas/Africa/Oceania/Middle East).
Generate coupons: code, discount_type (pct/fixed), value, expires_at.
Generate Luhn-valid credit cards: type (Visa/Mastercard/Amex/Discover), number, expiry (MM/YY), cvv.
Generate records from a .seed schema file. schema = name (auto-discovers tests/fixtures/<name>.seed) or file path.
Generate ISO 8601 dates. from_date/to_date constrain range (YYYY-MM-DD). Default: 2000-01-01 to today.
Generate database credentials: host, port, database, username, password.
Generate deals: title, value, stage, close_date, owner.
Generate directory path strings (newline-delimited). Default: 10.
Generate email addresses (firstname.lastname@domain).
Generate error log records with stack traces: timestamp, level (ERROR/FATAL), service, error_code, message, stack_trace (JSON/KV only), request_id.
Generate realistic filenames (newline-delimited). Default: 10.
Generate first names.
Generate IPv4 addresses.
Generate last names.
Generate leads: contact fields + source, status, score.
Generate structured log records: timestamp, level (DEBUG/INFO/WARN/ERROR), service, message, request_id.
Generate lorem ipsum text. words and sentences are mutually exclusive. Default: 1 sentence.
Generate title-cased two-word menu labels (newline-delimited). Default: 10.
Generate full names (first + last).
Generate notes linked to a contact or deal: body, author, created_at, linked_type, linked_id.
Generate random integers. Default range: 1–100 inclusive.
Generate orders: order_id, customer_email, status, total, created_at.
Generate order items: order_id, product_sku, name, qty, unit_price, line_total (derived).
Generate US phone numbers in NNN-NNN-NNNN format.
Generate products: name, sku, price, category, description, stock_qty.
Generate tags: name, color (hex).
Generate HTTPS URLs with a domain and single path segment.
Generate user profiles: name, email, phone, dob, username. Formats: json, kv, csv, sql.
Generate UUID v4 strings.
No error handling or recovery guidance. _run() catches subprocess errors and returns 'ERROR: <stderr>' as a plain string. LLMs cannot distinguish retryable failures from user input errors or know what to do next.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only and idempotent, but this is not declared in the schema. Agents cannot infer safety properties without explicit hints.