Skip to main content
Glama
idfkit

idfkit-mcp

Official
by idfkit

idfkit-mcp

Release Build status codecov License

An MCP server that lets AI assistants work directly with EnergyPlus building energy models. Connect it to Claude, ChatGPT, Cursor, Codex, or any MCP-compatible client and use natural language to:

  • Build models from scratch — describe a building and let the agent create zones, surfaces, constructions, schedules, and HVAC systems

  • Edit existing models — load an IDF or epJSON file, rename objects, swap materials, adjust setpoints, and validate as you go

  • Run simulations — pick a weather file, launch EnergyPlus, and query or export the results without leaving the conversation

  • Explore the schema — ask what fields a ZoneHVAC:IdealLoadsAirSystem accepts, what values are valid, and get links to the official EnergyPlus documentation

  • Search the docs — full-text search across the EnergyPlus I/O Reference, Engineering Reference, and other documentation sets hosted on docs.idfkit.com

Built on idfkit, it supports EnergyPlus 8.9 through 26.1 (17 versions with bundled schemas). Schema exploration, model editing, and validation work out of the box with no external dependencies. Running simulations requires a local EnergyPlus install — the server discovers it automatically via PATH, the ENERGYPLUS_DIR env var, or standard OS install locations. A Docker image with EnergyPlus bundled is also available.

Documentation | GitHub

Tools

The server exposes 37 tools across ten categories, plus 13 MCP resources for read-only data access:

Category

Tools

What they do

Schema

4

Explore object types, fields, constraints, and valid references

Model Read

6

Load IDF/epJSON/OSM files, inspect objects, search, and read change history

Model Write

10

Create models, add/update/remove/rename/duplicate objects, save, and manage sessions

Validation

2

Schema validation and pre-simulation integrity checks

Simulation

8

Run EnergyPlus, query variables and tabular reports, export time series, analyze peak loads, and view reports

Weather

2

Search weather stations worldwide and download EPW/DDY files

Geometry

1

Interactive 3D building geometry viewer (MCP Apps)

Schedules

1

Interactive schedule heatmap viewer (MCP Apps)

Migration

1

Migrate IDF models forward across EnergyPlus versions

Documentation

2

Search and read EnergyPlus documentation from docs.idfkit.com

All tools return structured Pydantic models. Schema, validation, and search results include direct doc_url links to the relevant EnergyPlus documentation.

Session state (loaded model, simulation results, weather file) is persisted to disk automatically, so clients that restart the server between turns (e.g. Codex) can resume where they left off.

Related MCP server: ladybug-tools-mcp

Installation

pip install idfkit-mcp

Or with uv:

uv add idfkit-mcp

Usage

Run as stdio MCP server (default):

idfkit-mcp

Run as Streamable HTTP MCP server:

idfkit-mcp --transport streamable-http --host 127.0.0.1 --port 8000

Quick MCP Setup

Add idfkit-mcp to your MCP client. Example for Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "idfkit": {
      "command": "uvx",
      "args": ["--from", "idfkit-mcp", "idfkit-mcp"]
    }
  }
}

See MCP Client Setup for all supported clients (Claude Desktop, Cursor, VS Code, Claude Code, Windsurf, ChatGPT, Codex, JetBrains, Cline, Continue, and Zed).

Development

This project uses uv for dependency management and Zensical for documentation.

Setup

# Clone the repository
git clone https://github.com/idfkit/idfkit-mcp.git
cd idfkit-mcp

# Install dependencies and pre-commit hooks
make install

Commands

make install    # Install dependencies and pre-commit hooks
make check      # Run linting, formatting, and type checks
make test       # Run tests with coverage
make docs       # Serve documentation locally
make docs-test  # Test documentation build
make docker-build  # Build base Docker image (no EnergyPlus)
make docker-build-sim ENERGYPLUS_TARBALL_URL=<linux-tarball-url>  # Build simulation image
make docker-build-sim DOCKER_PLATFORM=linux/amd64 ENERGYPLUS_TARBALL_URL=<linux-x86_64-tarball-url>  # Apple Silicon + x86 tarball
make docker-run    # Run Docker container

Releasing

  1. Bump the version: uv version --bump <major|minor|patch>

  2. Commit and push

  3. Create a new release on GitHub with a tag matching the version (e.g., 1.0.0)

The GitHub Action will automatically publish to PyPI.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Available Tools

39 tools
add_objectA

Add one object. Use batch_add_objects for multiple.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoObject name (empty for unnamed types).
fieldsNoField values as {field_name: value}.
object_typeYesEnergyPlus object type (e.g. "Zone", "Material").

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false, but description adds no behavioral context (e.g., side effects, permissions). Simply restates the action without depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences with no waste. Essential information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with high schema coverage and no output schema, the description covers the basics but lacks details on return values or validation behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and description adds no additional parameter meaning beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Add one object' and distinguishes from sibling 'batch_add_objects', using a specific verb-resource pair.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use batch_add_objects for multiple, providing clear context for when to use an alternative. No further exclusions or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_peak_loadsA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
flagsNo
coolingYesFacility-level peak load with component breakdown and zone ranking.
heatingYesFacility-level peak load with component breakdown and zone ranking.
sizing_coolingNo
sizing_heatingNo
total_floor_area_m2Yes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only, idempotent, non-destructive behavior. The description adds context by detailing the decomposition and flagging of issues, which aligns with the annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of three clear sentences. It front-loads the primary purpose, then adds details on components and prerequisites. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists, the description fully explains what the tool does, its components, and prerequisites. It is complete for an agent to understand when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description does not need to add parameter info. The schema coverage is 100%, and the description focuses on the tool's purpose and requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes peak heating and cooling loads for QA/QC, decomposes peaks into specific components, and flags issues. It is a specific verb-resource pair that distinguishes it from sibling tools such as run_simulation or query_timeseries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the prerequisite: a completed simulation with specific SQL output and reports. This provides clear context for when to use the tool, though it does not explicitly list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_add_objectsA

