Expand description
elicit_egui — dual-mode MCP tools for egui widget creation.
Provides tools that operate in two modes:
- Runtime mode — each tool returns a JSON description that can be rendered by an egui runtime or inspected as JSON.
- Emit mode — each tool’s parameters can generate idiomatic egui Rust code via the elicitation code-emission pipeline.
§Tool categories
§Widgets (32 tools)
| Tool | Widget | Category |
|---|---|---|
widget_label | Plain text | Display |
widget_heading | Heading text | Display |
widget_monospace | Monospace text | Display |
widget_code | Code with background | Display |
widget_small | Small text | Display |
widget_strong | Bold text | Display |
widget_weak | Faint text | Display |
widget_colored_label | Coloured text | Display |
widget_button | Clickable button | Interactive |
widget_small_button | Compact button | Interactive |
widget_checkbox | Boolean toggle | Interactive |
widget_radio_value | Radio button (auto-update) | Interactive |
widget_radio | Radio button (display only) | Interactive |
widget_selectable_label | Toggle label | Interactive |
widget_toggle_value | Boolean toggle (simple) | Interactive |
widget_link | Clickable text link | Interactive |
widget_hyperlink | Web link | Interactive |
widget_separator | Divider line | Layout |
widget_spinner | Loading spinner | Feedback |
widget_text_edit_singleline | Single-line input | Text |
widget_text_edit_multiline | Multi-line input | Text |
widget_code_editor | Code editor | Text |
widget_slider | Numeric slider | Numeric |
widget_slider_vertical | Vertical slider | Numeric |
widget_drag_value | Drag-to-edit value | Numeric |
widget_drag_angle | Drag-to-edit angle (degrees) | Numeric |
widget_drag_angle_tau | Drag-to-edit angle (tau) | Numeric |
widget_progress_bar | Progress indicator | Feedback |
widget_color_edit_button_srgba | sRGBA colour picker | Colour |
widget_color_edit_button_hsva | HSVA colour picker | Colour |
widget_image | Image display | Media |
§Containers (14 tools)
| Tool | Container | Notes |
|---|---|---|
container_window | Floating window | Title, pos, size, collapsible |
container_left_panel | Left side panel | Resizable with min/max width |
container_right_panel | Right side panel | Resizable |
container_top_panel | Top panel | Resizable |
container_bottom_panel | Bottom panel | Resizable |
container_central_panel | Central panel | Fills remaining space |
container_scroll_area | Scroll region | Vertical/horizontal |
container_collapsing | Collapsible section | Header text, default open |
container_group | Visual group | Box around content |
container_frame | Styled frame | Fill, stroke, margins |
container_menu_bar | Menu bar | Top-level menus |
container_menu | Menu | Within menu bar |
container_tooltip | Tooltip | Hover text |
container_popup | Popup area | Context menu, dropdown |
§Layout (11 tools)
| Tool | Layout | Notes |
|---|---|---|
layout_horizontal | Left-to-right | Optional alignment |
layout_vertical | Top-to-bottom | Optional alignment |
layout_horizontal_centered | Centred horizontal | — |
layout_vertical_centered | Centred vertical | — |
layout_horizontal_justified | Justified horizontal | Items stretch |
layout_vertical_justified | Justified vertical | — |
layout_horizontal_wrapped | Wrapping horizontal | Next line on overflow |
layout_columns | Column layout | N columns |
layout_grid | Grid layout | Striped, column count |
layout_indent | Indentation | Pixel amount |
layout_add_space | Spacing | Pixel amount |
§Styling (29 tools)
| Tool | Style | Notes |
|---|---|---|
style_spacing | Global spacing | Item, window, button |
style_dark_mode | Dark theme | — |
style_light_mode | Light theme | — |
style_visual | Colour property | Hyperlink, bg, panel, etc. |
style_window_rounding | Window corners | Corner radius |
style_window_shadow | Window shadow | Offset, blur, colour |
style_widget_visuals | Widget state visuals | Fill, stroke per state |
style_selection | Selection highlight | Background, stroke |
style_text_cursor | Text cursor | Colour, width |
egui_set_fonts | Font families | Proportional, monospace |
egui_override_text_style | Text style override | Family + size per style |
egui_set_text_valign | Text vertical align | Top, center, bottom |
egui_set_interaction | Interaction settings | Click time, drag threshold |
egui_set_animation_time | Animation duration | Transition timing |
egui_set_debug_options | Debug rendering | Widget hits, hover debug |
egui_set_hyperlink_color | Hyperlink colour | — |
egui_set_faint_bg_color | Faint background | Alternating rows |
egui_set_extreme_bg_color | Extreme background | Text input fields |
egui_set_code_bg_color | Code background | Monospace background |
egui_set_warn_fg_color | Warning foreground | — |
egui_set_error_fg_color | Error foreground | — |
egui_set_widget_stroke | Widget state stroke | Per-state border |
egui_set_window_stroke | Window border stroke | Width + colour |
egui_set_menu_margin | Menu margin | Left, right, top, bottom |
egui_set_button_padding | Button padding | Horizontal, vertical |
egui_set_indent | Indentation | Pixel distance |
egui_set_scroll_bar_width | Scroll bar | Width, handle, margins |
egui_set_resize_grip_size | Resize grip | Corner size |
egui_set_text_cursor_width | Cursor blink | Width, blink timing |
§Response (21 tools)
| Tool | Query | Notes |
|---|---|---|
response_clicked | Was clicked | — |
response_double_clicked | Was double-clicked | — |
response_secondary_clicked | Was right-clicked | — |
response_clicked_n | Clicked N times | Count param |
response_hovered | Is hovered | — |
response_has_focus | Has focus | — |
response_gained_focus | Gained focus | — |
response_lost_focus | Lost focus | — |
response_request_focus | Request focus | — |
response_surrender_focus | Release focus | — |
response_dragged | Is dragged | — |
response_drag_released | Drag released | — |
response_drag_delta | Drag delta | Vec2 result |
response_changed | Value changed | — |
response_rect | Bounding rect | Rect result |
response_hover_pos | Hover position | Optional Vec2 |
response_show_tooltip | Show tooltip | Text param |
response_set_enabled | Set enabled state | Bool param |
response_highlight | Highlight widget | — |
response_scroll_to_me | Scroll into view | — |
response_context_menu | Context menu | — |
§Menus & Popups (13 tools)
| Tool | Action | Notes |
|---|---|---|
egui_context_menu | Right-click menu | Region ID |
egui_context_menu_item | Menu item | Label + shortcut |
egui_context_menu_separator | Menu separator | — |
egui_popup | Popup at position | ID, position, content |
egui_popup_below_widget | Popup below widget | Anchor ID |
egui_close_popup | Close popup | — |
egui_tooltip | Hover tooltip | Widget ID, text |
egui_tooltip_rich | Rich tooltip | Custom UI content |
egui_tooltip_at_pointer | Pointer tooltip | Text at cursor |
egui_modal | Modal dialog | Title, content, buttons |
egui_confirm_dialog | Confirm dialog | Yes/no |
egui_alert_dialog | Alert dialog | OK button |
egui_notification | Toast message | Text, duration, position |
§Input (14 tools)
| Tool | Query | Notes |
|---|---|---|
egui_key_pressed | Key pressed | This frame |
egui_key_released | Key released | This frame |
egui_key_down | Key held down | Current state |
egui_modifiers | Modifier keys | Ctrl, Shift, Alt, Cmd |
egui_pointer_pos | Pointer position | — |
egui_pointer_button_pressed | Mouse pressed | Button name |
egui_pointer_button_released | Mouse released | Button name |
egui_pointer_delta | Pointer delta | This frame |
egui_scroll_delta | Scroll delta | — |
egui_clipboard_get | Get clipboard | Text |
egui_clipboard_set | Set clipboard | Text |
egui_request_focus | Request focus | Widget ID |
egui_surrender_focus | Release focus | Widget ID |
egui_has_focus | Check focus | Widget ID |
§JSON interchange
Tools communicate via tagged enums that serialize to compact JSON:
WidgetJson, ContainerJson, LayoutJson,
StyleJson, and
ResponseQueryJson.
Re-exports§
pub use accesskit_bridge::EguiBackend;pub use accesskit_bridge::bounds_to_size;pub use accesskit_bridge::render_tree;pub use egui_accesskit_convert::tree_update_to_ui_node;pub use egui_accesskit_convert::ui_node_to_tree_update;pub use winit_plugin::EguiWinitPlugin;pub use serde_types::ColorJson;pub use serde_types::ContainerJson;pub use serde_types::CornerRadiusJson;pub use serde_types::LayoutAlign;pub use serde_types::LayoutDirection;pub use serde_types::LayoutJson;pub use serde_types::MarginJson;pub use serde_types::RangeJson;pub use serde_types::RectJson;pub use serde_types::ResponseJson;pub use serde_types::StrokeJson;pub use serde_types::UiNode;pub use serde_types::Vec2Json;pub use serde_types::WidgetJson;pub use style_tools::AnimationTimeParams;pub use style_tools::ButtonPaddingParams;pub use style_tools::ColorOverrideParams;pub use style_tools::DebugOptionsParams;pub use style_tools::EmptyStyleParams;pub use style_tools::FontFamily;pub use style_tools::InteractionParams;pub use style_tools::MenuMarginParams;pub use style_tools::OverrideTextStyleParams;pub use style_tools::ResizeGripSizeParams;pub use style_tools::ScrollBarWidthParams;pub use style_tools::SelectionParams;pub use style_tools::SetFontsParams;pub use style_tools::SetTextValignParams;pub use style_tools::SpacingParams;pub use style_tools::StyleIndentParams;pub use style_tools::StyleJson;pub use style_tools::TextCursorBlinkParams;pub use style_tools::TextCursorParams;pub use style_tools::TextStyleName;pub use style_tools::TextValign;pub use style_tools::VisualParams;pub use style_tools::VisualProperty;pub use style_tools::WidgetState;pub use style_tools::WidgetStrokeParams;pub use style_tools::WidgetVisualsParams;pub use style_tools::WindowRoundingParams;pub use style_tools::WindowShadowParams;pub use style_tools::WindowStrokeParams;pub use widget_tools::ButtonParams;pub use widget_tools::CheckboxParams;pub use widget_tools::CodeEditorParams;pub use widget_tools::CodeParams;pub use widget_tools::ColorEditButtonHsvaParams;pub use widget_tools::ColorEditButtonSrgbaParams;pub use widget_tools::ColoredLabelParams;pub use widget_tools::DragAngleParams;pub use widget_tools::DragAngleTauParams;pub use widget_tools::DragValueParams;pub use widget_tools::EmptyParams;pub use widget_tools::HeadingParams;pub use widget_tools::HyperlinkParams;pub use widget_tools::ImageParams;pub use widget_tools::LabelParams;pub use widget_tools::LinkParams;pub use widget_tools::MonospaceParams;pub use widget_tools::ProgressBarParams;pub use widget_tools::RadioParams;pub use widget_tools::RadioValueParams;pub use widget_tools::SelectableLabelParams;pub use widget_tools::SimpleTextParams;pub use widget_tools::SliderParams;pub use widget_tools::SliderVerticalParams;pub use widget_tools::SmallButtonParams;pub use widget_tools::TextEditMultilineParams;pub use widget_tools::TextEditSinglelineParams;pub use widget_tools::ToggleValueParams;pub use fragment_tools::AppStateParams;pub use fragment_tools::FormFieldDef;pub use fragment_tools::FormParams;pub use fragment_tools::MessageEnumParams;pub use fragment_tools::MessageVariantDef;pub use fragment_tools::NativeAppParams;pub use fragment_tools::SettingsFieldDef;pub use fragment_tools::SettingsPanelParams;pub use fragment_tools::SettingsSectionDef;pub use fragment_tools::SidebarLayoutParams;pub use fragment_tools::StateFieldDef;pub use fragment_tools::TabDef;pub use fragment_tools::TabPanelParams;pub use fragment_tools::TableColumnDef;pub use fragment_tools::TableParams;pub use fragment_tools::ToolbarButtonDef;pub use fragment_tools::ToolbarParams;pub use fragment_tools::WebAppParams;
Modules§
- accesskit_
bridge - AccessKit bridge for egui — bidirectional conversion between AccessKit trees and egui widgets.
- egui_
accesskit_ convert - Forward bridge:
UiNode→ AccessKitTreeUpdate. - fragment_
tools - Code generation tools for egui/eframe application fragments.
- serde_
types - JSON-serializable types for egui widget interchange.
- style_
tools - Dual-mode styling tools.
- widget_
tools - Dual-mode widget creation tools.
- winit_
plugin EguiWinitPlugin— MCP tools for egui + winit native application scaffolding.
Structs§
- AddSpace
Params - Parameters for
layout_add_space. - Alert
Dialog Params - Parameters for
egui_alert_dialog. - Bottom
Panel Params - Parameters for
container_bottom_panel. - ClickedN
Params - Parameters for
response_clicked_n. - Clipboard
SetParams - Parameters for
egui_clipboard_set. - Collapsing
Params - Parameters for
container_collapsing. - Columns
Params - Parameters for
layout_columns. - Confirm
Dialog Params - Parameters for
egui_confirm_dialog. - Context
Menu Item Params - Parameters for
egui_context_menu_item. - Context
Menu Params - Parameters for
egui_context_menu. - Empty
Container Params - Empty params for tools that take no arguments.
- Empty
Input Params - Empty params for tools that take no arguments.
- Empty
Layout Params - Empty params for layout tools with no arguments.
- Empty
Menu Params - Empty params for tools that take no arguments.
- Empty
Response Params - Empty params for no-argument response tools.
- Focus
Params - Parameters for focus tools.
- Frame
Params - Parameters for
container_frame. - Grid
Params - Parameters for
layout_grid. - Horizontal
Params - Parameters for
layout_horizontal. - Indent
Params - Parameters for
layout_indent. - KeyParams
- Parameters for
egui_key_pressed. - Left
Panel Params - Parameters for
container_left_panel. - Menu
Params - Parameters for
container_menu. - Menu
Popup Params - Parameters for
egui_popup. - Menu
Tooltip Params - Parameters for
egui_tooltip. - Modal
Params - Parameters for
egui_modal. - Modifiers
Json - Result of a modifier key state query.
- Notification
Params - Parameters for
egui_notification. - Pointer
Button Params - Parameters for
egui_pointer_button_pressed. - Popup
Below Widget Params - Parameters for
egui_popup_below_widget. - Popup
Params - Parameters for
container_popup. - Right
Panel Params - Parameters for
container_right_panel. - Scroll
Area Params - Parameters for
container_scroll_area. - SetEnabled
Params - Parameters for
response_set_enabled. - Show
Tooltip Params - Parameters for
response_show_tooltip. - Tooltip
AtPointer Params - Parameters for
egui_tooltip_at_pointer. - Tooltip
Params - Parameters for
container_tooltip. - Tooltip
Rich Params - Parameters for
egui_tooltip_rich. - TopPanel
Params - Parameters for
container_top_panel. - Vertical
Params - Parameters for
layout_vertical. - Window
Params - Parameters for
container_window.
Enums§
- Input
Action Json - Serializable input query or action.
- Menu
Action Json - Serializable menu/popup/tooltip/modal/notification action.
- Response
Info Json - Serializable response info (what the runtime returns).
- Response
Query Json - Serializable response query.