LABSCO SUMMARY
Descriptors run with full shell privileges — review them like code.
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.
What it is
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.
What you get
- 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
Requirements
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.
Setup effort
Build from source — git clone https://github.com/grebenyyk/scipilot
USE CASES
01
Running a simulation without remembering the flags
Ask for the run in words; the descriptor supplies the parameter names, types and defaults.
02
Getting one number back instead of an output file
The descriptor's extraction pattern pulls the result out of the output file for you.
03
Making a lab tool usable by everyone in the group
Write the descriptor once and the rest of the team drives the binary through their own assistant.
BEFORE YOU INSTALL
What to know first
Requires
Python 3.13+
INSTALLATION
Connect your client
Server setup
TERMINAL
git clone https://github.com/grebenyyk/scipilot
cd scipilot
pip install -e .
mkdir -p tools
cp examples/raspa.yaml tools/
scipilot --tools-dir ./toolsMCP Clients
Any MCP client — stdio
The project publishes no client configuration (its README just says to connect an MCP client such as Claude Desktop or VS Code). Add scipilot to your client as a local stdio server in that client's own format: the full path to the scipilot command installed by pip install -e . as the command, with --tools-dir and the full path to your tools folder as its arguments. The folder holds your YAML tool descriptors — see examples/raspa.yaml in the repository.