Add multiple objects in one call. Continues on errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectsYesList of dicts with keys: object_type, name, fields.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
errorsYes
resultsYes
successYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the behavioral trait 'Continues on errors,' which is not covered by annotations. Annotations indicate non-readonly, non-idempotent, non-destructive, which align with the add operation. The error-continuation detail provides useful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The first sentence states the purpose, the second adds a key behavioral detail. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with an output schema, the description provides sufficient context. It covers the core function and error behavior, and the output schema handles return value documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description of the 'objects' parameter structure. The description adds no additional parameter meaning beyond the schema, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool adds multiple objects in one call, distinguishing it from single-object add operations. The verb 'Add' and resource 'multiple objects' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for batch adding but does not explicitly state when to prefer this over the sibling add_object for singular additions. No when-not-to-use or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_model_integrityA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesYes
passedYes
checks_runYes
error_countYes
warning_countYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds 'Side effects: none — read-only' and details the six checks performed, offering substantial behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a summary line, a bulleted list of checks, a usage note, and a clear preconditions/side effects line. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides preconditions ('model loaded'), side effects ('none — read-only'), and detailed check lists. With an output schema present (context signals), it is fully complete for a no-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters; the input schema is empty with 100% coverage. The description does not need to add parameter details, and the baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it is a 'Domain-level pre-simulation QA' tool that catches issues schema validation cannot. It lists six specific checks, clearly distinguishing it from siblings like validate_model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using it 'after validate_model and before run_simulation' and explains that a model can pass validate_model yet fail these checks, providing clear context for when to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_sessionA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description details the destructive nature (unloads state) and preserves uploaded files, going beyond the destructiveHint annotation. No contradiction—it accurately reflects the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence for purpose, one list of what is unloaded, one note on preservation, and one warning. No wasted words, well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no input parameters and an output schema, the description fully covers the tool's effect on state, preservation policy, and usage constraints. It is complete for an agent to decide on invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description correctly avoids parameter discussion. The baseline for 0 parameters is 4, and the description provides sufficient context for the tool's operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: resets model and simulation state. It lists specific items unloaded (model, schema, results, migration report, weather file) and explains that uploaded files are preserved, distinguishing it from other tools like new_model or load_model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance on when to use (user asks to start over) and when not to use (tool errors); provides alternatives (retry or load_model). This is exemplary usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_osm_to_idfC
Idempotent

Convert an OSM model to IDF and load it.

ParametersJSON Schema
NameRequiredDescriptionDefault
osm_pathYesSource .osm path.
overwriteNoOverwrite existing output.
output_pathYesOutput .idf path.
allow_newer_versionsNoAllow newer OSM versions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
groupsYes
statusYes
versionYes
osm_pathYes
file_pathYes
zone_countYes
output_pathYes
total_objectsYes
openstudio_versionYes
allow_newer_versionsYes
translator_errors_countYes
translator_warnings_countYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only states the conversion and loading without detailing side effects (e.g., overwriting files, session impact). Annotations indicate idempotent and non-read-only, but the description adds minimal behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (one short sentence), but at the cost of missing important usage and behavioral details. Every sentence should earn its place; this one is too terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema and a complex conversion task, the description lacks prerequisites, behavioral side effects, and distinction from sibling tools. It does not fully specify what happens to the current session or model state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds no additional meaning to parameters. Baseline 3 is appropriate since the schema already documents each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (convert) and the resources (OSM model to IDF), and mentions loading. However, it does not differentiate from the sibling tool 'load_model' or clarify if the conversion and loading are always combined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'migrate_model' or 'load_model'. The description lacks when-not-to-use or prerequisite information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describe_object_typeA
Read-onlyIdempotent

Field schema with types, constraints, defaults, and references. Call before adding objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoEnergyPlus version as "X.Y.Z".
object_typeYesObject type name (e.g. "Zone", "Material").

Output Schema

ParametersJSON Schema
NameRequiredDescription
memoYes
fieldsYes
doc_urlNo
has_nameYes
object_typeYes
is_extensibleYes
extensible_sizeYes
required_fieldsYes
extensible_groupNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the tool is safe. The description adds specific behavioral context about the returned content (schema with types, constraints, defaults, references), which aids the agent beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (8 words) and front-loaded. Every word earns its place, providing essential information without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete given that an output schema exists (not shown but context indicates its presence) and the tool is a simple read-only schema retrieval. It tells the agent when to use it (before adding objects) and what it returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage, so parameters are well-defined. The description does not add extra semantic detail about parameters beyond what the schema provides, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it provides a field schema with types, constraints, defaults, and references, and instructs to call before adding objects. The purpose is clear but could explicitly state the action 'describe'. It distinguishes from sibling manipulation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a when-to-use context ('Call before adding objects') but does not mention when not to use or alternatives among siblings like search_schema or list_objects.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_weather_fileA
Idempotent

Download EPW/DDY files for a station. Auto-used by run_simulation.

