Skip to main content
Glama
Nour-elhaq

SciMCP

by Nour-elhaq

SciMCP

Scientific Computing MCP Server for Computational Materials Science

Give your AI coding agent superpowers for molecular dynamics, DFT, crystallography, MXene discovery, ML property prediction, and literature search.

PyPI Python License: MIT MCP Tests

Works with Claude Desktop · Claude Code · Cursor · Windsurf · Any MCP client


uvx scimcp    # Run instantly, no install needed

What is SciMCP?

SciMCP is an MCP server that connects AI assistants to computational materials science workflows. It provides 45 tools across 9 categories: LAMMPS molecular dynamics, DFT/CIF analysis, VASP/QE input generation, MXene materials discovery, ML property prediction, Materials Project queries, phonon analysis, trajectory visualization, and arXiv literature search.

No more copy-pasting LAMMPS scripts. Just tell Claude what you need.


Related MCP server: QCViz-MCP

Quick Start

1. Install

# No install needed (recommended)
uvx scimcp

# Or install with pip
pip install scimcp

# Or with uv
uv add scimcp

2. Connect to your AI client

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "scimcp": {
      "command": "uvx",
      "args": ["scimcp"]
    }
  }
}
claude mcp add scimcp -- uvx scimcp

Add to your MCP config:

{
  "mcpServers": {
    "scimcp": {
      "command": "uvx",
      "args": ["scimcp"]
    }
  }
}

3. Start asking

Generate a LAMMPS input for 10^3 LJ atoms under NVT at 300K with shear

Parse this dump file and show me the temperature evolution

Compute the nematic order for these quaternion data

Run a shear-rate sweep from 0.0001 to 0.05

Parse this CIF file and tell me the space group and lattice parameters

Generate a VASP INCAR for a relaxation calculation

What MXenes are metallic with high conductivity?

Predict the band gap of GaAs

Find recent arXiv papers on MXene battery applications

Search Materials Project for stable oxides

Compute phonon DOS from these frequencies

Plot the thermo dashboard for this simulation


45 Tools — 9 Categories

LAMMPS Input Generation (2 tools)

Tool

What it does

lammps_generate_input

Generate complete LAMMPS scripts. Supports LJ, EAM, Tersoff, Buckingham, Coulomb potentials. NVT/NPT/NVE/NPH ensembles. Optional shear deformation.

lammps_generate_workflow

Multi-phase workflow: minimize → equilibrate → production. Configurable per-phase ensemble, temperature, and shear.

Output Parsing (3 tools)

Tool

What it does

lammps_parse_thermo

Parse thermo logs into structured data with statistics (min/max/mean/std per column).

lammps_parse_dump

Parse lammpstrj trajectories. Extract atom positions, velocities, box dimensions per frame.

lammps_file_summary

Auto-detect file type (dump vs thermo) and return key metrics.

Nematic Alignment Analysis (3 tools)

Tool

What it does

lammps_nematic_order

Scalar order parameter S from quaternion data. S=1 (aligned), S=0 (isotropic). Returns full Q-tensor.

lammps_nematic_vs_z

Spatial profile S(z) — alignment as a function of position along z-axis.

lammps_nematic_vs_time

Time evolution S(t) — alignment over a trajectory.

Non-Affine Displacement / Plasticity (2 tools)

Tool

What it does

lammps_d2min

Falk-Langer D²min metric. Measures how much particle motion deviates from affine deformation of neighbors.

lammps_identify_plastic_events

Threshold-based detection of particles that underwent plastic rearrangement.

Shear Rheology (2 tools)

Tool

What it does

lammps_shear_sweep

Generate LAMMPS scripts for multiple shear rates. Outputs per-rate input files + config JSON.

lammps_estimate_viscosity

Fit power-law model to stress vs rate data. Returns consistency K, flow index n, shear-thinning/thickening classification.

DFT / CIF Analysis (3 tools)

Tool

What it does

dft_parse_cif

Parse CIF content and extract space group, lattice parameters, atomic positions, and symmetry data.

dft_generate_cif

Generate CIF files from crystallographic parameters (space group, lattice, atom types, fractional coordinates).

dft_cif_summary

Quick summary of a CIF file: formula, space group, lattice, element composition.

VASP / Quantum ESPRESSO (5 tools)

Tool

What it does

dft_vasp_incar

Generate VASP INCAR files with configurable encut, k-spacing, smearing, spin polarization, and relaxation settings.

dft_vasp_poscar

Generate VASP POSCAR files from element lists, fractional coordinates, and lattice parameters. Supports selective dynamics.

dft_vasp_kpoints

Generate VASP KPOINTS files with Monkhorst-Pack grids and custom shifts.

dft_qe_pw_input

