-
Notifications
You must be signed in to change notification settings - Fork 16
mcp_generate_demo_data
PhuocLe edited this page Jun 20, 2026
·
3 revisions
| 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 |
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'
| 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"]}]. |
{
"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"
]
}This tool does not require any MCP resources.
- 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'
- Use the exact MCP description and parameter schema above as the authoritative contract.
{
"entity_name": "string",
"from_date": "string",
"to_date": "string"
}Returns CallToolResult from the MCP server. The response content and structured fields follow the tool implementation and model returned by GenerateDemoDataTool.generate_demo_data.
- "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."