@o-bots7160/elastic-dashboard-mcp
v0.1.5
Published
MCP server for creating and editing Elastic Dashboard layout JSON files
Readme
elastic-dashboard-mcp
An MCP (Model Context Protocol) server for creating and editing Elastic Dashboard layout JSON files. Designed for FRC teams to programmatically build competition dashboard layouts using AI assistants like GitHub Copilot.
Features
- Full Elastic Dashboard schema support — all 35+ widget types with correct sizes, properties, and validation
- Smart auto-layout — widgets are automatically positioned on the grid without overlaps
- Tunable topic awareness — configure patterns to distinguish read-only vs. editable topics (AdvantageKit, custom tuning systems)
- Batch operations — add multiple widgets at once with automatic grid placement
- Layout validation — catch errors before loading in Elastic Dashboard
- Color conversion — convert between hex and Elastic's decimal ARGB format
Installation
Install from npm:
npm install @o-bots7160/elastic-dashboard-mcpOr build from source:
git clone https://github.com/o-bots7160/elastic_dashboard-mcp.git
cd elastic_dashboard-mcp
npm install && npm run buildUsage with VS Code / GitHub Copilot
Add to your .vscode/mcp.json:
{
"servers": {
"elastic-dashboard": {
"command": "npx",
"args": [
"-y",
"@o-bots7160/elastic-dashboard-mcp"
]
}
}
}Available Tools
Read / Inspect
get_layout— Read a layout file and get a summary of tabs and widgetsget_tab— Get full details of a specific tabvalidate_layout— Check a layout against schema ruleslist_widget_types— List all available widget types with properties and sizes
Create
create_layout— Create a new empty layout fileadd_tab— Add a tab to an existing layoutadd_widget— Add a widget with auto-positioningadd_widgets_batch— Add multiple widgets at once
Modify
move_widget— Move a widget to a new grid positionresize_widget— Resize a widgetupdate_widget_properties— Change widget propertiesrename_tab— Rename a tab
Delete
remove_widget— Remove a widget from a tabremove_tab— Remove a tab
Reorganize
auto_layout— Rearrange all widgets into a clean gridreorder_tabs— Change tab order
Configuration
get_config— View current configurationset_config— Update tunable patterns, defaults, and NT4 settings
Utilities
convert_color— Convert between hex colors and Elastic's decimal ARGB formatsuggest_widget— Get the best widget type for a given NT data type
Configuration
Create a .elastic-mcp-config.json in your project root:
{
"tunable_topic_patterns": ["/Tuning/**"],
"ignored_topic_patterns": ["/.metadata/**"],
"defaults": {
"show_submit_button": true,
"period": 0.06,
"graph_period": 0.033
}
}Development
npm run build # Compile TypeScript
npm run dev # Watch mode
npm test # Run tests
npm run test:watch # Watch tests