ParametersJSON Schema
NameRequiredDescriptionDefault
wmoNoWMO station number.
queryNoCity or airport name.
stateNoState code, e.g. "MA".
countryNoCountry code, e.g. "USA".

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
stationYesWeather station metadata.
ddy_pathYes
epw_pathYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the context that it is auto-used, but does not disclose additional behavioral traits beyond what annotations provide. Annotations already indicate idempotence and non-destructiveness, and the description is consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with no wasted words. Two sentences effectively communicate the purpose and a key usage hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and annotations, the description is adequate for an agent. It covers the essential purpose and auto-use context, though it omits details like output file location or error behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The tool description does not add any parameter meaning beyond what the schema already provides, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Download', the resource 'EPW/DDY files', and the context 'for a station'. It also distinguishes from siblings like search_weather_stations by indicating it is auto-used by run_simulation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states 'Auto-used by run_simulation', implying that manual use is typically unnecessary. However, it does not provide explicit when-to-use or when-not-to-use guidance relative to other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

duplicate_objectB

Copy an object with a new name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSource object name.
new_nameYesName for the duplicate.
object_typeYesEnergyPlus object type.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only says 'copy', but fails to disclose behavioral details such as overwrite behavior, error conditions, or side effects. Annotations provide minimal safety info (readOnlyHint=false, destructiveHint=false), so description carries burden and falls short.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the core action, and contains no unnecessary words. It is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks details on return values, error behavior, and edge cases (e.g., duplicate new_name). Given no output schema and minimal annotations, more completeness is needed for an agent to use the tool reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have descriptions in the schema, so the schema itself provides meaning. The description adds no additional parameter-level context beyond what is in the schema, so score is baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'copy' and the resource 'object with a new name', making the purpose unambiguous. It distinguishes itself from siblings like rename_object and remove_object.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a copy is needed, but does not explicitly state when to use it versus alternatives like rename_object or add_object. No guidance on prerequisites or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_timeseriesC
Idempotent

Export time series to CSV.

ParametersJSON Schema
NameRequiredDescriptionDefault
frequencyNoReporting frequency.
key_valueNoZone/surface or "*".*
environmentNoEnvironment filter.
output_pathNoCSV path (default: output dir).
variable_nameYesVariable name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
rowsYes
unitsYes
frequencyYes
key_valueNo
variable_nameYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (idempotentHint=true, destructiveHint=false) provide some behavioral context. However, the description adds no additional details, such as whether the CSV file is overwritten or appended, or if export requires prior simulation results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. However, it is very brief and could benefit from slightly more detail without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 params, output schema exists), the description is minimal and lacks context such as default behavior, output file structure, or how it relates to other time series operations. The presence of an output schema reduces the burden, but the tool is still underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema documents all 5 parameters with 100% coverage. The description does not add extra meaning beyond the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Export') and resource ('time series') to a format ('CSV'), making the purpose specific. However, it does not explicitly distinguish from sibling tools like 'query_timeseries' which may also retrieve time series data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., query_timeseries). There is no mention of prerequisites, typical usage scenarios, or contexts where this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_managerC

Upload and manage files. Drop files here to send them to the server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It only mentions 'upload' and 'send to server' but does not disclose side effects, authentication requirements (e.g., login needed), file size limits, or whether uploaded files overwrite existing ones. Lack of behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, minimal waste. However, the second sentence ('Drop files here to send them to the server') reads more like a UI placeholder than a tool description. It could be more direct and structured. Decent but not excellent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and simple structure, the description should explain the tool's role in the file management workflow. It does not mention that upload is only one part of file management, nor does it reference sibling tools like list_files for retrieval. Leaves gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no parameters (coverage 100%, baseline 3), but the description fails to clarify how files are provided. The phrase 'drop files here' suggests a UI interaction, but for an API it is ambiguous. No explanation of expected input format (e.g., multipart upload), file types, or size limits. Underwhelming for a file upload tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Upload and manage files', which clearly identifies the tool's purpose. However, 'manage' is somewhat vague, and the sibling tool 'list_files' suggests file listing is separate, so upload is distinct. Score 4 for specific verb+resource but lacking full precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like list_files or check_model_integrity. The description does not provide any context for appropriate usage or mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_available_referencesA
Read-onlyIdempotent

List valid names for a reference field (e.g. zone_name).

ParametersJSON Schema
NameRequiredDescriptionDefault
field_nameYesField name to check.
object_typeYesObject type containing the reference field.

Output Schema

ParametersJSON Schema
NameRequiredDescription
field_nameYes
object_typeYes
available_namesYes
by_reference_listYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds that it lists valid names for a reference field, which aligns with safe read behavior. No contradictions, but little extra context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the verb and resource, no waste. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic purpose for a simple list tool. An output schema exists, so return values need not be explained. Minor improvement would be to state when to use (e.g., 'before setting a reference field'), but still sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description adds an example ('zone_name') but no additional semantic meaning beyond what the schema provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'List' and resource 'valid names for a reference field', with an example ('zone_name'). It distinguishes itself from sibling tools like search_objects or list_objects by being specific to reference fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an example implying usage for reference field names, but no explicit guidance on when to use this tool vs alternatives (e.g., when setting a reference field). Context is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_change_logA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum entries to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
entriesYes
entry_countYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral context: the log is 'in-memory only and resets when clear_session is called,' and enumerates the specific mutation types captured. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero wasted words. The main purpose is stated in the first sentence, followed by details and a note on scope. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and an existing output schema, the description covers everything needed: purpose, tracked operations, and lifecycle behavior. No gaps given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter (limit) is fully described in the schema (100% coverage). The description does not add additional semantics beyond what the schema already provides. Baseline score of 3 is appropriate as the description does not enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb+resource: 'Return recent model mutation history for this session.' It lists the types of operations tracked (add, update, remove, etc.) and the purpose (auditing, verifying edits). This clearly distinguishes it from sibling tools which focus on simulation, file operations, or object manipulation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the tool is 'useful for auditing what the agent has changed and verifying that edits were applied as intended.' It also warns that the log resets when clear_session is called, implying when not to use it. While it doesn't name alternative tools, the context is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_doc_sectionA
Read-onlyIdempotent

