Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_HOSTNoThe host address for the MCP server0.0.0.0
MCP_PORTNoThe port for the MCP server8000
BLENDER_HOSTNoThe host address for connecting to Blenderhost.docker.internal
BLENDER_PORTNoThe port for connecting to Blender9876

Tools

Functions exposed to the LLM to take actions

NameDescription
execute_blender_code
Execute arbitrary Python code in Blender. Parameters: - code: The Python code to execute
get_ifc_project_info
Get basic information about the IFC project, including name, description, and counts of different entity types. Returns: A JSON-formatted string with project information
get_selected_ifc_entities
Get IFC entities corresponding to the currently selected objects in Blender. This allows working specifically with objects the user has manually selected in the Blender UI. Returns: A JSON-formatted string with information about the selected IFC entities
list_ifc_entities
List IFC entities of a specific type. Can be filtered to only include objects currently selected in the Blender UI. Args: entity_type: Type of IFC entity to list (e.g., "IfcWall") limit: Maximum number of entities to return selected_only: If True, only return information about selected objects Returns: A JSON-formatted string listing the specified entities
get_ifc_properties
Get properties of IFC entities. Can be used to get properties of a specific entity by GlobalId, or to get properties of all currently selected objects in Blender. Args: global_id: GlobalId of a specific IFC entity (optional if selected_only is True) selected_only: If True, return properties for all selected objects instead of a specific entity Returns: A JSON-formatted string with entity information and properties
get_ifc_spatial_structure
Get the spatial structure of the IFC model (site, building, storey, space hierarchy). Returns: A JSON-formatted string representing the hierarchical structure of the IFC model
get_ifc_total_structure
Get the complete IFC structure including spatial hierarchy and all building elements. This function extends the basic spatial structure to include building elements like walls, doors, windows, columns, beams, etc. that are contained within each spatial element. It provides a comprehensive view of how the building is organized both spatially and in terms of its physical components. Returns: A JSON-formatted string representing the complete hierarchical structure of the IFC model including spatial elements and their contained building elements, plus summary statistics
get_ifc_relationships
Get all relationships for a specific IFC entity. Args: global_id: GlobalId of the IFC entity Returns: A JSON-formatted string with all relationships the entity participates in
export_ifc_data
Export IFC data to a file in JSON or CSV format. This tool extracts IFC data and creates a structured export file. You can filter by entity type and/or building level, and choose the output format. Args: entity_type: Type of IFC entity to export (e.g., "IfcWall") - leave empty for all entities level_name: Name of the building level to filter by (e.g., "Level 1") - leave empty for all levels output_format: "json" or "csv" format for the output file Returns: Confirmation message with the export file path or an error message
place_ifc_object
Place an IFC object at a specified location with optional rotation. This tool allows you to create and position IFC elements in the model. The object is placed using the specified IFC type and positioned at the given coordinates with optional rotation around the Z axis. Args: type_name: Name of the IFC element type to place (must exist in the model) x: X-coordinate in model space y: Y-coordinate in model space z: Z-coordinate in model space rotation: Rotation angle in degrees around the Z axis (default: 0) Returns: A message with the result of the placement operation
get_user_view
Capture and return the current Blender viewport as an image. Shows what the user is currently seeing in Blender. Focus mostly on the 3D viewport. Use the UI to assist in your understanding of the scene but only refer to it if specifically prompted. Args: max_dimension: Maximum dimension (width or height) in pixels for the returned image compression_quality: Image compression quality (1-100, higher is better quality but larger) Returns: An image of the current Blender viewport
get_ifc_quantities
Extract and get basic qtos about the IFC project. Returns: A JSON-formatted string with project quantities information
export_bc3_budget
Export a BC3 budget file (FIEBDC-3/2016) based on the IFC model loaded in Blender. This tool creates a complete construction budget in BC3 format by: 1. Extracting the complete IFC spatial structure (Project → Site → Building → Storey) 2. Extracting IFC quantities and measurements for all building elements 3. Converting to BC3 hierarchical format with IFC2BC3Converter: - Generates budget chapters from IFC spatial hierarchy - Groups building elements by type and categories defined in external JSON - Assigns unit prices from language-specific JSON database - Creates detailed measurements sorted alphabetically 4. Exports to BC3 file with windows-1252 encoding Features: - Multi-language support (Spanish/English) for descriptions and labels - Automatic element categorization using external JSON configuration - Optimized conversion with O(1) lookups and batch operations - Detailed measurements with dimensions (units, length, width, height) - Full FIEBDC-3/2016 format compliance Configuration files (in resources/bc3_helper_files/): - precios_unitarios.json / unit_prices.json: Unit prices per IFC type - spatial_labels_es.json / spatial_labels_en.json: Spatial element translations - element_categories.json: IFC type to category mappings Args: language: Language for the budget file ('es' for Spanish, 'en' for English). Default is 'es'. Returns: A confirmation message with the path to the generated BC3 file in the exports/ folder.
export_drawing_png