Generate Quantum ESPRESSO pw.x input files for SCF, relaxation, and variable-cell calculations.

MXene Database (5 tools)

Tool

What it does

materials_mxene_list

List all 10+ MXenes in the built-in database with key properties.

materials_mxene_query

Query by formula, M element, X element, termination, or metallic character.

materials_mxene_properties

Get detailed properties for a specific MXene (lattice, band gap, formation energy, applications).

materials_mxene_compare

Side-by-side comparison of multiple MXenes.

materials_mxene_search

Search MXenes within a property range (band gap, formation energy, elastic modulus).

ML Property Prediction (6 tools)

Tool

What it does

materials_predict_band_gap

Predict band gap from composition. Classifies as metal/semiconductor/insulator.

materials_predict_density

Estimate material density from composition.

materials_predict_melting_point

Estimate melting point from composition.

materials_predict_all

Run all prediction models at once.

materials_element_info

Get elemental properties (electronegativity, radius, mass, density, melting point).

materials_composition_features

Compute ML feature vector (weighted avg properties, EN difference, mixing entropy).

Materials Project (3 tools)

Tool

What it does

materials_project_query

Query Materials Project for crystal structures and properties. Uses built-in data when no API key.

materials_project_details

Get detailed properties for a specific MP material (mp-id).

materials_project_stable

Search for thermodynamically stable materials near the hull.

Phonon Analysis (4 tools)

Tool

What it does

analysis_phonon_dos

Compute phonon density of states from frequency list with Gaussian broadening.

analysis_thermodynamic_properties

Compute ZPE, Helmholtz free energy, entropy, and heat capacity from phonon frequencies.

analysis_phonon_band_path

Generate high-symmetry k-path for phonon band structures (cubic, hexagonal, tetragonal, orthorhombic).

analysis_phonon_estimate

Estimate phonon frequency range from composition using mass-force constant model.

Visualization (5 tools)

Tool

What it does

viz_time_series

Plot time series data from LAMMPS thermo output.

viz_histogram

Plot histograms with statistics (mean, std, median).

viz_scatter

Scatter plots, optionally colored by a third variable (e.g., D²min).

viz_phonon_dos

Plot phonon density of states with zero-frequency line.

viz_thermo_dashboard

Generate 4-panel dashboard (Temperature, Energy, Pressure vs Step).

Literature Search (3 tools)

Tool

What it does

literature_search_arxiv

Search arXiv for scientific papers by keyword.

literature_search_materials

Materials-science-optimized arXiv search with category filtering.

literature_search_by_author

Find papers by a specific author on arXiv.


Example: Full Workflow

from scimcp.tools.lammps.generator import generate_workflow
from scimcp.tools.lammps.shear import write_sweep_scripts, SweepConfig

# Generate a 3-phase simulation with shear
script = generate_workflow(
    atoms_per_side=12,
    potential="lj",
    temperature=300,
    n_production_steps=100000,
    apply_shear=True,
    shear_rate=0.001,
)

# Run a shear-rate sweep
config = SweepConfig(
    shear_rates=[0.0001, 0.001, 0.01, 0.05],
    atoms_per_side=10,
    temperature=300,
)
files = write_sweep_scripts(config)
# Creates: in.shear_0p000100, in.shear_0p001000, in.shear_0p010000, in.shear_0p050000

Sample Output

STEP 5: Nematic Order Parameter S
  Aligned particles:  S = 1.0000
  Random particles:   S = 0.3880
  Partial alignment:  S = 0.4049

  Nematic Profile S(z):
      z_center       S    count
          0.50  1.0000       10   ← aligned
          5.50  0.4483       10   ← transition
          9.50  0.5590       10   ← random

STEP 8: Viscosity Estimation
  Power-law n = 0.80  →  Shear thinning confirmed
  rate=0.0001  →  η=3.15
  rate=0.0100  →  η=1.26
  rate=0.0500  →  η=0.91

Supported Potentials

Potential

LAMMPS Style

Typical Use

Lennard-Jones

lj/cut

Noble gases, generic liquids

EAM

eam/alloy

Metals (Cu, Al, Ni, Fe, ...)

Tersoff

tersoff

Semiconductors (Si, C, Ge)

Buckingham

buck/coul/long

Ionic materials

Coulomb

coul/long

Charged systems


Architecture