Read full content of a doc section from search_docs results.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoEnergyPlus version as "X.Y".
locationYesSection location key from search_docs results.
max_lengthNoMaximum characters of text to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
tagsYes
textYes
titleYes
doc_urlYes
versionYes
locationYes
truncatedNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is already communicated. The description adds that it reads 'full content', which aligns with annotations and adds minimal behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that is front-loaded with the tool's purpose and context. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description adequately explains what the tool does. It doesn't detail the optional parameters (version, max_length) but those are captured in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema. The description does not add additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Read full content of a doc section', which uses a specific verb and resource. It distinguishes from sibling 'search_docs' by specifying it retrieves the full content of a section found via search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it should be used after 'search_docs' results are obtained, but does not explicitly state when not to use it or mention alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_zone_propertiesA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_nameNoZone name. Omit for all zones.

Output Schema

ParametersJSON Schema
NameRequiredDescription
zonesYes
zone_countYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds that geometry values are calculated from vertices and returned as None when no surfaces exist, which provides useful behavioral detail beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise with no wasted words. Each sentence serves a distinct purpose: overview, listing returns, explaining calculation, stating preconditions and side effects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers preconditions, side effects, behavior on missing data, and return value composition. Since there is an output schema, full detail on return values is not required, but the description still provides a useful summary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage and already describes the parameter (optional zone_name, omitting gets all). The description does not add extra meaning for the parameter beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it is a 'Typed summary of zone geometry, surfaces, constructions, schedules, and HVAC.' Lists specific returned items, which distinguishes it from other tools like view_geometry or analyze_peak_loads.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States preconditions ('model loaded') and side effects ('read-only'). Provides clear context for when to use, but does not explicitly mention when not to use or provide alternative tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_filesA

List all uploaded files with metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description only mentions listing files and metadata, but does not disclose side effects, authentication requirements, rate limits, or output structure beyond 'metadata'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, clearly states the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list-all tool with no parameters and an output schema, the description covers the essential behavior. Could be slightly more specific about metadata, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so baseline is 4. Schema coverage is 100% trivially, and description adds no extra meaning beyond what's implied by 'list all'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List', the resource 'uploaded files', and what is returned 'metadata'. It distinguishes from siblings like 'file_manager' and 'list_objects'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'file_manager' or other listing tools. No when-not-to-use or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_objectsA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum objects to return.
object_typeYesEnergyPlus object type (e.g. "Zone").
include_all_fieldsNoIf False (default), each object includes only its name and schema-required fields to save tokens. Set True to return every field value for every object.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
objectsYes
returnedYes
object_typeYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds value beyond annotations by describing the default brief output, the omission of optional fields, and the include_all_fields option. No contradiction with annotations which correctly indicate read-only, idempotent behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, first sentence states core action, second sentence expands on behavior and alternatives. No unnecessary words, front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, description adequately covers default behavior and key parameter. Mentions alternative resource for full fields. Could mention pagination via limit but limit is documented in schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 100% schema coverage, the description adds concrete examples of optional fields (economizer settings, enum overrides) and explains the default effect of include_all_fields, enhancing understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

'List objects of a type' clearly states the action and resource. It differentiates between brief and full form but does not explicitly contrast with sibling tools like search_objects or list_object_types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for listing objects of a given type and provides alternative ways to get full fields, but does not explicitly state when to use this tool vs siblings or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_object_typesA
Read-onlyIdempotent

Browse object types grouped by category. Filter by group to list individual types.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoFilter to a group (e.g. "Thermal Zones and Surfaces").
limitNoMax type names to include.
versionNoEnergyPlus version as "X.Y.Z".

Output Schema

ParametersJSON Schema
NameRequiredDescription
groupsYes
truncatedYes
total_typesYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description does not need to repeat that. It adds context about grouping by category and filtering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It front-loads the main action and grouping behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core functionality (browsing by category, filtering by group). With an output schema present, the agent does not need further details about return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds minimal value beyond what the schema already provides for parameters. The description mentions filtering by group, which is already documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'browse' and the resource 'object types'. It also adds grouping by category, which distinguishes it from siblings like 'list_objects' (which lists instances) and 'describe_object_type' (which describes a specific type).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Filter by group to list individual types,' which implies when to use it. However, it does not explicitly state when not to use it or provide direct alternatives among the siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_output_variablesA
Read-onlyIdempotent

List output variables and meters from last simulation.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results.
searchNoRegex filter on name (case-insensitive).

Output Schema

