Skip to main content
Glama
idfkit

idfkit-mcp

Official
by idfkit

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": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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:

  • Zones with no BuildingSurface:Detailed surfaces

  • Missing required simulation control objects (Version, Building, Timestep, RunPeriod, SimulationControl)

  • Orphan schedules (defined but not referenced by any object)

  • Surface boundary condition mismatches (non-reciprocal 'Surface' pairs)

  • Fenestration surfaces referencing non-existent host surfaces

  • ZoneHVAC:EquipmentConnections referencing non-existent zones

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. state.file_path is unchanged — call save_model(path=...) to persist the migrated model.

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 idfkit://migration/report for per-step stdout/stderr and the structural diff after the call.

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 include_all_fields=True to get every field, or read the idfkit://model/objects/{type}/{name} resource for one object's full field values.

load_modelA

Open an IDF or epJSON file as the active model.

Provide exactly one source: file_path for files on the server's disk, or upload_name to load a file the user dropped into the file_manager UI.

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 query_simulation_table to retrieve specific tables.

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 idfkit://simulation/results. Tabular data covers every EnergyPlus summary report: energy use, envelope, HVAC sizing, comfort, and more.

Omit table_name to retrieve all tables within a report at once. To discover available report names call list_simulation_reports first. Common report names:

  • AnnualBuildingUtilityPerformanceSummary — site/source energy, end uses, EUI

  • SystemSummary — unmet hours, HVAC sizing

  • EnvelopeSummary — U-values, areas, orientations

  • EquipmentSummary — HVAC component sizing

  • ZoneComponentLoadSummary — peak heating/cooling loads by zone

  • LightingSummary — lighting power density

Preconditions: simulation completed with SQL output available (sql_available: true in idfkit://simulation/results). Side effects: none — read-only.

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 idfkit://simulation/results for full QA diagnostics: unmet hours by zone, end-use energy breakdown, classified warnings, and QA flags that drive the fix loop.

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 (Output:Variable, Output:Meter, …): those parse with _name="" to support duplicates, so remove_object cannot reach them individually. Use this when the calling tool owns the entire collection and wants replace-all semantics (e.g. an output-picker UI).

Blocked when any entry is referenced by other objects unless force=True.

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 (IDFKIT_MCP_OUTPUT_DIRS, defaults to CWD) and will not overwrite an existing file unless overwrite is True.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
geometry_viewerInteractive Three.js viewer for EnergyPlus building geometry.
peak_loads_viewerInteractive peak load QA/QC viewer for heating and cooling load breakdowns.
migration_reportLast migrate_model run: per-step stdout/stderr, structural diff, versions.
model_summaryVersion, zones, object counts, and groups for the loaded model.
peak_loadsPeak heating/cooling load decomposition with component breakdown and QA flags.
simulation_reportFull tabular simulation report organized by report section and table.
simulation_resultsEnergy metrics, errors, and tables from the last simulation.
schedule_viewerInteractive heatmap viewer for EnergyPlus schedules.
report_viewerInteractive browser for EnergyPlus tabular simulation reports.
Prefab Renderer

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/idfkit/idfkit-mcp'

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