Skip to main content
Glama
Show2Instruct

Bonsai MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_scene_infoA

[QUERY] Return a summary of the current Blender scene (scene name, object count, selection, collections, IFC availability). When query is supplied, the response also includes an objects list filtered by the query. Supported queries: 'all', 'selected', 'walls', 'doors', 'windows', 'spaces', 'slabs', 'columns', 'beams', 'roofs', 'stairs', 'by_class', 'by_name', 'by_global_id'.

get_selected_objectsA

[QUERY] Return name, type, location, dimensions, and (if available) IFC class and GlobalId for each currently selected object.

get_psetsA

[QUERY] Return IFC property sets (psets) and quantity sets (qtos) for one or more objects. Accepts any mix of global_ids and names lists (Blender object names). Up to 100 targets per call. The response preserves input order in a results list.

get_viewport_screenshotA

[QUERY] Capture the Blender 3D viewport and return the image inline. Optionally aim the viewport first: view sets the direction (top/bottom/front/back/left/right = orthographic axis views, 'iso' = perspective isometric, 'camera' = scene camera) and fit frames the content ('all' or 'selected'). The render is downscaled so the longest edge fits max_size (default 800 px) and encoded as JPEG by default, keeping the response safely under MCP size limits. Scene render settings are restored afterwards; the viewport orientation persists.

get_ifc_project_infoA

[QUERY] Return IFC schema, project name, counts of sites/buildings/storeys, counts of common IFC entities, and material and classification summaries. Returns a clear error if no IFC project is loaded.

execute_ifc_codeA

[EDIT] PREFERRED code execution tool. Runs IfcOpenShell / Bonsai API code with a pre-injected IFC namespace. bpy access is BLOCKED; use execute_blender_code only when you genuinely need Blender operations (viewport, rendering, object transforms). Pre-injected variables: ifc (the loaded IFC file or None), ifcopenshell, ifc_api (ifcopenshell.api), element_util (ifcopenshell.util.element), tool (bonsai.tool). Pre-injected helper functions: get_ifc_file() (loaded IFC file or raises), get_default_container() (active spatial container), save_and_load_ifc(path=None) (save the project and reload it; call this after IFC edits to make them visible in the viewport, since edits do NOT appear until the project is reloaded). Use this for: querying IFC entities, reading/writing properties, traversing the IFC model, calling ifcopenshell.api operations, and any BIM data work.

execute_blender_codeA

[EDIT] Run arbitrary Python code inside Blender with full bpy access. Use ONLY when you need Blender-specific operations (viewport manipulation, rendering, object transforms, modifiers). For IFC/BIM data operations, ALWAYS prefer execute_ifc_code. LOCAL TRUSTED USE ONLY.

save_ifc_fileA

[EDIT] Save the loaded IFC model. With no arguments it saves the project back to its own file (in-place, like File > Save IFC). Pass output_path for a save-as; that refuses to overwrite existing files unless overwrite=true. Pass reload=true to reload the project from the saved file afterwards, which rebuilds the Blender scene so IFC-level edits become visible in the viewport.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/Show2Instruct/bonsai-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server