ParametersJSON Schema
NameRequiredDescription
returnedYes
variablesYes
total_availableYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as read-only and idempotent. The description adds the context 'from last simulation' but doesn't mention behavior when no simulation exists or if data is empty. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the verb and resource. Efficient with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with output schema and annotations, the description covers the essential purpose. Could mention return format or pagination, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% with descriptions for 'limit' and 'search'. The tool description adds no extra meaning; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists 'output variables and meters from last simulation', specifying both the resource and source. It distinguishes from siblings like 'list_files' or 'list_objects' which are not about simulation outputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives like 'list_simulation_reports' or 'query_simulation_table'. The description only implies usage after a simulation run.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_simulation_reportsA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that there are no side effects and it's read-only, reinforcing the annotations. It also discloses preconditions, which adds value beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using three short sentences with no wasted words. It front-loads the main purpose and provides just enough additional context in follow-up sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there are no parameters and an output schema exists, the description covers all necessary aspects: what the tool does, how to use its output, preconditions, and side effects. It is fully complete for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the description does not need to add parameter-specific meaning. Baseline 4 is appropriate as the description already explains the tool's output and usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists 'all tabular report names available in the last simulation's SQL output.' The verb 'list' and specific resource 'tabular report names from last simulation's SQL output' make the purpose explicit and distinguish it from siblings like query_simulation_table or view_simulation_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage guidance: it tells the agent to use the returned names with 'query_simulation_table' for data retrieval, and specifies preconditions (simulation completed with SQL output). While it doesn't explicitly state when not to use it, the context is sufficient for correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_modelA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion override as "X.Y.Z".
file_pathNoServer-local path to an IDF/epJSON file (stdio/local clients).
upload_nameNoName of a file uploaded via the file_manager UI tool (remote clients).

Output Schema

ParametersJSON Schema
NameRequiredDescription
groupsYes
versionYes
file_pathYes
zone_countYes
total_objectsYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Disclosures that it sets the active model state, consistent with idempotentHint=true. No contradictions with annotations. Adds context about file sources but does not detail side effects (e.g., overwriting unsaved changes).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with front-loaded action verb and clear parameter guidance. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, description adequately covers the loading operation. Could mention effect on existing model state, but siblings like new_model imply this is a replacement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%. Description adds mutual exclusivity constraint and clarifies the distinction between file_path and upload_name, which goes beyond the schema's individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Open' and the resource 'IDF or epJSON file as the active model'. It distinguishes from siblings like new_model and save_model by specifying it loads an existing file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to 'Provide exactly one source: file_path or upload_name', guiding parameter selection. Does not explicitly state alternatives (e.g., new_model for creating a new file), but context is clear for a loading action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

migrate_modelA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
keep_work_dirNoRetain the per-step transition work directory for debugging.
energyplus_dirNoEnergyPlus install dir. Autodetected if None.
target_versionNoTarget EnergyPlus version "X.Y.Z". If omitted, uses the installed EnergyPlus version (the migration binaries ship with EnergyPlus, so an install is required regardless).

Output Schema

ParametersJSON Schema
NameRequiredDescription
diffYesStructural diff between the source and migrated documents.
stepsYes
successYes
summaryYes
source_versionYes
target_versionYes
requested_targetYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (destructiveHint=true) are supplemented with detailed behavioral context: drives IDFVersionUpdater, replaces in-memory document, records changelog, and offers debugging via keep_work_dir. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with bullet points, front-loaded with main action. Slightly verbose but each sentence adds value. No wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given complexity, full schema coverage, output schema present, and annotations, the description covers all critical aspects: preconditions, side effects, next steps, and report location. Highly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions. The tool description adds minimal extra meaning beyond restating schema info, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool forward-migrates the loaded model to a newer EnergyPlus version, using specific verb and resource. It is distinct from siblings like convert_osm_to_idf.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides preconditions (model loaded, target version >= current), side effects (replaces in-memory document, records change-log), and next steps (validate_model, save_model). Does not explicitly compare to alternatives but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

new_modelB

Create an empty model.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoEnergyPlus version as "X.Y.Z" (default: latest).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
versionYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false, so the description carries full responsibility for behavioral disclosure. It fails to mention side effects (e.g., whether an existing model is replaced) or the state of the session after creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence) and front-loads the core purpose. However, some additional context could be included without reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the presence of an output schema, the description omits critical context such as what the tool returns, whether it initializes a session, and how it interacts with an existing model. This is insufficient for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter 'version' is well-documented in the schema. The description adds no additional meaning, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create an empty model' uses a specific verb ('create') and resource ('model') with a qualifier ('empty'). This clearly distinguishes it from sibling tools like load_model or migrate_model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as load_model or clear_session. It lacks any contextual cues about prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_simulation_tableA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
row_nameNoFilter to a specific row label.
table_nameNoTable name within the report (e.g. 'End Uses', 'Time Setpoint Not Met'). Omit to return all tables in the report.
column_nameNoFilter to a specific column label.
report_nameYesReport name (e.g. 'AnnualBuildingUtilityPerformanceSummary', 'SystemSummary'). Use list_simulation_reports to discover available names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsYes
row_countYes
table_nameYes
report_nameYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description aligns with annotations (readOnlyHint=true, destructiveHint=false) by stating 'Side effects: none — read-only.' Adds behavioral detail about omitting table_name retrieving all tables. Could mention response format but output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with purpose first, then usage, parameter guidance, and preconditions. Reasonably concise for the detail provided; could tighten slightly but no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a read-only query tool: covers purpose, parameter usage, preconditions, side effects, and example report names. Output schema handles return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions (100% coverage). Description adds significant value: examples of common report names, guidance on omitting table_name, and referencing list_simulation_reports for discovery.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Query', resource 'tabular report data from the last simulation's SQL output', and distinguishes purpose from sibling tools by mentioning 'deeper analysis beyond structured diagnostics' and referencing list_simulation_reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit preconditions (simulation completed with SQL output), context for when to use (deeper analysis), and refers to related tool list_simulation_reports for discovery. No explicit when-not-to-use or alternatives, but contextual guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_timeseriesB
Read-onlyIdempotent

