idfkit-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_doc_sectionA | Read full content of a doc section from search_docs results. |
| search_docsB | Search EnergyPlus docs by keyword. |
| view_geometryA | Show interactive 3D building geometry from the loaded model. Renders all building surfaces, fenestration, and shading geometry in a Three.js viewport with orbit controls. Click surfaces to inspect properties; toggle visibility by surface type or zone. |
| check_model_integrityA | Domain-level pre-simulation QA — catches issues schema validation cannot. Runs six checks against the loaded model:
Use this after validate_model and before run_simulation. A model can pass validate_model but still fail these checks. Preconditions: model loaded. Side effects: none — read-only. |
| migrate_modelA | Forward-migrate the loaded model to a newer EnergyPlus version. Drives the EnergyPlus IDFVersionUpdater transition binaries through the
required chain of steps and replaces the session document with the migrated
one. Preconditions: model loaded; target version >= current model version. Side effects: replaces the in-memory document; records a change-log entry. Next step: validate_model + check_model_integrity, then save_model. Read |
| analyze_peak_loadsA | Analyze peak heating and cooling loads for QA/QC. Decomposes facility and zone-level peaks into components (solar, people, lighting, equipment, infiltration, envelope) and flags potential issues such as unusual peak timing, excessive loads, or component dominance. Requires a completed simulation with SQL output and the SensibleHeatGainSummary and HVACSizingSummary reports. |
| convert_osm_to_idfC | Convert an OSM model to IDF and load it. |
| get_change_logA | Return recent model mutation history for this session. Records add, update, remove, rename, duplicate, load, and new-model operations in chronological order. Useful for auditing what the agent has changed and verifying that edits were applied as intended. The log is in-memory only and resets when clear_session is called. |
| list_objectsA | List objects of a type. By default each object is returned in brief form: name plus schema-required fields
only. Optional fields (economizer settings, enum overrides, etc.) are omitted — set
|
| load_modelA | Open an IDF or epJSON file as the active model. Provide exactly one source: |
| search_objectsA | Find objects by name or field value substring match. |
| view_schedulesA | Show interactive schedule heatmap from the loaded model. Renders EnergyPlus schedules as a visual heatmap showing hourly values across days of the week (week view) or across the full year (year view). Supports Schedule:Compact, Schedule:Constant, Schedule:Year, and Schedule:File types. |
| describe_object_typeA | Field schema with types, constraints, defaults, and references. Call before adding objects. |
| get_available_referencesA | List valid names for a reference field (e.g. zone_name). |
| list_object_typesA | Browse object types grouped by category. Filter by group to list individual types. |
| search_schemaA | Find object types by name or description. |
| export_timeseriesC | Export time series to CSV. |
| list_output_variablesA | List output variables and meters from last simulation. |
| list_simulation_reportsA | List all tabular report names available in the last simulation's SQL output. Use the returned names with Preconditions: simulation completed with SQL output available. Side effects: none — read-only. |
| query_simulation_tableA | Query tabular report data from the last simulation's SQL output. Use this for deeper analysis beyond the structured diagnostics in
Omit
Preconditions: simulation completed with SQL output available ( |
| query_timeseriesB | Query time series data from simulation SQL output. |
| run_simulationA | Execute EnergyPlus on the loaded model — the authoritative runtime validation gate. Fatal or severe errors mean the model did not simulate correctly. A clean exit does
not guarantee physically reasonable results. After this call, read the resource
Preconditions: model loaded; weather file set via download_weather_file, or design_day=True. Side effects: writes outputs to output_directory; updates session simulation result. Next step: read idfkit://simulation/results to assess result quality. |
| view_simulation_reportA | Browse the full EnergyPlus tabular report in an interactive viewer. Returns all tabular data from the simulation SQL output organized by report, section, and table. The companion viewer provides a searchable, browsable interface with a table-of-contents sidebar. Requires a completed simulation with SQL output. |
| validate_modelA | Schema-based pre-flight check — run after any model modifications. Checks field types, numeric ranges, required fields, enum values, singleton constraints (codes E001-E010, W001-W003), and cross-object reference integrity. IMPORTANT: This is schema validation only. It does not run EnergyPlus and cannot detect runtime faults such as convergence failures, zone connectivity issues, or autosizing problems. A model that passes this check may still fail to simulate. Preconditions: model loaded (load_model or new_model). Side effects: none — read-only. Next steps: check_model_integrity for domain-level QA, then save_model, then run_simulation for definitive runtime validation. |
| download_weather_fileA | Download EPW/DDY files for a station. Auto-used by run_simulation. |
| search_weather_stationsB | Find weather stations by name or coordinates. |
| add_objectA | Add one object. Use batch_add_objects for multiple. |
| batch_add_objectsA | Add multiple objects in one call. Continues on errors. |
| clear_sessionA | Reset model and simulation state so you can start fresh. Unloads the current model, schema, simulation results, migration report, and weather file. Uploaded files are kept so the user can re-load them without re-uploading. WARNING: Only call this when the user explicitly asks to start over. Do NOT call this to recover from tool errors — those errors are recoverable by retrying the failed tool or calling load_model again. |
| duplicate_objectB | Copy an object with a new name. |
| new_modelB | Create an empty model. |
| remove_objectA | Delete an object. Blocked if referenced unless force=True. |
| remove_objectsA | Delete every object of the given type. No-op when none exist. Intended for types where individual entries have no canonical addressable
identity ( Blocked when any entry is referenced by other objects unless |
| rename_objectA | Rename and auto-update all references. |
| save_modelA | Write model to disk as IDF or epJSON. When file_path is omitted the model is re-saved to its original load
path. An explicit file_path must resolve within an allowed output
directory ( |
| update_objectC | Update fields on an existing object. |
| get_zone_propertiesA | Typed summary of zone geometry, surfaces, constructions, schedules, and HVAC. Returns floor area, volume, ceiling height, surface counts by type (walls/floors/roofs/ windows/doors), unique construction names, schedule names referenced by zone loads, HVAC equipment connection names, and thermostat control object names. Geometry values (area, volume, height) are calculated from BuildingSurface:Detailed vertices and returned as None when no surfaces exist for the zone. Preconditions: model loaded. Side effects: none — read-only. |
| list_filesA | List all uploaded files with metadata. |
| file_managerC | Upload and manage files. Drop files here to send them to the server. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| geometry_viewer | Interactive Three.js viewer for EnergyPlus building geometry. |
| peak_loads_viewer | Interactive peak load QA/QC viewer for heating and cooling load breakdowns. |
| migration_report | Last migrate_model run: per-step stdout/stderr, structural diff, versions. |
| model_summary | Version, zones, object counts, and groups for the loaded model. |
| peak_loads | Peak heating/cooling load decomposition with component breakdown and QA flags. |
| simulation_report | Full tabular simulation report organized by report section and table. |
| simulation_results | Energy metrics, errors, and tables from the last simulation. |
| schedule_viewer | Interactive heatmap viewer for EnergyPlus schedules. |
| report_viewer | Interactive browser for EnergyPlus tabular simulation reports. |
| Prefab Renderer |
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/idfkit/idfkit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server