scimcp/
├── src/scimcp/
│   ├── server.py                  # MCP server entry point (45 tools, 7 prompts)
│   └── tools/
│       ├── lammps/
│       │   ├── generator.py       # LAMMPS input generation + workflows
│       │   ├── parser.py          # Dump & thermo file parsing
│       │   ├── nematic.py         # Q-tensor, S(t), S(z) computation
│       │   ├── nonaffine.py       # D²min Falk-Langer metric
│       │   ├── shear.py           # Shear-rate sweep + viscosity fitting
│       │   └── templates/         # Reference LAMMPS templates
│       ├── dft/
│       │   ├── cif.py             # CIF parsing, generation, ASE conversion
│       │   └── vasp_qe.py         # VASP INCAR/POSCAR/KPOINTS + QE pw.x input
│       ├── materials/
│       │   ├── mxene.py           # MXene database (10+ entries)
│       │   ├── prediction.py      # ML property prediction (band gap, density, Tm)
│       │   ├── literature.py      # arXiv literature search
│       │   └── materials_project.py  # Materials Project API + built-in data
│       └── analysis/
│           ├── phonon.py          # Phonon DOS, thermodynamics, band paths
│           └── visualization.py   # Time series, histograms, scatter, dashboards
├── tests/                         # 211 tests (unit + integration)
├── examples/                      # Demo scripts
├── pyproject.toml
└── README.md

Testing

# Run all tests
pytest

# Run with verbose output
pytest -v

# Run specific test module
pytest tests/test_nematic.py -v

# Run Phase 3 tests only
pytest tests/test_vasp_qe.py tests/test_phonon.py tests/test_visualization.py tests/test_materials_project.py -v

# Run integration tests (excludes network-dependent literature tests)
pytest tests/test_phase2_integration.py -v -k "not literature"

211 tests covering all tools: LAMMPS generation/parsing/analysis, CIF handling, VASP/QE input, MXene queries, ML prediction, Materials Project, phonon analysis, visualization, and MCP server integration.


Roadmap

  • DFT/CIF file parsing and analysis

  • MXene database queries

  • ML-accelerated property prediction

  • ASE (Atomic Simulation Environment) integration

  • arXiv literature search

  • Materials Project API integration

  • Trajectory visualization tools

  • VASP/QE input generation

  • Phonon band structure tools


Contributing

Contributions welcome! Whether it's bug fixes, new tools, or documentation.

git clone https://github.com/Nour-elhaq/scimcp.git
cd scimcp
pip install -e ".[dev]"
pytest

License

MIT License — see LICENSE for details.


Built for the computational materials science community

Report Bug · Request Feature

Available Tools

12 tools
lammps_d2minA

Compute non-affine displacement D²min for each particle between two frames.

D²min measures how much a particle's displacement deviates from the best-fit affine deformation of its neighbors. High D²min = plastic event.

Args: positions_t0_json: JSON string, shape (N, 3) positions at time t0. positions_t1_json: JSON string, shape (N, 3) positions at time t1. r_cut: Cutoff radius for neighbor finding.

ParametersJSON Schema
NameRequiredDescriptionDefault
r_cutNo
positions_t0_jsonYes
positions_t1_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description must cover behavioral transparency on its own. It describes the computation's purpose and output interpretation (D²min deviation from affine deformation), which conveys that this is a read-only analysis operation. It does not discuss error handling or input validation, but the 'Compute' framing and scientific context make the behavior reasonably clear.

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, leading with the core purpose, then providing one-sentence background on D²min, and ending with a clear Args list. Every sentence adds value, and the line breaks make it easy to scan.

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 key context: what the tool computes, what the result means, and what all three parameters represent. Since an output schema exists, the description does not need to enumerate return values. It lacks explicit usage alternatives and edge-case guidance, but for a straightforward compute tool, the provided information is sufficient for an agent to select and invoke 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?

Schema description coverage is 0%, so the description carries the full burden for parameter meaning. It explicitly explains that positions are JSON strings with shape (N, 3) and describes r_cut as 'cutoff radius for neighbor finding,' adding meaning beyond the bare input schema. It omits units for r_cut and does not mention coordinate frame assumptions, but the core semantics are present.

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 'Compute' and identifies the exact resource: 'non-affine displacement D²min for each particle between two frames.' It explains the physical meaning of D²min, clearly distinguishing this tool from sibling analysis tools like lammps_nematic_order or lammps_parse_dump.

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 the tool is useful for identifying plastic events ('High D²min = plastic event'), which gives contextual guidance. However, it does not explicitly state when to use this tool versus alternatives such as lammps_identify_plastic_events, nor does it mention any exclusions or complementary tools.

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

lammps_estimate_viscosityA

Estimate viscosity from shear rate vs shear stress data.

Fits a power-law model: stress = K * rate^n, where n=1 is Newtonian, n<1 is shear-thinning, n>1 is shear-thickening.

Args: shear_rates_json: JSON array of shear rates. shear_stresses_json: JSON array of corresponding shear stresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
shear_rates_jsonYes
shear_stresses_jsonYes

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?

