MCP resources exposing read-only model, schema, simulation, and documentation data.
Documentation URLs for an EnergyPlus object type as JSON.
Source code in src/idfkit_mcp/tools/resources.py
| @resource(
"idfkit://docs/{object_type}",
name="documentation_urls",
title="Documentation URLs",
description="I/O Reference, Engineering Reference, and search URLs for an object type.",
mime_type="application/json",
)
def documentation_urls(object_type: str) -> ResourceResult:
"""Documentation URLs for an EnergyPlus object type as JSON."""
from idfkit_mcp.tools.docs import build_documentation_urls
return _to_resource_json(build_documentation_urls(object_type))
|
Most recent migration report as JSON.
Source code in src/idfkit_mcp/tools/resources.py
| @resource(
"idfkit://migration/report",
name="migration_report",
title="Migration Report",
description="Last migrate_model run: per-step stdout/stderr, structural diff, versions.",
mime_type="application/json",
)
def migration_report() -> ResourceResult:
"""Most recent migration report as JSON."""
from idfkit_mcp.tools.migration import serialize_report_for_resource
state = get_state()
if state.migration_report is None:
raise ValueError("No migration has run in this session. Call migrate_model first.")
return _to_resource_json(serialize_report_for_resource(state.migration_report))
|
Current model summary as JSON.
Source code in src/idfkit_mcp/tools/resources.py
| @resource(
"idfkit://model/summary",
name="model_summary",
title="Model Summary",
description="Version, zones, object counts, and groups for the loaded model.",
mime_type="application/json",
)
def model_summary() -> ResourceResult:
"""Current model summary as JSON."""
from idfkit_mcp.tools.read import build_model_summary
state = get_state()
doc = state.require_model()
return _to_resource_json(build_model_summary(doc, state))
|
Serialized model object data as JSON.
Source code in src/idfkit_mcp/tools/resources.py
| @resource(
"idfkit://model/objects/{object_type}/{name}",
name="object_data",
title="Object Data",
description="All field values for a specific EnergyPlus object.",
mime_type="application/json",
)
def object_data(object_type: str, name: str) -> ResourceResult:
"""Serialized model object data as JSON."""
state = get_state()
doc = state.require_model()
obj = doc.get_collection(object_type).get(name)
if obj is None:
raise ValueError(f"Object '{name}' of type '{object_type}' not found.")
return _to_resource_json(serialize_object(obj))
|
Bidirectional reference graph for an object as JSON.
Source code in src/idfkit_mcp/tools/resources.py
| @resource(
"idfkit://model/references/{name}",
name="object_references",
title="Object References",
description="Bidirectional references: who references this object and what it references.",
mime_type="application/json",
)
def object_references(name: str) -> ResourceResult:
"""Bidirectional reference graph for an object as JSON."""
from idfkit_mcp.tools.read import build_references
state = get_state()
doc = state.require_model()
return _to_resource_json(build_references(doc, name))
|
Full schema description for an EnergyPlus object type as JSON.
Source code in src/idfkit_mcp/tools/resources.py
| @resource(
"idfkit://schema/{object_type}",
name="object_schema",
title="Object Schema",
description="Full field schema for an EnergyPlus object type.",
mime_type="application/json",
)
def object_schema(object_type: str) -> ResourceResult:
"""Full schema description for an EnergyPlus object type as JSON."""
from idfkit_mcp.tools.schema import describe_object_type
return _to_resource_json(describe_object_type(object_type))
|
Peak load QA/QC analysis as JSON.
Source code in src/idfkit_mcp/tools/resources.py
| @resource(
"idfkit://simulation/peak-loads",
name="peak_loads",
title="Peak Load Analysis",
description="Peak heating/cooling load decomposition with component breakdown and QA flags.",
mime_type="application/json",
)
def peak_loads_summary() -> ResourceResult:
"""Peak load QA/QC analysis as JSON."""
from idfkit_mcp.tools.peak_loads import build_peak_load_analysis
return _to_resource_json(build_peak_load_analysis())
|
Full tabular report as JSON for the interactive viewer.
Source code in src/idfkit_mcp/tools/resources.py
| @resource(
"idfkit://simulation/report",
name="simulation_report",
title="Simulation Report",
description="Full tabular simulation report organized by report section and table.",
mime_type="application/json",
)
def simulation_report() -> ResourceResult:
"""Full tabular report as JSON for the interactive viewer."""
from idfkit_mcp.tools.simulation import build_simulation_report
return _to_resource_json(build_simulation_report())
|
Latest simulation results summary as JSON.
Source code in src/idfkit_mcp/tools/resources.py
| @resource(
"idfkit://simulation/results",
name="simulation_results",
title="Simulation Results",
description="Energy metrics, errors, and tables from the last simulation.",
mime_type="application/json",
)
def simulation_results() -> ResourceResult:
"""Latest simulation results summary as JSON."""
from idfkit_mcp.tools.simulation import get_results_summary
return _to_resource_json(get_results_summary())
|