Query time series data from simulation SQL output.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax data points.
frequencyNoReporting frequency.
key_valueNoZone/surface or "*".*
environmentNoEnvironment filter.
variable_nameYesVariable name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
unitsYes
returnedYes
frequencyYes
key_valueNo
total_pointsYes
variable_nameYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey read-only, idempotent, non-destructive behavior. The description adds the source (simulation SQL output) but does not disclose potential large result sets, pagination, or dependency on prior simulation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that immediately conveys the tool's purpose. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given moderate complexity (5 params, 1 required) and existing annotations, the description is adequate but lacks guidance on prerequisites and result structure. The presence of an output schema is not leveraged.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description provides context but does not elaborate on parameters beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries time series data from simulation SQL output. However, it does not distinguish from siblings like query_simulation_table or export_timeseries, missing an opportunity to differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description does not specify when to use this tool, prerequisites (e.g., model loaded and simulated), or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_objectA
Destructive

Delete an object. Blocked if referenced unless force=True.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesObject name.
forceNoRemove even if referenced by other objects.
object_typeYesEnergyPlus object type.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
statusYes
object_typeYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds value by disclosing that deletion is blocked when referenced unless force=True, which goes beyond the annotation. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff. The first sentence states the action ('Delete an object'), and the second adds a critical condition. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a destructive tool with good annotations. It covers the purpose and a key behavioral nuance. Could mention irreversibility or success indicators, but overall sufficient given the structured schema and output schema (exists).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description does not need to explain parameters fully. However, it adds meaning to the force parameter by relating it to the blocking behavior, which provides context beyond the schema's 'Remove even if referenced by other objects.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Delete an object' with a specific verb and resource. It distinguishes from sibling tools like add_object, duplicate_object, rename_object, and remove_objects (plural) by specifying the singular action and the condition about references.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use force=True ('Blocked if referenced unless force=True'), offering clear guidance on a key condition. However, it does not explicitly compare with alternatives like remove_objects or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_objectsA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoRemove even if some entries are referenced by other objects.
object_typeYesEnergyPlus object type.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
removedYes
object_typeYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes no-op behavior, blocking when referenced, and force override. Annotations only indicate destructiveHint=true; description adds valuable context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences: core function, use case, condition. Front-loaded and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, use case, behavior (no-op, blocking, force), and sibling differentiation. With high schema coverage and output schema, description is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description explains force parameter meaning but object_type is already defined in schema. Minimal added value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Delete every object of the given type' with specific verb and resource. Differentiates from sibling 'remove_object' by clarifying intended use for types without canonical addressable identity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (for collections owned by caller with replace-all semantics) and when not (for types with individual identity). Also provides condition for blocking and force parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rename_objectA

Rename and auto-update all references.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameYesNew object name.
old_nameYesCurrent object name.
object_typeYesEnergyPlus object type.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
new_nameYes
old_nameYes
object_typeYes
references_updatedYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no behavioral hints (all false). The description adds that it auto-updates references, implying side effects, but lacks details on what modifications occur or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single concise sentence that is front-loaded. However, it could benefit from slightly more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's side effects (auto-updating references), the description is too brief. It does not explain what 'auto-update' entails, output format, or prerequisites, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already describes each parameter. The description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (rename) and the resource (object), and highlights the unique auto-update of references, distinguishing it from siblings like update_object or remove_object.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for renaming objects with automatic reference updates, but does not explicitly state when to use vs alternatives like update_object or provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_simulationA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
annualNoAnnual simulation.
readvarsNoRun ReadVarsESO after the simulation to produce eplusout.csv (and eplusmtr.csv when meters are requested) alongside the .eso/.mtr files.
design_dayNoDesign-day only.
weather_fileNoEPW path (default: last downloaded).
energyplus_dirNoEnergyPlus install dir.
output_directoryNoOutput dir.
energyplus_versionNoVersion filter "X.Y.Z".

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorsYesError summary from a simulation run.
successYes
energyplusYesEnergyPlus installation metadata.
runtime_secondsYes
output_directoryYes
simulation_completeYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds useful context about fatal/severe errors and that a clean exit does not guarantee physically reasonable results, which is beyond annotation capabilities.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise paragraphs: purpose, result interpretation, and preconditions/side effects/next step. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 7 parameters and an output schema, the description covers preconditions, side effects, error interpretation, and next steps. It is complete for an experienced user without over-explaining.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by linking parameters to preconditions (e.g., weather_file or design_day) and explaining the simulation flow, which goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Execute EnergyPlus on the loaded model — the authoritative runtime validation gate.' This provides a specific verb and resource, distinguishing it from sibling tools like check_model_integrity or validate_model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit preconditions are given: 'model loaded; weather file set via download_weather_file, or design_day=True.' Also specifies side effects and next step, showing when and how to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_modelA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNoOutput path (default: original load path).
overwriteNoOverwrite existing output.
output_formatNoOutput format.idf

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatYes
statusYes
file_pathYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it explains the default path behavior, directory restrictions, and overwrite semantics. Annotations already indicate idempotentHint=true and destructiveHint=false, which align with the description. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with only two sentences. The key action is front-loaded ('Write model to disk as IDF or epJSON'), and all necessary details are included without redundancy. Every sentence serves a clear purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 parameters, 0 required), the description covers the main behavioral aspects. There is an output schema (not shown), so return values are likely documented there. The description could mention error conditions or confirmation messages, but overall it is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds significant value by explaining the default for file_path (original load path), the allowed directory constraint, and the overwrite condition. For output_format, it just lists the options, but the overall parameter semantics are enhanced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Write' and identifies the resource 'model to disk as IDF or epJSON'. It clearly distinguishes saving from other operations like loading or migrating, and mentions the two output formats, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use guidance: it explains the behavior when file_path is omitted (re-save to original path), the directory constraint (must be within IDFKIT_MCP_OUTPUT_DIRS), and the overwrite condition. It does not explicitly contrast with siblings, but the context is sufficient for correct usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docsB
Read-onlyIdempotent

