loading…
Search for a command to run...
loading…
Analyzes runtime data objects to suggest optimal UI component instructions for a low-code renderer using structural heuristics. It automatically maps data patte
Analyzes runtime data objects to suggest optimal UI component instructions for a low-code renderer using structural heuristics. It automatically maps data patterns to specific UI elements like tables, carousels, and cards to streamline interface generation.
This project provides a Python MCP server that inspects runtime data and returns UI instructions compatible with the low-code renderer in C:\Users\gregg\development\low-code\low-code\packages\ui.
The server is designed around the instruction types documented in C:\Users\gregg\development\low-code\low-code\README.md:
labellisttablecardaccordioncarouselThe exposed MCP tool, suggest_ui_instructions, accepts a data object and returns:
instruction: a renderer-ready UIInstruction or UIInstruction[]analysis: the component decisions made for each fieldnotes: a short explanation of the heuristics usedExample selection behavior:
listcarouselaccordiontablecardcd C:\Users\gregg\development\mcp
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install -e .
cd C:\Users\gregg\development\mcp
.venv\Scripts\Activate.ps1
low-code-ui-mcp
You can also run it directly:
python -m low_code_ui_mcp
Run with HTTP REST transport instead of stdio:
python -m low_code_ui_mcp --transport http --host 127.0.0.1 --port 8000
When running in HTTP mode:
GET /healthPOST /api/v1/suggest-ui-instructionsExample request:
Invoke-RestMethod -Method Post -Uri "http://127.0.0.1:8000/api/v1/suggest-ui-instructions" -ContentType "application/json" -Body (@{
data = @{
title = "Quarterly Summary"
highlights = @("Revenue up 12%", "Churn down 3%")
products = @(
@{ name = "Alpha"; owner = "Team A"; score = 92 },
@{ name = "Beta"; owner = "Team B"; score = 88 }
)
}
} | ConvertTo-Json -Depth 20)
suggest_ui_instructionsParameters:
data: the object to analyzecarousel_max_items: maximum object-array size that still prefers carouseltable_min_items: minimum object-array size that starts preferring tabletable_max_columns: maximum distinct object keys that still counts as a flat tablemax_depth: recursion limit for nested instruction generationExample request payload:
{
"data": {
"title": "Quarterly Summary",
"highlights": ["Revenue up 12%", "Churn down 3%"],
"products": [
{ "name": "Alpha", "owner": "Team A", "score": 92 },
{ "name": "Beta", "owner": "Team B", "score": 88 }
],
"accounts": [
{ "name": "Acme", "region": "NA", "status": "Active" },
{ "name": "Globex", "region": "EU", "status": "Active" },
{ "name": "Initech", "region": "APAC", "status": "Paused" },
{ "name": "Umbrella", "region": "NA", "status": "Active" },
{ "name": "Soylent", "region": "EU", "status": "Pilot" },
{ "name": "Wonka", "region": "NA", "status": "Active" },
{ "name": "Hooli", "region": "APAC", "status": "Active" },
{ "name": "Stark", "region": "NA", "status": "Active" }
]
}
}
Example response shape:
{
"instruction": [
{ "type": "label", "field": "title", "label": "Title" },
{ "type": "list", "field": "highlights", "label": "Highlights" },
{
"type": "carousel",
"field": "products",
"label": "Products",
"contents": [
{ "type": "label", "field": "name", "label": "Name" },
{ "type": "label", "field": "owner", "label": "Owner" },
{ "type": "label", "field": "score", "label": "Score" }
]
},
{ "type": "table", "field": "accounts", "label": "Accounts" }
]
}
labellistlistcarousel when item count is smallaccordion when item count is medium or the objects are more nestedtable when the array is large and the objects are flat enough for columnscard with child instructions inferred from the nested fieldsДобавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"low-code-ui-mcp-server": {
"command": "npx",
"args": []
}
}
}