With no annotations, the description carries the burden of behavioral disclosure. It explains the power-law fitting model, defines the meaning of n (Newtonian, shear-thinning, shear-thickening), and clearly specifies the input data. It does not disclose the exact return format or fitting algorithm, but for a pure computation tool with no side effects, this is adequate 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 concise and front-loaded: the first sentence states the purpose, followed by an optional model explanation, and then parameter definitions. Every sentence contributes value, with no redundancy or filler.

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 (2 string parameters, no nested objects, output schema present), the description adequately covers purpose, model, and parameter semantics. It does not describe return values, but the presence of an output schema means the description need not explain them. It also does not mention edge cases (e.g., equal array lengths, numeric formats), but these are minor gaps.

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 schema provides only parameter names and types (string) with no descriptions, so the description fully compensates. It explicitly defines shear_rates_json as a JSON array of shear rates and shear_stresses_json as a JSON array of corresponding shear stresses, adding meaning beyond the structured 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 tool estimates viscosity from shear rate vs shear stress data. It uses a specific verb ('estimate') and resource ('viscosity from shear rate vs shear stress data'), and distinguishes itself from sibling tools like lammps_parse_thermo or lammps_shear_sweep by its unique modeling focus.

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 for when to use the tool—when you have shear rate and shear stress data and need to fit a power-law model. It does not explicitly name alternatives or exclusions, but the niche purpose and model explanation imply its usage. Given sibling tools are primarily parsing/generation tools, the intended scenario is evident.

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

lammps_file_summaryA

Get a summary of a LAMMPS output file (dump or thermo).

Identifies the file type and returns key statistics: number of frames, atoms, columns, box dimensions, or thermo time-series stats.

Args: filepath: Path to the LAMMPS output file.

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that the tool identifies file type and returns summary statistics, making the read-only nature implicit. However, it does not mention behavior on invalid files, format limitations, or performance considerations, so transparency is adequate but not rich.

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 front-loaded, with the first sentence stating the purpose. The second sentence adds useful detail about the returned statistics, and the Args section is minimal. Every sentence earns its place without 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 simple single-parameter schema and the existence of an output schema, the description is mostly complete. It covers the supported file types (dump or thermo) and the main statistics returned. It could be improved by clarifying when to choose this summary tool over the sibling parse tools, but overall it satisfies the main needs.

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 0%, but the description compensates with an Args section explaining that filepath is the path to the LAMMPS output file. This adds meaningful context beyond the bare 'filepath' property in the schema, though it does not detail accepted extensions or data formats.

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 ('Get a summary') and resource ('LAMMPS output file (dump or thermo)'), and lists exactly what statistics it returns. It clearly distinguishes itself from sibling parse tools by focusing on summary rather than full parsing.

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 summary of a LAMMPS output file is needed, but it does not explicitly compare this to the sibling parse tools (e.g., lammps_parse_thermo, lammps_parse_dump) or state when not to use it. No alternatives or exclusions are mentioned.

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

lammps_generate_inputA

Generate a complete LAMMPS input script for molecular dynamics simulation.

Creates a ready-to-run LAMMPS input file with support for LJ, EAM, Tersoff, Buckingham, and Coulomb potentials. Ensembles: NVT, NPT, NVE, NPH. Optional energy minimization and shear deformation.

Args: atoms_per_side: Number of unit cells per side of the cubic box. lattice_spacing: Lattice constant in Angstroms. potential: Interatomic potential type (lj, eam, tersoff, buckingham, coulomb). epsilon: LJ energy parameter. sigma: LJ length parameter. cutoff: Pair potential cutoff distance. ensemble: Thermodynamic ensemble (nvt, npt, nve, nph). temperature: Target temperature. pressure: Target pressure (for NPT/NPH). timestep: Integration timestep. n_steps: Total number of MD steps. dump_freq: Frequency of trajectory dumps. minimize: Run energy minimization before dynamics. apply_shear: Apply shear deformation during dynamics. shear_rate: Shear strain rate. shear_direction: Shear plane (xy, xz, yz). boundary: Boundary conditions. output_file: If provided, write script to this file.

