Skip to main content
Glama
msweeney-pnnl

eplusout-mcp

execute_pandas_on_html_table

Run pandas queries on EnergyPlus HTML table data to analyze simulation results. Compute statistics, filter values, or aggregate data directly from tables.

Instructions

Execute pandas operations on HTML table data from an EnergyPlus model.

Retrieves an HTML table and executes pandas operations on it. The dataframe is available as 'df' in your query.

Args: id: The model_id of the EnergyPlus model (obtain from get_available_models). query_tuple: A tuple containing (zone/component, report_name, table_name) to identify the table. query: Pandas query to execute (e.g., "df.describe()", "df.sum()")

Returns: String representation of the query result with formatted output.

Examples: # Get summary statistics execute_pandas_on_html_table(model_id, query_tuple, "df.describe()")

# Find maximum values
execute_pandas_on_html_table(model_id, query_tuple, "df.max()")

# Filter data
execute_pandas_on_html_table(model_id, query_tuple, "df[df > 1000]")

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
queryYes
query_tupleYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the core behavior: it retrieves the table, makes it available as 'df', executes the pandas query, and returns a string representation. It does not disclose error behavior, query limitations, or performance considerations, which would be valuable for an arbitrary code-execution tool.

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 structure is effective: a summary line, mechanics explanation, Args section, Returns note, and examples. The first two sentences are somewhat redundant, but the rest earns its place. The examples are especially useful and not padded.

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 3-parameter tool, the description covers the model id source, table identification, query format, and return shape. It does not address edge cases or distinguish the single-line pandas variant from the multiline sibling, but the essential invocation context is complete.

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 description coverage is 0%, so the description is the only parameter documentation. It explains id, query_tuple's structure (zone/component, report_name, table_name), and query as a pandas expression. The three examples further clarify expected usage. This fully compensates for the uninformative schema.

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 opens with a specific action and resource: 'Execute pandas operations on HTML table data from an EnergyPlus model.' It clarifies that it retrieves an HTML table and exposes it as 'df', which is clear and non-tautological. However, it does not explicitly contrast with sibling pandas tools like execute_pandas_on_timeseries or the multiline HTML-table variant, so sibling differentiation is partial.

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 intended context is clear: use this tool when you have an HTML table from an EnergyPlus model and want to run pandas operations on the exposed dataframe. It also points the agent to get_available_models for obtaining the model id. It provides no explicit when-not-to-use guidance or alternatives, but the context is strong enough to guide selection.

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