Search EnergyPlus docs by keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoFilter by doc set (e.g. "Input Output Reference").
limitNoMaximum results.
queryYesSearch query (e.g. "zone heat balance").
versionNoEnergyPlus version as "X.Y".

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
queryYes
resultsYes
versionYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already define readOnlyHint=true and idempotentHint=true, making the tool's safe, read-only nature clear. The description adds minimal behavioral context, only stating 'by keyword' without explaining how results are returned (e.g., snippets, titles) or search scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant words. It is appropriately concise, though slightly more detail could be included without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and comprehensive parameter descriptions, the tool is mostly complete. However, the description lacks information about return format (e.g., document titles, snippets), which would help the agent interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents all parameters. The description does not add new meaning beyond the schema, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Search EnergyPlus docs by keyword' clearly states the verb (search), resource (EnergyPlus docs), and method (by keyword). It effectively distinguishes from sibling tools like search_objects and search_schema which target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives such as search_objects or search_schema, nor does it mention prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_objectsA
Read-onlyIdempotent

Find objects by name or field value substring match.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return.
queryYesCase-insensitive substring match on name and string fields.
object_typeNoRestrict search to a specific type.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
queryYes
matchesYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, fully covering the safety profile. The description adds that it performs case-insensitive substring matching, which is useful context. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is densely informative, with no wasted words. The core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters with full schema coverage, an output schema (exists), and rich annotations, the description is complete enough. It might briefly note that it searches across all objects in the model, but that is implied by the name 'objects'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptions for all three parameters. The description adds no further semantic detail beyond the schema; it effectively restates the query parameter's purpose. Baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'find' and resource 'objects', and clarifies the method as substring match on name and field values. This clearly distinguishes from siblings like 'list_objects' (which likely lists all) and 'search_docs' (which searches documentation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool instead of alternatives. It does not mention when not to use it (e.g., for exact match or full-text search) or suggest sibling tools like 'list_objects' or 'search_docs' for other use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_schemaA
Read-onlyIdempotent

Find object types by name or description.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return.
queryYesCase-insensitive substring match.
versionNoEnergyPlus version as "X.Y.Z".

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
limitYes
queryYes
matchesYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds minimal behavioral context beyond 'finds by name or description'. It does not contradict annotations, but also does not elaborate on side effects or return behavior beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no extraneous information. It is front-loaded with the verb and resource, making it efficient for an AI agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, full schema coverage, existing output schema, and comprehensive annotations, the description is largely sufficient. It could clarify that it searches schema metadata rather than object instances, but overall completeness is high.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are fully documented in the input schema. The description does not add additional semantic value beyond the schema's parameter descriptions (e.g., 'case-insensitive substring match' is already in schema). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Find object types') and the search criteria ('by name or description'). It distinguishes this tool from siblings like 'search_objects' (which finds instances) and 'search_docs' (which finds documentation), providing clear resource differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it specify any prerequisites or exclusions. It simply states the function without context for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_weather_stationsB
Read-onlyIdempotent

Find weather stations by name or coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results.
queryNoCity or airport name.
stateNoState code, e.g. "MA".
countryNoCountry code, e.g. "USA".
latitudeNoLatitude.
longitudeNoLongitude.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
queryNo
stationsYes
search_typeYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey readOnlyHint, idempotentHint, and destructiveHint. The description adds no additional behavioral context (e.g., pagination, rate limits, or that results are searchable by partial name). It is consistent but does not enhance transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence with no fluff, earning its place. However, it could be slightly expanded to include a hint about optional parameters or usage context without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 optional parameters and an output schema, the description is minimally adequate. It covers the core functionality but lacks details like order-by, radius search, or wildcard support. The output schema exists, so return values need not be explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already well-documented. The description's mention of 'name or coordinates' loosely corresponds to parameters (query, lat/lon) but adds no new meaning beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds weather stations by name or coordinates, specifying the verb 'Find' and the resource 'weather stations'. It distinguishes itself from sibling search tools like 'search_docs' and 'search_objects' by focusing on weather stations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as mentioning that it should be used before other tools requiring station IDs or that it is not suitable for non-weather searches. No exclusions or context are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_objectC

