Skip to main content
Glama
msweeney-pnnl

eplusout-mcp

execute_multiline_query

Execute multi-line pandas queries on cached EnergyPlus simulation data to analyze results, filter records, and compute metrics without import or print statements.

Instructions

Execute multi-line pandas operations on the cached DataFrame.

Args: file_hash (str): Hash of the loaded parquet file to query. query (str): Multi-line Python code to execute.

Returns: str: Formatted result or status message.

Notes: Does not accept import statements or print statements.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes
file_hashYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It does reveal that the tool executes arbitrary multi-line Python, returns a formatted result or status message, and rejects import and print statements. However, it does not disclose whether the executing code can mutate the cached DataFrame, what variables are in scope, or how errors are surfaced, leaving meaningful behavioral gaps.

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 and well-organized with Args, Returns, and Notes sections. It front-loads the core purpose and avoids fluffeur or repeated enumeration. A short example or a mention of the available DataFrame variable would add value without harming 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?

For a code-execution tool with no annotations and no schema-level parameter descriptions, the description is incomplete. It omits how to reference the DataFrame in the query, whether the query can modify cached state, and what a valid multi-line operation looks like. The return type is stated, but the execution contract is 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?

Schema description coverage is 0%, so the description must compensate. It does explain file_hash as the hash of the loaded parquet file and query as multi-line Python code, which is more than the schema provides. But it stops short of describing the execution environment, such as the variable name that refers to the DataFrame, which is essential for writing a correct query.

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 specific verb ('Execute'), the resource ('cached DataFrame'), and a clear qualifier ('multi-line pandas operations'). This distinguishes it from sibling tools that target timeseries or HTML tables, and from the likely single-line execute_query. The purpose is explicit 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 when to use the tool: for multi-line pandas operations against a cached parquet-backed DataFrame. However, it does not explicitly contrast it with execute_query or the other pandas execution siblings, and it does not give conditions for selecting one tool over another. The note about import/print statements is a content restriction, not an alternative-routing guideline.

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