ParametersJSON Schema
NameRequiredDescriptionDefault
sigmaNo
cutoffNo
epsilonNo
n_stepsNo
boundaryNop p p
ensembleNonvt
minimizeNo
pressureNo
timestepNo
dump_freqNo
potentialNolj
shear_rateNo
apply_shearNo
output_fileNo
temperatureNo
atoms_per_sideNo
lattice_spacingNo
shear_directionNoxy

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does mention the side effect of writing to a file when output_file is set ('write script to this file'), which implies it can also return the script as a string, but it does not elaborate on return behavior, validation, potential errors, or file overwriting. It adds some behavioral context about supported features but lacks depth on side effects and edge cases.

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 appropriately structured: a one-sentence summary at the top, followed by a parameter list. While the list is long (18 entries), each line is terse and adds necessary meaning given zero schema coverage. The overall length is justified by the tool's complexity, and the summary is front-loaded for quick orientation.

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 tool's main capabilities (potentials, ensembles, optional minimization/shear) and all parameters. An output schema exists, so detailed return-value documentation is not required. However, it does not fully address parameter interdependencies or edge cases (e.g., pressure with non-NPT/NPH ensembles), and there is no mention of required auxiliary files or runtime behavior. Still, it is reasonably complete for a complex generation tool.

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 must compensate, and it does so thoroughly with an Args list covering all 18 parameters. Each parameter has a meaningful description (e.g., 'Lattice constant in Angstroms', 'Target pressure (for NPT/NPH)') that goes well beyond the raw schema, which only provides parameter names and defaults. This fully bridges the schema coverage gap.

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 'Generate a complete LAMMPS input script for molecular dynamics simulation', which is a specific verb+resource pair. It further distinguishes the tool from siblings by enumerating supported potentials, ensembles, and optional features like minimization and shear deformation, making it clear this is the input-generation tool, not a parser or workflow orchestrator.

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 clearly implies the tool is for creating LAMMPS input files, but it provides no explicit guidance on when to choose this tool over alternatives like lammps_generate_workflow. There are no usage exclusions or comparisons with sibling tools, though the parameter details hint at typical molecular dynamics simulation use cases.

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

lammps_generate_workflowA

Generate a multi-step LAMMPS workflow (minimize → equilibrate → production).

Creates a complete input script with three sequential phases:

  1. Energy minimization (optional)

  2. Equilibration (NVT or NPT)

  3. Production run (with optional shear)

Args: atoms_per_side: Number of unit cells per side. lattice_spacing: Lattice constant. potential: Interatomic potential type. epsilon: LJ energy parameter. sigma: LJ length parameter. cutoff: Pair potential cutoff. timestep: Integration timestep. n_minimize_steps: Number of minimization steps (0 to skip). n_equilibrate_steps: Number of equilibration steps. equilibrate_temp: Temperature for equilibration. equilibrate_ensemble: Ensemble for equilibration. n_production_steps: Number of production steps. production_temp: Temperature for production. production_ensemble: Ensemble for production. production_pressure: Pressure for production (if NPT). apply_shear: Apply shear during production. shear_rate: Shear strain rate. shear_direction: Shear plane (xy, xz, yz). dump_freq: Dump frequency during production. thermo_freq: Thermodynamic output frequency. output_file: Optional file path to write the script.

ParametersJSON Schema
NameRequiredDescriptionDefault
sigmaNo
cutoffNo
epsilonNo
timestepNo
dump_freqNo
potentialNolj
shear_rateNo
apply_shearNo
output_fileNo
thermo_freqNo
atoms_per_sideNo
lattice_spacingNo
production_tempNo
shear_directionNoxy
equilibrate_tempNo
n_minimize_stepsNo
n_production_stepsNo
n_equilibrate_stepsNo
production_ensembleNonvt
production_pressureNo
equilibrate_ensembleNonvt

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the phases and optional shear but does not clarify whether the script is returned as a string or written to output_file, nor any side effects or requirements. The mention of output_file hints at file writing but leaves behavior unclear.

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-structured with a concise intro, a numbered phase list, and a clear parameter definition section. Despite listing 21 parameters, it remains readable and front-loads the core purpose without unnecessary verbosity.

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 multi-phase workflow and all arguments, making it fairly complete for a complex generator. However, it does not explicitly explain the return value or file-writing behavior beyond output_file, and lacks tool-selection context. The existence of an output schema mitigates the return value gap, so a 4 is appropriate.

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%, and the description compensates with a complete Args list that explains all 21 parameters in plain language. It adds conditional context such as 'if NPT' for production_pressure and '0 to skip' for n_minimize_steps, which goes far beyond the schema's type/default information.

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 'Generate a multi-step LAMMPS workflow (minimize → equilibrate → production)', clearly stating the verb and resource. The three-phase breakdown distinguishes it from sibling tools like lammps_generate_input, which likely handles simpler input generation.

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 clearly implies use for multi-step workflows with its phase list, but it does not explicitly state when to choose this tool over lammps_generate_input or other siblings. No exclusions or alternative recommendations are provided, leaving usage context implicit.

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

lammps_identify_plastic_eventsA

Identify particles that underwent plastic rearrangement.

Args: d2min_json: JSON string with D²min values for each particle. threshold: D²min threshold for plastic events.

