Skip to content

mcp_generate_demo_data

PhuocLe edited this page Jun 20, 2026 · 3 revisions

Summary

Field Value
Tool name generate_demo_data
MCP title Generate demo data for an entity
Category basic
Implementation DynamicsCrm.DevKit.Cli/Mcp/Tools/GenerateDemoDataTool.cs
Estimated token count ~527 tokens (tools/list tool JSON, o200k_base, measured 2026-06-18)
Last verified 2026-06-18

MCP Tool Description (Exact)

Bogus-generated demo data for an entity → JSON file at .devkit/demo_data/ → pipe to create_records. from_date/to_date REQUIRED (ISO 8601, ask user, never infer). Auto-selects creatable fields with smart mapping (email→Email, telephone→Phone…) and overriddencreatedon. Lookups: real GUIDs auto-fetched; polymorphic uses 'field@entity'.

field_overrides (JSON array of {logicalname, operator, values[]}):
- eq: all records = values[0] (fixed GUID/string)
- in: random pick from values[] (rotating lookups/enums)
- startswith: 'ABC' → 'ABC_x7k2' (Bogus suffix)
- endswith: '@acme.com' → 'john.doe@acme.com' (Bogus prefix)
- contains: 'Manager' → 'Senior Manager II' (injected middle)
- regex: '\+84[0-9]{9}' → '+84912345678'

WHEN TO USE:
- Generate demo/test data for an entity → pipe to create_records
- Reproducible runs (fix seed); rotate lookups/enums via field_overrides 'in'
- Pin specific FK values across all rows via field_overrides 'eq'

Parameters

Name Type Required Default Description
entity_name string Yes - Entity logical name (e.g., 'account').
from_date string Yes - ISO 8601, e.g. '2026-01-01'. NEVER infer — ask user.
to_date string Yes - ISO 8601, e.g. '2026-04-30'. Must be >= from_date.
count integer No 10 1–500.
fields string No "" Comma-separated logical names. Empty = auto-select creatable.
seed integer No 0 0 = random; non-zero = reproducible.
field_overrides string No "" JSON array of {logicalname, operator, values[]}. Operators (see description). Example: [{"logicalname":"jobtitle","operator":"in","values":["CEO","CFO","CTO"]}].

Input Schema

{
  "type": "object",
  "properties": {
    "entity_name": {
      "type": "string",
      "description": "Entity logical name (e.g., 'account')."
    },
    "from_date": {
      "type": "string",
      "description": "ISO 8601, e.g. '2026-01-01'. NEVER infer — ask user."
    },
    "to_date": {
      "type": "string",
      "description": "ISO 8601, e.g. '2026-04-30'. Must be >= from_date."
    },
    "count": {
      "type": "integer",
      "description": "1–500.",
      "default": 10
    },
    "fields": {
      "type": "string",
      "description": "Comma-separated logical names. Empty = auto-select creatable.",
      "default": ""
    },
    "seed": {
      "type": "integer",
      "description": "0 = random; non-zero = reproducible.",
      "default": 0
    },
    "field_overrides": {
      "type": "string",
      "description": "JSON array of {logicalname, operator, values[]}. Operators (see description). Example: [{\"logicalname\":\"jobtitle\",\"operator\":\"in\",\"values\":[\"CEO\",\"CFO\",\"CTO\"]}].",
      "default": ""
    }
  },
  "required": [
    "entity_name",
    "from_date",
    "to_date"
  ]
}

Related MCP Resources

This tool does not require any MCP resources.

When To Use

  • Generate demo/test data for an entity → pipe to create_records
  • Reproducible runs (fix seed); rotate lookups/enums via field_overrides 'in'
  • Pin specific FK values across all rows via field_overrides 'eq'

Notes

  • Use the exact MCP description and parameter schema above as the authoritative contract.

Example

{
  "entity_name": "string",
  "from_date": "string",
  "to_date": "string"
}

Output

Returns CallToolResult from the MCP server. The response content and structured fields follow the tool implementation and model returned by GenerateDemoDataTool.generate_demo_data.

Prompt Examples

  • "Generate 100 reproducible account demo records for this date range and save the JSON file."
  • "Create contact demo data with phone numbers matching this regex and rotate these job titles."
  • "Generate sample rows for this table using real lookup IDs and fixed created-on dates."

Clone this wiki locally