User inputs are substituted directly into shell command templates, so a descriptor is executable code, not configuration. Only load ones you have read. Within that boundary the trade is a good one: the tedious part of running simulations is remembering flag names and grepping output files, and that is exactly what a descriptor moves off your desk.
A bridge between natural language and scientific CLI tools. You write one descriptor per tool — inputs, command template, where the results land — and SciPilot exposes each operation as an MCP tool that any client can call.
- A descriptor format that declares what the binary expects (input names, types, defaults), how to assemble the command, and how to read results back out
- Output parsing built into the descriptor: a file path plus an extraction pattern, so a run returns a value instead of a wall of stdout
- Every operation in every descriptor becomes a callable tool, so the model handles the parameters, the file paths and the parsing
- Example descriptors in the repository to start from
The Python package scipilot, version 0.1.0, installed from a checkout with `pip install -e .` and launched as `scipilot --tools-dir ./tools`. Python 3.13+. No credentials — it runs binaries already on your machine. Your descriptors live in the directory you point `--tools-dir` at.
