Skip to main content
Glama
lichman0405

raspa-mcp

by lichman0405

parse_ti_output

Parse RASPA2 thermodynamic integration output from lambda subdirectories, extract ⟨∂U/∂λ⟩ values, and compute ΔA via trapezoidal integration to obtain free energy differences in kJ/mol.

Instructions

Parse RASPA2 Thermodynamic Integration (TI) output and compute ΔA (1-8).

Expects one completed RASPA2 simulation per lambda value (0.0 → 1.0), each in its own subdirectory. The subdirectory name should contain the lambda value (e.g. 'lambda_0.3/', '0.3/', etc.).

RASPA2 must be run with Lambda and LambdaDefinition set in simulation.input. Each output file must contain a line matching: Average <dU/dlambda>: X.XXXXX +/- Y.YYYYY [K]

KNOWN LIMITATION: The exact format of this line varies between RASPA2 versions and build options. If status='no_ti_data' is returned, check:

  1. That the simulation used Lambda / LambdaDefinition keywords.

  2. That the RASPA2 version writes 'Average <dU/dlambda>'.

  3. That subdirectory names contain the numeric lambda value. In that case, extract dU/dlambda values manually from the output files and call numpy.trapezoid() directly.

The function integrates ⟨∂U/∂λ⟩ over λ using the trapezoidal rule: ΔA = ∫₀¹ ⟨∂U/∂λ⟩ dλ [K] → ×R → [kJ/mol]

Fewer lambda points = less accuracy:

  • 3 points (0, 0.5, 1): rough estimate

  • 5 points: adequate for most cases

  • 11 points (0.0, 0.1, ..., 1.0): high accuracy

Args: output_dir: Root directory containing per-lambda subdirectories.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
output_dirYes
Behavior5/5

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

With no annotations, the description carries the full burden of disclosing behavior. It details the expected input directory structure, the need for Lambda/LambdaDefinition settings, the exact line format that may vary by RASPA2 version, the integration method (trapezoidal rule), unit conversion, and accuracy implications of lambda point count. It is exceptionally transparent about limitations and provides troubleshooting steps—far beyond what annotations could convey.

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?

Although the description is longer than average, it is efficiently structured with clear sections (purpose, expectations, known limitation, method, accuracy, args). Every sentence adds value: the limitation section prevents misinterpretation, the accuracy guide informs lambda sampling choices, and the Args section ties back to the schema. No filler is present.

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 input requirements, method, limitations, and fallback actions, giving a near-complete picture. It mentions the return status 'no_ti_data' but does not explicitly describe the full return object (e.g., deltaA value, status, units). Given the absence of an output schema, a slightly more explicit return contract would make it fully complete. Nonetheless, it is largely adequate for an agent to use and interpret.

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?

The input schema provides only the parameter name and type (output_dir: string), with zero description coverage. The description compensates fully by explaining 'Root directory containing per-lambda subdirectories' and giving examples of acceptable subdirectory names like 'lambda_0.3/' and '0.3/'. This gives the agent everything it needs to populate the parameter correctly.

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 and resource: 'Parse RASPA2 Thermodynamic Integration (TI) output and compute ΔA'. This clearly distinguishes it from sibling tools like parse_raspa_output or parse_rdf_output by naming the TI-specific input and the free energy output. The purpose is unambiguous and immediately understandable.

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 context on when to use this tool: it expects completed RASPA2 simulations per lambda value, specific subdirectory naming, and required simulation keywords. It also gives a fallback path (manual extraction and numpy.trapezoid) when the tool returns no_ti_data. However, it does not explicitly mention alternatives among sibling tools, so it stops short of a full when-to-use vs. when-not-to-use guide.

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

Install Server

Other Tools

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/lichman0405/raspa-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server