Skip to content

Resources

MCP resources exposing read-only model, schema, simulation, and documentation data.

documentation_urls(object_type)

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))

migration_report()

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))

model_summary()

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))

object_data(object_type, name)

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))

object_references(name)

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))

object_schema(object_type)

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_loads_summary()

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())

simulation_report()

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())

simulation_results()

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())