ParametersJSON Schema
NameRequiredDescriptionDefault
thresholdNo
d2min_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but not how the threshold is applied (e.g., particles with D²min above threshold are identified as plastic events). No side effects, output format, or edge-case behavior is disclosed.

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 a one-sentence purpose statement and a clear 'Args' section listing the two parameters. Every word earns its place with no redundancy.

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?

The tool is simple with only two parameters and has an output schema, so the description doesn't need to detail return values. However, it lacks context about how this fits into a LAMMPS workflow (e.g., that it follows lammps_d2min) and what ‘plastic rearrangement’ means in practice, leaving minor 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 schema has no descriptions on its properties (0% coverage), and the description partially compensates by explaining d2min_json as 'JSON string with D²min values for each particle' and threshold as 'D²min threshold for plastic events.' The threshold explanation is somewhat tautological, but it does add 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 tool's purpose: 'Identify particles that underwent plastic rearrangement.' This is a specific verb+resource combination that distinguishes it from sibling tools like lammps_parse_dump or lammps_nematic_order.

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 through the parameter d2min_json, suggesting it consumes output from a D²min calculation, but it does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria.

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

lammps_nematic_orderA

Compute the scalar nematic order parameter S from quaternion data.

S measures alignment of anisotropic particles. S=1 is perfect alignment, S=0 is isotropic, S=-0.5 is perpendicular alignment.

Input is a JSON array of quaternions [w, x, y, z] for each particle.

Args: quaternions_json: JSON string with shape (N, 4) quaternion data. Example: "[[1,0,0,0], [0.9,0.1,0,0], [0.8,0.2,0.1,0]]"

ParametersJSON Schema
NameRequiredDescriptionDefault
quaternions_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It explains the meaning of S values and gives an example, but it does not state whether the operation is read-only, how invalid or non-normalized quaternions are handled, or the exact output format (though the output schema exists). This is adequate but not rich.

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-structured: a brief purpose statement, a short explanation of the output meaning, and a parameter section with an example. Every sentence contributes valuable information, and there is no wasteful repetition or filler.

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 single-parameter compute tool with an output schema, the description is nearly complete. It covers the input format, example, and interpretation of the result. The main missing pieces are edge-case behavior and normalization requirements, but these are not critical given the simplicity and available schema.

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 schema only lists a parameter named quaternions_json with type string and no description. The description compensates fully by specifying the shape (N,4), the quaternion order [w,x,y,z], and providing a concrete example. This gives the agent exactly what it needs to construct a valid parameter value.

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 that the tool computes the scalar nematic order parameter S from quaternion data. The verb 'compute' and the specific resource 'scalar nematic order parameter' make the purpose unambiguous. Though it doesn't explicitly contrast with siblings like lammps_nematic_vs_z, the 'scalar' and 'from quaternion data' distinguish it sufficiently.

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 choose this tool over alternatives like lammps_nematic_vs_z or lammps_nematic_vs_time. It never mentions that this is for a single global order parameter versus spatially or temporally resolved ones, leaving the selection criteria entirely implicit.

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

lammps_nematic_vs_timeB

Compute nematic alignment S(t) over a trajectory.

Each frame contains quaternions for all particles at that timestep.

Args: quaternions_frames_json: JSON string — list of (N, 4) arrays, one per frame. Example: "[[[1,0,0,0],[0.9,0.1,0,0]], [[0.8,0.2,0.1,0],[0.7,0.3,0,0]]]"

ParametersJSON Schema
NameRequiredDescriptionDefault
quaternions_frames_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the input format (quaternions per frame) but does not disclose how the nematic alignment is computed (e.g., averaging, normalization), any constraints (e.g., equal particle counts per frame), or the output structure. The behavior remains largely opaque.

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 one-sentence summary, a clarifying note about frame contents, and an arg definition with an example. Every sentence contributes value, and there is no redundancy or filler.

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 tool has a single parameter, which is thoroughly explained in the description. The presence of an output schema removes the need to document return values. However, the description does not mention potential pitfalls (e.g., frame length consistency) or the physical meaning of S(t), so it is not fully complete for a user unfamiliar with nematic order parameters.

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 schema provides only a type and title with 0% schema description coverage, so the description must compensate. It does so effectively by explaining that 'quaternions_frames_json' is a 'JSON string — list of (N, 4) arrays, one per frame' and providing a concrete example. This adds meaningful context beyond the schema, though it could be more explicit about quaternion normalization.

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 specific action with a clear resource: 'Compute nematic alignment S(t) over a trajectory.' This distinguishes it as a time-dependent computation. However, it does not explicitly differentiate from sibling tools like lammps_nematic_order or lammps_nematic_vs_z, so it earns a 4 rather than a 5.

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. There is no mention of prerequisites, expected input preprocessing, or exclusions. Usage is only implied by the tool name and the description's focus on time-dependent trajectories.

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

