imgui-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| imgui_create_windowB | Create a new ImGui window. Windows are containers for widgets. Supports positioning, sizing, and window flags. |
| imgui_add_widgetC | Add a widget to an ImGui window. Supports 80+ widget types including buttons, text, inputs, sliders, drags, color pickers, combos, trees, tables, menus, popups, plots, containers, and tooltips. |
| imgui_update_widgetB | Update an existing widget's properties. Can update value, text, checked state, label, content, color, items, selected index, enabled state, and plot data. |
| imgui_remove_widgetC | Remove a widget from a window |
| imgui_remove_windowB | Remove a window and all its widgets |
| imgui_get_stateA | Get the current state of all windows and widgets. Returns values, checked states, text content, selected indices, and interaction flags (clicked, changed, hovered, active, focused). |
| imgui_clear_allB | Remove all windows and widgets, resetting to empty state |
| imgui_set_styleC | Set the ImGui style theme. Choose from built-in themes (dark, light, classic) or provide custom color overrides. |
| imgui_push_style_colorB | Push a style color override onto the style stack for a specific window or widget. Must be balanced with imgui_pop_style_color. |
| imgui_pop_style_colorC | Pop style color overrides from the style stack for a specific window or widget. |
| imgui_drawB | Append draw commands to a named layer in a window. Repeated calls preserve earlier geometry by default. Supports lines, shapes, gradients, ellipses, arcs, text, polygons, and bezier curves. |
| imgui_set_backgroundA | Set the background clear color of the viewport |
| imgui_show_demoB | Show or hide the ImGui demo window (showcases all available widgets) |
| imgui_show_metricsC | Show or hide the ImGui metrics/debug window (draw calls, vertices, etc.) |
| imgui_show_aboutC | Show or hide the ImGui about window (version info, credits) |
| imgui_show_style_editorC | Show or hide the ImGui style editor window (edit colors and sizes interactively) |
| imgui_window_controlC | Control a window's properties: position, size, collapsed state, focus, background alpha, or scroll position. |
| imgui_get_input_stateB | Query input state: mouse position, mouse buttons, keyboard keys, and item interaction states. |
| imgui_clipboardC | Get or set the system clipboard text via ImGui |
| imgui_app_statusA | Check if the ImGui application is running and get its status including binary path and availability. |
| imgui_drain_eventsA | Drain a bounded batch of native UI events. Returns the events, remaining queue depth, and the number dropped since the previous drain. |
| imgui_screenshotB | Capture a screenshot of the current ImGui frame and save it as a BMP file. |
| imgui_screenshot_widgetB | Capture a screenshot with information about a specific widget's bounds. Returns the screenshot path and widget location data. |
| imgui_screenshot_annotatedB | Capture a screenshot with widget ID overlays for debugging and inspection. |
| imgui_click_widgetB | Simulate a mouse click on a widget by its ID |
| imgui_type_textA | Type text into a widget (focuses it first, then injects characters) |
| imgui_hover_widgetC | Move the mouse cursor to hover over a widget |
| imgui_scroll_windowC | Scroll the mouse wheel over a window |
| imgui_press_keyA | Simulate a key press and release. Supports single keys and modifier combos. Examples: 'Enter', 'Tab', 'Escape', 'Ctrl+S', 'Shift+A', 'Ctrl+Shift+Z' |
| imgui_set_mouse_posC | Set the mouse cursor position in screen coordinates |
| imgui_focus_widgetC | Set keyboard focus to a widget (it will receive focus on the next frame) |
| imgui_animateB | Animate a widget property over time using a tween/animation. Supports multiple easing functions and looping. |
| imgui_stop_animationB | Stop animations for a specific widget, or all animations in a window if widget is omitted. |
| imgui_stop_all_animationsA | Stop and remove all active animations across all windows |
| imgui_move_windowB | Move a window to a new position |
| imgui_resize_windowC | Resize a window to new dimensions |
| imgui_move_widgetC | Move a widget by applying a cursor offset before rendering |
| imgui_get_widget_rectA | Get the actual rendered bounding box of a widget in pixel coordinates |
| imgui_get_window_rectB | Get the position and size of a window |
| imgui_bring_to_frontB | Bring a window to the front and give it focus |
| imgui_set_widget_sizeC | Set the size of a widget |
| imgui_get_layoutC | Get the layout of all widgets in a window with their bounding boxes |
| imgui_set_anchorB | Set a window's anchor position relative to the viewport (e.g. top_left, center, bottom_right) |
| imgui_set_widget_anchorB | Set a widget's anchor position for responsive layout within its window |
| imgui_set_viewport_sizeC | Resize the application viewport (SDL window) to specific pixel dimensions |
| imgui_get_viewport_sizeA | Get the current viewport (SDL window) dimensions |
| imgui_set_resolution_presetB | Resize the viewport to a common resolution preset |
| imgui_set_dpi_scaleC | Set the DPI/UI scale factor for all ImGui sizes |
| imgui_set_safe_areaB | Set safe area insets (in pixels) that anchored windows will respect |
| imgui_create_sceneB | Create a named scene that controls which windows are visible together |
| imgui_delete_sceneC | Delete a scene by name |
| imgui_switch_sceneA | Switch to a named scene, showing only its windows |
| imgui_list_scenesA | List all scenes and their window lists, plus the active scene |
| imgui_set_window_layerB | Set the render layer (z-order) of a window. Higher layers render on top. |
| imgui_set_widget_visibilityB | Set conditional visibility on a widget. Conditions: 'always', 'never', 'widget_id.checked==true', 'widget_id.value>0.5' |
| imgui_set_window_visibilityC | Show or hide a window by setting its open state |
| imgui_save_snapshotA | Save the current layout state as a named snapshot. Snapshots can be restored later with imgui_load_snapshot. |
| imgui_load_snapshotA | Restore a previously saved snapshot by name. The current state is pushed to the undo stack before restoring. |
| imgui_list_snapshotsA | List all saved snapshots with their names, frame numbers, and widget counts |
| imgui_delete_snapshotC | Delete a saved snapshot by name |
| imgui_undoA | Undo the last destructive operation (add/remove/update widget, remove window, clear all). The undone state is pushed to the redo stack. |
| imgui_redoA | Redo the last undone operation. Re-applies the state that was reversed by imgui_undo. |
| imgui_export_cppB | Export the current UI layout as C++ ImGui code that recreates all windows and widgets with their current values. |
| imgui_export_luaA | Export the current UI layout as Lua ImGui bindings code that recreates all windows and widgets with their current values. |
| imgui_export_jsonA | Export the current UI layout as structured JSON with version info, window properties, and all widget definitions. |
| imgui_import_jsonA | Import a UI layout from JSON (same format as imgui_export_json). Clears the current layout and recreates all windows and widgets. |
| imgui_load_textureA | Load a texture from a BMP or PPM file. If the file doesn't exist or is unsupported, creates a 64x64 checkerboard placeholder texture. |
| imgui_unload_textureA | Unload a previously loaded texture and free its GPU resources. |
| imgui_load_fontB | Load a TTF or OTF font into the live ImGui atlas under a stable ID. Use imgui_set_font to make it the global default. |
| imgui_set_fontB | Set the global default font by loaded ID. Use 'default' to restore Dear ImGui's embedded font. |
| imgui_list_fontsB | List loaded fonts, their native paths and sizes, and which font is active. |
| imgui_set_themeA | Apply a theme preset to the ImGui interface. Available themes: dark, light, classic, fantasy (gold/amber accents), scifi (cyan/teal accents), retro (green terminal style), minimal (white, thin borders, no rounding). |
| imgui_set_theme_colorA | Set a specific ImGui style color by name. Color names include: Text, WindowBg, FrameBg, Button, ButtonHovered, ButtonActive, Header, HeaderHovered, HeaderActive, Border, CheckMark, SliderGrab, etc. |
| imgui_set_style_varC | Set an ImGui style variable. Float vars: FrameRounding, WindowRounding, IndentSpacing, ScrollbarSize, GrabMinSize, etc. Vec2 vars: FramePadding, ItemSpacing, WindowPadding, etc. |
| imgui_add_hit_regionA | Add an interactive hit region to a window. Hit regions are invisible shapes that detect mouse hover, click, drag, double-click, and wheel events. Use with imgui_get_canvas_events to read interactions. Shapes: rect, circle, ellipse, polygon. |
| imgui_remove_hit_regionB | Remove a hit region by its id |
| imgui_update_hit_regionB | Update a hit region's shape, transform, or interaction flags. Only provided fields are updated. |
| imgui_get_canvas_eventsA | Drain canvas interaction events from hit regions. Returns hover, click, drag (start/move/end), wheel, and double-click events with positions and deltas. Events are consumed on read. |
| imgui_update_draw_commandB | Update a single draw command in a named draw layer without replacing the entire layer. Specify the command index and the fields to change. |
| imgui_transform_draw_layerB | Apply a transform to an entire draw layer: translate, rotate, scale, or set opacity. Transforms persist until changed and apply to all draw commands in the layer. |
| imgui_bindA | Bind a widget's value to a visual property. Each frame the source widget's property is read, scaled, offset, and written to the target. Example: bind a slider's value to a draw layer's opacity. |
| imgui_unbindA | Remove bindings. Filter by source_widget and/or target_id, or omit both to remove all. |
| imgui_set_callbackA | Set a declarative callback action that fires automatically when a widget event occurs. Actions: toggle_visibility, set_visibility, set_value, switch_scene. No polling round-trip needed. |
| imgui_remove_callbackB | Remove declarative callbacks. Filter by trigger_widget and/or action. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SaloQT/imgui-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server