Export drawings as PNG images with custom resolution.

Creates a drawing, with the view type specified, of the IFC building at the specified height above the floor level. Supports custom resolution for high-quality architectural drawings. Args: height_offset: Height in meters above the storey level for the camera position (default 0.5m) view_type: Type of view - "top" for plan view, "front", "right" and "left" for elevation views, and "isometric" for 3D view resolution_x: Horizontal resolution in pixels (default 1920, max recommended 4096) resolution_y: Vertical resolution in pixels (default 1080, max recommended 4096) storey_name: Specific storey name to add to the file name (if None, prints default in the file name) output_path: Optional file path to save the PNG (if None, returns as base64 image) Returns: metadata and the path of the file image of the drawing at the specified resolution
get_ifc_georeferencing_info
Checks whether the IFC currently opened in Bonsai/BlenderBIM is georeferenced and returns the key georeferencing information. Parameters ---------- include_contexts : bool If True, adds a breakdown of the RepresentationContexts and operations. Returns -------- str (JSON pretty-printed) { "georeferenced": true|false, "crs": { "name": str|null, "geodetic_datum": str|null, "vertical_datum": str|null, "map_unit": str|null }, "map_conversion": { "eastings": float|null, "northings": float|null, "orthogonal_height": float|null, "scale": float|null, "x_axis_abscissa": float|null, "x_axis_ordinate": float|null }, "world_coordinate_system": { "origin": [x, y, z]|null }, "true_north": { "direction_ratios": [x, y]|null }, "site": { "local_placement_origin": [x, y, z]|null, "ref_latitude": [deg, min, sec, millionth]|null, "ref_longitude": [deg, min, sec, millionth]|null, "ref_elevation": float|null }, "contexts": [...], # only if include_contexts = true "warnings": [ ... ] # Informational message } Notes ----- - This tool acts as a wrapper: it sends the "get_ifc_georeferencing_info" command to the Blender add-on. The add-on must implement that logic (reading IfcProject/IfcGeometricRepresentationContext, IfcMapConversion, TargetCRS, IfcSite.RefLatitude/RefLongitude/RefElevation, etc.). - It always returns a JSON string with indentation for easier reading.
georeference_ifc_model

Georeferences the IFC currently opened in Bonsai/BlenderBIM by creating or updating IfcProjectedCRS and IfcMapConversion. Optionally updates IfcSite and writes the file to disk.

generate_ids
Creates an .ids file in Blender/Bonsai by calling the add-on handler 'generate_ids'. Parameters: - title (str): Title of the IDS. - specs (list | JSON str): List of 'specs' containing 'applicability' and 'requirements'. Each facet is a dict with at least a 'type' field ("Entity", "Attribute", "Property", "Material", "Classification", "PartOf") and its corresponding attributes. - description, author, ids_version, date_iso, purpose, milestone: IDS metadata fields. - output_path (str): Full path to the .ids file to be created. If omitted, the add-on will generate a default name. Returns: - JSON (str) with the handler result: {"ok": bool, "output_path": "...", "message": "..."} or {"ok": False, "error": "..."}

Prompts

Interactive templates invoked by user choice

NameDescription
Technical_building_report Generate a comprehensive technical building report based on an IFC model loaded in Blender. Args: project_name: Name of the project/building project_location: Building location (city, address) language: Report language - "english", "spanish", "french", "german", "italian", "portuguese" Returns: Structured technical report following basic project standards in the selected language.

Resources

Contextual data attached and managed by the client

NameDescription
file://table_of_contents.json/

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/JotaDeRodriguez/Bonsai_mcp'

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