lammps_nematic_vs_zA

Compute nematic alignment profile S(z) along the z-axis.

Bins particles by z-coordinate and computes S in each bin, useful for studying alignment near surfaces or interfaces.

Args: quaternions_json: JSON string with shape (N, 4) quaternion data. z_positions_json: JSON string with shape (N,) z-coordinates. n_bins: Number of bins along z.

ParametersJSON Schema
NameRequiredDescriptionDefault
n_binsNo
quaternions_jsonYes
z_positions_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

No annotations exist, so description carries the full burden. It discloses the algorithmic behavior ('bins particles by z-coordinate and computes S in each bin') and clearly signals a pure compute operation. It does not explicitly state absence of side effects, but the verb 'compute' and the context make this reasonably transparent.

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 front-loaded with the main purpose. The Args section is structured and each entry provides essential information without unnecessary verbosity. 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?

The tool has a moderate complexity (3 params, JSON parsing) and an output schema is present. The description covers the algorithm, the parameter formats, and the use case. No major gaps remain; return values are handled by the output schema.

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%, but the description fully compensates. It explains the exact shape of both JSON strings ('shape (N, 4) quaternion data' and 'shape (N,) z-coordinates') and clarifies n_bins. This adds significant meaning beyond the raw schema types.

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 explicitly states 'Compute nematic alignment profile S(z) along the z-axis' with a specific verb, resource (S(z)), and scope. It distinguishes itself from siblings like lammps_nematic_vs_time and lammps_nematic_order by specifying spatial binning along z.

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 clear context with 'useful for studying alignment near surfaces or interfaces,' implying when to use it. However, it does not explicitly mention alternatives or exclusion criteria, so it misses a direct when-not or comparison to sibling tools.

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

lammps_parse_dumpA

Parse a LAMMPS dump file and return trajectory frame summaries.

Reads lammpstrj files and extracts atom positions, box dimensions, and metadata for each frame.

Args: filepath: Path to the LAMMPS dump file. max_frames: Maximum number of frames to parse (0 = all).

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
max_framesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Without annotations, the description carries the full burden. It mentions that the tool reads files and extracts specific data, but does not disclose potential side effects (e.g., file access patterns, input format limitations, or error behavior). This is minimal but not inadequate.

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, starting with a one-sentence summary followed by a details paragraph and clean Args listing. Every sentence adds value without 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 complexity and the presence of an output schema, the description adequately covers the operation and parameters. It could mention limitations or performance considerations for large files, but overall it is complete enough.

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?

Both parameters (filepath and max_frames) are fully described in the docstring, including the special meaning of max_frames=0. Since schema description coverage is 0%, this is essential and well-handled.

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 parses LAMMPS dump files and returns trajectory frame summaries, with a specific verb and resource. This distinguishes it from sibling tools like lammps_parse_thermo, which handles thermo output.

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?

Usage is implied through 'Reads lammpstrj files' and the description of extracting atom positions and box dimensions, but there is no explicit statement about when to use this tool versus alternatives 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.

lammps_parse_thermoA

Parse LAMMPS thermodynamic output and return time-series data.

Reads a LAMMPS log file or thermo.dat file and extracts columns like Step, Temp, PotEng, TotEng, Press, etc.

Args: filepath: Path to the LAMMPS thermo output file.

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description bears the full burden of disclosing behavioral traits. It only says 'return time-series data' without explaining the exact output structure, how malformed files are handled, or whether data is sorted. This leaves significant ambiguity for an agent invoking the tool.

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 brief and front-loaded with the action verb. It lists example columns for added context, and the 'Args' section is a minor redundancy but not wasteful. Every sentence contributes to understanding the tool's 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 simplicity (one parameter, output schema present), the description covers the essential action and input. It could mention how the returned time-series data is structured or how it differs from dump parsing, but the output schema likely fills that role. Overall it is adequate for a focused parser 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 schema provides zero description coverage, but the description compensates by defining 'filepath' as 'Path to the LAMMPS thermo output file.' This gives the agent clear meaning for the only parameter, though it lacks details like supporting wildcards or relative/absolute paths.

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 function: parsing LAMMPS thermodynamic output and returning time-series data. It specifies the resource (log/thermo.dat files) and gives concrete column examples, distinguishing it from sibling tools like lammps_parse_dump which handles dump files.

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 by mentioning the input file types, but it does not explicitly state when to prefer this tool over alternatives such as lammps_parse_dump or lammps_file_summary. There are no exclusions or prerequisite conditions mentioned.

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

lammps_shear_sweepA

Generate LAMMPS input scripts for a shear-rate sweep.

