mockhero
MockHero generates realistic, relational synthetic test data for any database schema. Key capabilities include:
Generate test data — Create mock data for one or multiple tables using:
Structured schema definitions (tables, fields, and types)
Plain English prompts (e.g. "50 users with German names and 200 orders linked to them")
Pre-built templates for common patterns (e-commerce, blog, SaaS, social)
Relational/foreign key support via
reffieldsAuto-locale detection (22 locales) based on country fields
Output in JSON, CSV, or SQL (Postgres, MySQL, SQLite)
Deterministic results via a numeric seed
Detect and convert schemas — Convert existing SQL
CREATE TABLEstatements or sample JSON into MockHero's schema format automatically.List field types — Browse all 157 supported field types (identity, location, financial, temporal, and more) with descriptions and examples.
List and use templates — View and generate from pre-built schemas for e-commerce, blog, SaaS, or social apps, with control over scale, locale, format, and seed.
MockHero
Synthetic test data API. Generate realistic, relational data for any database schema.
What it does
156 field types across 15+ categories (identity, location, financial, temporal, and more)
Relational data — foreign keys just work. Orders reference real user IDs, reviews link to real products. One API call seeds your entire database.
3 input modes — structured schema, plain English prompt, or pre-built templates
Auto-locale — add a
countryenum field and names, emails, phones match each row's nationality. 22 locales supported.JSON, CSV, SQL output — Postgres, MySQL, SQLite dialects
Deterministic seeds — same seed + same schema = identical data every time
MCP server — use from Claude Desktop, Cursor, Windsurf, or any AI agent
Related MCP server: mock-mcp
Quick start
curl -X POST https://mockhero.dev/api/v1/generate \
-H "Authorization: Bearer mh_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"tables": [
{
"name": "users",
"count": 50,
"fields": [
{ "name": "id", "type": "uuid" },
{ "name": "name", "type": "full_name" },
{ "name": "email", "type": "email" },
{ "name": "country", "type": "enum", "params": { "values": ["US", "DE", "FR", "JP"] } },
{ "name": "created_at", "type": "datetime" }
]
},
{
"name": "orders",
"count": 200,
"fields": [
{ "name": "id", "type": "uuid" },
{ "name": "user_id", "type": "ref", "params": { "table": "users", "field": "id" } },
{ "name": "total", "type": "price" },
{ "name": "status", "type": "enum", "params": { "values": ["pending", "shipped", "delivered"] } }
]
}
]
}'Or use plain English:
curl -X POST https://mockhero.dev/api/v1/generate \
-H "Authorization: Bearer mh_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "prompt": "50 users with German names and 200 orders linked to them" }'Templates
Pre-built schemas for common patterns — no schema definition needed:
curl -X POST https://mockhero.dev/api/v1/generate \
-H "Authorization: Bearer mh_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "template": "ecommerce", "scale": 2, "locale": "de" }'Available: ecommerce, blog, saas, social
MCP server
Use MockHero from AI agents via the Model Context Protocol.
Hosted remote MCP endpoint for agent-first clients:
https://mockhero.dev/mcp/agentThis endpoint exposes estimate, loginless Polar checkout, checkout status, API key claim, schema detection, templates, and generation tools.
Local stdio MCP server for agents that run npm packages:
npm install -g @mockherodev/mcp-serverSee @mockherodev/mcp-server for setup instructions.
Pricing
Free | Pro | Scale | |
Daily records | 500 | 100,000 | 1,000,000 |
Requests/min | 10 | 60 | 200 |
Price | $0 | $29/mo | $79/mo |
Tech stack
Next.js 15 (App Router)
Supabase (Postgres)
Clerk (Auth)
Polar (Billing)
Tailwind v4
License
MIT
Available Tools
5 toolsdetect_schemaAInspect
Convert an existing database schema or JSON sample into MockHero's schema format.
Send a SQL CREATE TABLE statement and get back the structured schema ready to use with generate_test_data. Or send a sample JSON record and MockHero will infer the field types.
This is useful when you have migration files or an existing database and want to generate test data that matches your schema without manually writing the definition.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | No | SQL CREATE TABLE statement(s) to convert | |
| sample_json | No | Example JSON record to infer schema from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It fails to mention side effects, auth requirements, or whether the operation is read-only or destructive. For a tool that processes input and returns a schema, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three paragraphs, but the first sentence captures the core. The rest provides useful context without excessive verbosity. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and full parameter descriptions, the description adequately explains the two input modes and use case. However, it lacks details on output format, error handling, or limitations, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds meaning by explaining that sql converts CREATE TABLE statements and sample_json infers types, going beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it converts an existing database schema or JSON sample into MockHero's schema format. It specifies the verb 'Convert' and the resource, distinguishing it from siblings like generate_test_data or list_field_types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: when you have migration files or an existing database and want to generate test data. It provides context but does not explicitly state when not to use it, though the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_from_templateAInspect
Generate test data using a pre-built schema template.
Pick a template (ecommerce, blog, saas, social) and optionally adjust the scale, locale, format, and seed. The template handles all the table definitions, field types, and foreign key relationships for you.
Scale multiplier: 1.0 = default counts, 2.0 = double, 0.5 = half. Example: ecommerce template at scale 2.0 generates 100 users, 200 products, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| template | Yes | Template name | |
| scale | No | Scale multiplier for record counts (default 1.0) | |
| locale | No | Default locale (en, de, fr, es, etc.) | |
| format | No | Output format | json |
| sql_dialect | No | SQL dialect (only when format=sql) | |
| seed | No | Seed for reproducible output |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description explains key behaviors: template handles table definitions, relationships, scale multiplier effect, and seed for reproducibility. It does not mention potential side effects or authorization, but the generative nature implies non-destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences plus examples) and front-loaded with the core purpose. It uses a clear structure with an introductory sentence, optional parameters list, and an illustrative example.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters and no output schema, the description covers templates, scale, locale, format, sql_dialect, and seed adequately. It could explicitly state what the tool returns (e.g., generated data in chosen format), but the format parameter hints at this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 6 parameters have schema descriptions (100% coverage). The description adds context beyond the schema, such as scale multiplier meaning, locale as default, and sql_dialect only for format=sql, enhancing understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates test data using pre-built schema templates, listing specific templates (ecommerce, blog, saas, social). This distinguishes it from sibling tools like generate_test_data (which likely requires custom schemas).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use the tool (by picking a template and optionally adjusting scale, locale, etc.) and includes an example. However, it lacks explicit when-not-to-use context or direct comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_test_dataAInspect
Generate realistic test data for database tables.
Send either a structured schema (tables with fields) or a plain English description. Supports relational data with foreign keys, locale-aware names and addresses, 22 locales, 157 field types, and multiple output formats (JSON, CSV, SQL).
The killer feature: define multiple tables with "ref" fields, and all foreign key relationships are correct — orders reference real user IDs, reviews link to real products. One call seeds your entire database.
Auto-locale: add a "country" field as an enum with country codes (DE, FR, US, etc.) and names, emails, phones automatically match each row's nationality.
| Name | Required | Description | Default |
|---|---|---|---|
| tables | No | Structured schema — array of table definitions | |
| prompt | No | Plain English description (e.g. "50 users with German names and 200 orders linked to them") | |
| format | No | Output format | json |
| sql_dialect | No | SQL dialect (only when format=sql) | |
| locale | No | Default locale (en, de, fr, es, ja, etc.). Auto-detected from country field if present. | |
| seed | No | Seed for reproducible output. Same seed + same schema = identical data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses key behaviors: supports foreign key relationships across tables, auto-locale via country field, multiple output formats, and reproducibility via seed. These are beyond the input schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise and front-loaded: first sentence states purpose, then bullet-like details on features. No wasted words; every sentence adds value. Well-structured for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers input modes, relational data, locales, formats, and reproducibility. Missing explicit description of output structure (since no output schema), but mentions formats (JSON, CSV, SQL) which implies the output content. Slightly incomplete, but overall sufficient for a generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds limited new meaning per parameter. It reiterates the two modes and adds context on auto-locale and seeding, but most parameter semantics are already in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates realistic test data for database tables, and highlights two input modes (structured schema or plain English). It distinguishes from siblings like detect_schema (schema detection) and list_field_types (type listing) by focusing on generation with relational integrity and locales.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool: to generate test data from a schema or plain description. It implies generating from scratch vs. using templates (generate_from_template), but doesn't explicitly contrast with siblings. Clear guidance on input modes is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_field_typesAInspect
List all 157 available field types for test data generation.
Returns every supported type organized by category (Identity, Location, Financial, Temporal, Technical, Content, Logic, Social, HR, Ecommerce, Security, AI/ML, Healthcare, Edge Cases, Special) with descriptions, parameters, and examples.
Use this to discover what types are available before building a schema.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It accurately describes a read-only listing operation with no side effects or special behaviors. The lack of parameters reduces risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-load the main purpose, provide detailed structure, and offer usage guidance. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and a simple listing task, the description is fully complete. It covers purpose, content, and usage context without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100%. The description does not need to add parameter info, achieving the baseline score for this case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all 157 field types for test data generation, organized by category with descriptions, parameters, and examples. This distinguishes it from sibling tools like 'list_templates' which list templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this to discover what types are available before building a schema.' While it doesn't mention alternatives or when not to use, the context is clear and sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesAInspect
List pre-built schema templates for common application patterns.
Available templates:
ecommerce: Customers, products, orders, order items, reviews (5 tables)
blog: Authors, posts, comments, tags, post_tags (5 tables)
saas: Organizations, members, subscriptions, invoices (4 tables)
social: Users, posts, likes, follows, messages (5 tables)
Each template includes realistic field types, proper foreign key relationships, weighted enum distributions, and auto-locale detection via country fields.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that templates include realistic field types, foreign keys, weighted enums, and locale detection, giving useful behavioral context beyond just listing names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise: one opening sentence, then a bullet list of templates. No extraneous words, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by detailing what each template contains (table names, counts, features). It is sufficient for an agent to understand what will be returned, though the exact response format is not specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so schema coverage is 100%. Baseline 4 applies; description does not need to add parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists pre-built schema templates for common application patterns. It explicitly names four templates with their table counts, which distinguishes it from sibling tools like detect_schema or generate_from_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call this to see available templates before using generate_from_template. It provides clear context but does not explicitly state when not to use or contrast with siblings, though the purpose is inherently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.0- First observed
detect_schema - First observed
generate_from_template - First observed
generate_test_data - First observed
list_field_types - First observed
list_templates
TDQS
Each tool has a clearly distinct purpose: schema detection, template-based generation, custom generation, field type listing, and template listing. No overlap.
All tool names follow a consistent verb_noun pattern in snake_case, with 'generate' and 'list' verbs used unambiguously.
5 tools is ideal for this server's scope—covering schema conversion, two generation methods, and two discovery tools without being too few or too many.
The tool set covers the full workflow: schema detection, template-based generation, custom generation, and resource discovery, with no obvious gaps for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate realistic, FK-consistent synthetic test data for your databases from your AI assistant.
Privacy-safe synthetic financial data for LatAm fintech, AI agents, testing and ML.
140+ data APIs for agents: finance, banking validation, geo, weather, text. One API key.
Generate synthetic random user data for testing, demos, and development without using real persona.
Related MCP Servers
- AlicenseBqualityDmaintenanceGenerates realistic mock data using Faker.js for database seeding, API testing, and development environments. Supports person/company data, custom patterns, multi-locale generation, and structured datasets with referential integrity.4557MIT
- AlicenseAqualityCmaintenanceGenerates schema-compliant mock data from OpenAPI JSON Schema definitions using AI, enabling seamless testing without manual fixtures.6299MIT
- FlicenseNot gradedqualityCmaintenanceGenerates realistic, context-aware synthetic data for AI agents to populate databases, mock APIs, and create test scenarios without exposing real PII.163-
- AlicenseAqualityDmaintenanceGenerates realistic, referentially-coherent test data (SQL INSERTs, JSON, or CSV) from your database schema, resolving foreign keys and respecting constraints. Paste CREATE TABLE DDL or a JSON schema and get ready-to-run seed data with valid relationships.287MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dinosaur24/mockhero'
If you have feedback or need assistance with the MCP directory API, please join our Discord server