Update fields on an existing object.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesObject name.
fieldsYesFields to update as {field_name: value}.
object_typeYesEnergyPlus object type.

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are not contradictory (readOnlyHint=false), but the description does not disclose whether updates are merged or overwritten, what happens on error, or any side effects beyond the basic mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short but lacks necessary detail. It is concise to a fault, missing key information that would help an agent select or use the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three required parameters and no output schema, the description should explain what 'fields' are valid for each object_type and what the return value is. It provides almost no contextual information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented. The description adds no additional meaning or context beyond the parameter names and types, resulting in no added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action 'Update' and resource 'object', but 'object' is ambiguous without specifying it's an EnergyPlus object. Siblings like add_object, rename_object also operate on objects, so the description does not clearly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives such as add_object or duplicate_object. The description lacks context on prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_modelA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_typesNoOnly validate specific types (default: all).
check_referencesNoCheck reference integrity.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorsYes
is_validYes
warningsYes
info_countYes
error_countYes
warning_countYes
errors_truncatedNo
warnings_truncatedNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and idempotentHint annotations, the description details what exactly is checked (field types, ranges, enums, reference integrity) and crucially states what is NOT checked (runtime faults, convergence issues). This provides comprehensive behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with a clear title, bullet-point list of checks, important caveats, and structured sections for preconditions, side effects, and next steps. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool, the presence of an output schema, and the annotations, the description covers all necessary aspects: purpose, usage, behavioral details, parameter implications, and integration with other tools. It leaves no significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with clear descriptions for both parameters. The description adds no additional meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a 'Schema-based pre-flight check' and specifies its role after model modifications. It effectively distinguishes it from sibling tools like check_model_integrity and run_simulation by noting their different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it ('run after any model modifications') and provides preconditions (model loaded), side effects (none), and next steps (check_model_integrity, run_simulation). It also clarifies what it does not cover (EnergyPlus runtime faults), giving clear guidance on when not to rely solely on this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

view_geometryA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
color_byNoColor surfaces by type (wall/floor/roof/window) or zone.type

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive. The description adds that it uses a Three.js viewport with orbit controls, click inspection, and visibility toggling. This adds useful behavioral context beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and each sentence adds value. No extraneous words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional param, read-only, no output schema), the description covers the main aspects: rendering, interaction, visibility toggling. It could mention that a model must be loaded, but 'from the loaded model' implies it. Not fully explicit about return behavior (likely no JSON returns), but acceptable for an interactive view tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'color_by' is fully described in the schema with enum and default. The tool description does not add any additional semantics to the parameter; it merely restates the enum options. With 100% schema coverage, baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: showing interactive 3D geometry from the loaded model. It specifies what is rendered (surfaces, fenestration, shading) and interactions (click, toggle visibility). This distinguishes it from sibling tools like view_schedules or view_simulation_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The agent can infer usage from the purpose, but there is no mention of alternatives or prerequisites (e.g., model must be loaded).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

view_schedulesA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSchedule name to visualize. If omitted, shows all top-level schedules.
yearNoYear for schedule evaluation (affects day-of-week alignment).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds value by explaining it renders a visual heatmap and supports specific schedule types, going beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two clear paragraphs. First sentence states core purpose, second adds detail. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations and full schema coverage, the description covers all necessary context. No output schema needed; the interactive heatmap nature is well explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description mentions 'Schedule name' and 'year' but does not add meaningful detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it shows an interactive schedule heatmap from the loaded model, specifying supported schedule types and views (week/year). This distinctly separates it from siblings like view_geometry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for visualizing schedules but does not explicitly state when to use alternatives or when not to use it. No comparison with sibling tools is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

view_simulation_reportA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
reportsYes
timestampYes
environmentYes
table_countYes
report_countYes
building_nameYes
energyplus_versionYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, and the description adds useful behavioral context: interactive viewer, searchable, browsable with table-of-contents sidebar. It also notes the need for SQL output. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at three sentences, each earning its place: first sentence states core purpose, second details return format, third adds prerequisite. Information is front-loaded and no superfluous content exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists, the description covers the main purpose and prerequisite adequately. It could mention performance considerations for large reports or that the viewer is read-only, but overall it is sufficiently complete for a browsing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters and schema coverage is 100% (vacuously). Per guidelines, 0 parameters leads to a baseline of 4. The description correctly does not attempt to add parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool browses the full EnergyPlus tabular report in an interactive viewer, specifying it returns all tabular data organized by report, section, and table. However, it does not explicitly differentiate from sibling tools like list_simulation_reports or query_simulation_table, which have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the prerequisite (a completed simulation with SQL output), giving clear context for when to use. However, it provides no guidance on when not to use this tool (e.g., if only a specific table is needed) or mention of alternatives like query_simulation_table.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, from model editing to simulation and analysis. Overlap is minimal; even similar tools like add_object and batch_add_objects are differentiated by batch vs single operation.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern (snake_case), e.g., list_objects, run_simulation, validate_model. The only minor deviation is 'file_manager', but it still fits the overall pattern.

Tool Count4/5

39 tools is relatively high but appropriate given the complexity of EnergyPlus model management, which covers modeling, simulation, results analysis, weather, documentation, and file management. Each tool serves a specific need.

Completeness5/5

The tool surface covers the full lifecycle: model creation, editing, validation, simulation, results analysis, weather files, schema exploration, and file management. No obvious gaps for core workflows.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI assistants to interact with OpenStudio building energy models through natural language, allowing users to load, inspect, and manipulate OSM files including building geometry, HVAC systems, materials, schedules, and internal loads.
    11
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables natural-language interaction with Ladybug Tools for building performance simulation, 3D modeling, and data visualization, allowing agents to perform complex environmental analysis tasks without CAD software.
    4
    GPL 3.0
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables natural language interaction with OpenStudio building energy simulation, allowing creation, querying, and modification of models, running EnergyPlus simulations, and analyzing results.
    30
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to understand, query, and manipulate Honeybee building energy models through natural language via the Model Context Protocol.
    17
    GPL 3.0

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