Creates one input script per shear rate to study rheological behavior, shear thinning/thickening, and viscosity as a function of shear rate.

Args: shear_rates: JSON array of shear rates to simulate. atoms_per_side: Number of unit cells per side. lattice_spacing: Lattice constant. potential: Interatomic potential type. temperature: Simulation temperature. n_equilibrate: Number of equilibration steps. n_production: Number of production steps. shear_direction: Shear plane (xy, xz, yz). output_dir: Directory to write scripts.

ParametersJSON Schema
NameRequiredDescriptionDefault
potentialNolj
output_dirNoshear_sweep
shear_ratesNo[0.0001, 0.0005, 0.001, 0.005, 0.01]
temperatureNo
n_productionNo
n_equilibrateNo
atoms_per_sideNo
lattice_spacingNo
shear_directionNoxy

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must fully disclose behavior. It states that it creates one input script per shear rate and mentions output_dir for writing scripts, but does not disclose potential side effects like file overwriting, directory creation, or preconditions (e.g., requiring LAMMPS or potential files). This is a generation tool, but the description stops short of revealing all behavioral traits.

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 front-loaded with a clear one-sentence purpose, followed by a brief elaboration and a complete parameter list. Every sentence serves a purpose—no fluff or repetition of schema defaults. The structure is efficient and scannable.

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 (9 parameters, no annotations, but an output schema exists), the description covers the core purpose, parameter semantics, and basic output behavior. It lacks details on directory structure or script contents, but these are not strictly necessary given the output schema and clear purpose. The description is well-rounded and sufficient for an agent to select and invoke the tool 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?

The schema has zero description coverage, so the description's Args list is the only semantic source. It provides meaningful explanations for all 9 parameters (e.g., shear_rates as 'JSON array of shear rates to simulate', shear_direction with valid planes). While some descriptions are terse (e.g., 'potential' without allowed values), they do add value beyond the schema's bare property names.

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 function: 'Generate LAMMPS input scripts for a shear-rate sweep.' It then elaborates on creating one script per shear rate to study rheology, distinguishing it from sibling tools like generic input generation. This is a specific verb+resource+scope, fully differentiating it from siblings.

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 purpose is clear, and the description implies use for shear-rate sweep studies. However, it does not explicitly contrast with alternatives (e.g., lammps_generate_input for single simulations) or provide when-not-to-use guidance. The context is clear but lacks exclusionary details, matching 'clear context, no exclusions.'

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv0.1.0
    • First observedlammps_d2min
    • First observedlammps_estimate_viscosity
    • First observedlammps_file_summary
    • First observedlammps_generate_input
    • First observedlammps_generate_workflow
    • First observedlammps_identify_plastic_events
    • First observedlammps_nematic_order
    • First observedlammps_nematic_vs_time
    • First observedlammps_nematic_vs_z
    • First observedlammps_parse_dump
    • First observedlammps_parse_thermo
    • First observedlammps_shear_sweep

TDQS

A3.8/5.0

Scored across 12 tools

Disambiguation4/5

Tools are largely distinct in function, but generate_input, generate_workflow, and shear_sweep all produce LAMMPS input scripts, and the three nematic tools share a prefix; descriptions clarify the differences, but a few pairs could be confused at first glance.

Naming Consistency3/5

All tools share the lammps_ prefix, but the suffix mixes verb_noun (generate_input, parse_thermo, identify_plastic_events) with noun phrases (file_summary, nematic_order, shear_sweep). The pattern is readable but not fully consistent.

Tool Count5/5

With 12 tools covering simulation setup, parsing, and analysis, the server is well-scoped and each tool serves a distinct phase of the LAMMPS workflow.

Completeness4/5

The workflow from input generation to trajectory parsing to specialized analysis (nematic order, plastic events, viscosity) is well covered. Minor gaps exist, such as no tool for modifying existing input files or computing other common structural properties, but the core lifecycle is complete.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    A Model Context Protocol server that enables AI assistants to interact with LAMMPS for molecular dynamics simulations through natural language commands.
    14
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for quantum chemistry that enables LLMs to perform electronic structure analysis, parse calculation outputs, and generate 3D orbital visualizations. It integrates tools like PySCF, cclib, and py3Dmol to facilitate molecular structure manipulation and bonding analysis through natural language.
    BSD 3-Clause
  • F
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for discovering ColabFit materials science datasets and training MACE interatomic potentials on local hardware, enabling AI assistants to search, download, train, and validate models.
    2
    -
  • A
    license
    A
    quality
    D
    maintenance
    An interactive MCP server for FAIRChem and ASE simulations that allows LLM agents to load a model once and steer relaxations, MD, NEB, phonons, and minima searches mid-flight, with live monitoring and code introspection.
    17
    1
    MIT