scaps_status
SCAPS installation status
Report the SCAPS installation in use and how it was found, other installations, run folder and jobs.
Takes no parameters.

io.github.asiff00Published by GitHub account asiff00v0.1.0Updated Nov 2, 2026
Design, simulate, fit and sanity-check thin-film solar cells with SCAPS-1D on your own installation.
Drives a local SCAPS-1D installation headless so an assistant can design, simulate, batch, fit and sanity-check thin-film solar cells.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
MCP server for SCAPS-1D, the one-dimensional solar cell simulator of the University of Gent. It drives your own SCAPS installation headless and gives any MCP client device design, simulation, batches, curve fitting, result analysis and realism checks.
SCAPS is not included. Request it from its authors as described on the SCAPS website and follow their conditions of use, which include citing SCAPS in publications.
.def, edit it with every SCAPS set command, load .material files into layers, create devices from scratch (up to 7 layers, 7 defects per layer, 3 defects per interface), and set solver numerics that scripts cannot reach.set or action key, including temperature, intensity and bias..def, .material, absorption, spectrum, generation, filter, grading and measurement files, or write them from data with unit conversion (absorption from alpha or extinction coefficient k).Install SCAPS with its installer into a folder you can write to. SCAPS uses its installation folder as its working folder, and its authors advise against Program Files. Copy any SCAPS update files over the installed ones and check that the server finds it:
SCAPS is a Windows program; on Linux it runs headless under Wine and Xvfb. Install both (Debian and Ubuntu):
Create a 32-bit prefix and install SCAPS into it, from the folder holding the unpacked SCAPS installer:
Copy any SCAPS update files over the installed ones and check that the server finds it:
Without SCAPS_HOME, the server looks for a folder holding scapsXXXX.exe with its def, results and script folders, in folders whose name contains "scaps", one or two levels below:
drive_c and Program Files folders of Wine prefixes: ~/.wine, $WINEPREFIX, $SCAPS_WINEPREFIX, winetricks prefixes and prefixes inside home folders named like scaps.When several installations are found, the newest SCAPS version is used. scaps_status and doctor show the folder in use and any others. Set SCAPS_HOME to choose one yourself.
Plots need the optional extra: uvx --with matplotlib scaps-mcp, or install scaps-mcp[plot].
Claude Code:
Straight from the repository instead of PyPI:
Add --env SCAPS_HOME=<folder> before scaps when SCAPS is somewhere the server does not search.
Project configuration (.mcp.json), with a long tool timeout for batches and fits:
Other MCP clients start the same command, with SCAPS_HOME in the server environment only when SCAPS is somewhere the server does not search.
Definitions and run files are also available as scaps://definitions/{name} and scaps://runs/{run_id}/{file} resources.
Keys and units follow the SCAPS script language: thickness in um, densities in cm^-3, interface densities in cm^-2, mobility in cm^2/Vs, velocity in cm/s, cross sections in cm^2, energies in eV, temperature in K. Layers, defects and interfaces count from 1, and layer 1 touches the left (back) contact. Contacts are addressed as contactleft and contactright.
Scripts cannot add the first bulk defect to a layer; scaps_create_device inserts one and configures it. Grading laws, per-level parameters of multivalent defects and the GUI curve fitter have no script commands; use grading files, scaps_optimize and definitions made in the GUI.
One SCAPS process runs per installation at a time, guarded by a file lock (fcntl on Linux, msvcrt on Windows) that all processes honour. Stopping the server, including with SIGTERM, stops the SCAPS process it started; a process left behind by a crash is stopped by the next run. File names must be bare names inside SCAPS folders. Scripts may not run system commands or open blocking dialogs. For isolation, remove the Wine drive mapping of the host root from the prefix.
The scaps-1d skill teaches an agent SCAPS workflows and realism rules. It works on its own and uses these tools when they are available.
Simulations made with SCAPS should cite M. Burgelman, P. Nollet and S. Degrave, Modelling polycrystalline semiconductor solar cells, Thin Solid Films 361-362 (2000) 527-532, doi:10.1016/S0040-6090(99)00825-1.
MIT
Source: README.md at commit 24dc467
SCAPS installation status
Report the SCAPS installation in use and how it was found, other installations, run folder and jobs.
Takes no parameters.
List SCAPS files
List files in a SCAPS data folder: definitions, spectra, absorption, grading, generation and more.
kindlimitoffsetcontainsSearch SCAPS script commands
Search the command list of the installed SCAPS version. layer, defect, interface and IFdefect stand for numbered forms (layer2, defect1); contact stands for contactleft or contactright; <none> marks commands without a value.
limitqueryrequiredDescribe a SCAPS device
Read a .def file: layers, bulk defects, interfaces with band offsets, contacts and realism checks. Fields use script names and units, so any value can be passed back as a parameter (layers[0].NA -> 'layer1.NA'). Graded layers report their base value.
definitionrequiredEdit a SCAPS device
Change a device and save it as a .def file: parameters, layers, defects, materials and solver settings.
baserequiredsave_asrequirednumericsmaterialsoverwriteoperationsCreate a SCAPS device
Build a new device from scratch and save it as a .def file. A layer may name a .material file ('material': 'CIGSe.material'); its properties apply first and explicit keys override them.
namerequiredlayersrequiredoptionsnumericsoverwriteinterfacesleft_contactright_contactRun a SCAPS simulation
Simulate a device: J-V metrics, QE, C-V, C-f and spatial profiles, with analysis and realism checks. Analysis gives the absorber's Shockley-Queisser limit, QE-integrated Jsc and a Mott-Schottky fit of C-V. Overrides apply to this run only; files stay available through scaps_results and scaps_plot.
actionsprofilesspectrumvoltage_vdefinitionrequiredparametersfrequency_hzilluminationmeasurementswait_secondstemperature_kresponse_formatBatch SCAPS simulations
Run one SCAPS session over many parameter values and tabulate the J-V metrics of every point. Covers thickness, doping, defect, band offset, temperature, intensity and bias studies. Every point's files are kept for scaps_results and scaps_plot.
modeactionsprofilesspectrumvariablesrequireddefinitionrequiredparametersilluminationmeasurementswait_secondstemperature_kManage SCAPS jobs
List recent runs, or get, wait for or cancel one. A finished job includes its full result.
limitactionjob_idwait_secondsRead SCAPS results
Return one table of a result file: J-V, QE, C-V, C-f curves or band, generation and AC profiles.
filesteptableoffsetrun_idrequiredcolumnsmax_rowsPlot SCAPS results
Render result curves as a PNG image. Requires the optional 'plot' extra.
xyfilesrequiredlog_xlog_ytabletitlerun_idrequiredwidth_pxRun a SCAPS script
Run a SCAPS script for workflows beyond the other tools: recorder, curve fitting, math, loops, tandem. The server prepends quit and error-log settings and 'clear all'. Commands are checked against the installed SCAPS; file names must be bare; system commands are rejected. Results saved with 'save results.<kind> name' are collected into the run.
scriptrequiredtimeout_swait_secondsvalidate_onlyShockley-Queisser limit
Detailed-balance Jsc, Voc, FF and efficiency limits for given band gaps under a SCAPS spectrum.
spectrumband_gaps_evrequiredtemperature_kImport a SCAPS file
Add a SCAPS file someone shared (device .def, .material, .abs, spectrum, measurement...) to the installation. Definitions and materials are parsed to confirm they are valid, and files they reference but that are missing (absorption, grading, filter) are listed.
kindrequirednamerequiredcontentrequiredoverwriteWrite a SCAPS input file
Write numeric data as a SCAPS input file with the right format and units. Use it for measured absorption (alpha or extinction coefficient k), custom spectra, external optical generation profiles, contact filters, grading profiles and measurement files for comparison.
xrequiredyrequireddarkkindrequirednamerequirednoteextrabias_vsharedx_unitarea_cm2position+7 moreFit or optimise a SCAPS device
Fit device parameters to measured curves, or optimise efficiency, Voc, Jsc or FF, by bounded Nelder-Mead. Replaces the GUI-only SCAPS curve fitter and supports several measurements at once (light and dark J-V, QE, C-V). Each simplex step is one SCAPS session per measurement condition; long runs continue as a job past wait_seconds, so poll with scaps_jobs.
goalrequiredmetrictargetactionsmeasuredspectrumvariablesrequireddefinitionrequiredparameterswait_secondstemperature_kmax_evaluations90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
uvx scaps-mcp doctorsudo dpkg --add-architecture i386sudo apt updatesudo apt install wine wine32:i386 xvfbexport WINEARCH=win32 WINEPREFIX="$HOME/scaps/prefix"xvfb-run -a bash -c 'wineboot -i && wineserver -w'xvfb-run -a bash -c 'wine setup.exe /q /AcceptLicenses yes /r:n && wineserver -w'uvx scaps-mcp doctorclaude mcp add --transport stdio scaps -- uvx scaps-mcpclaude mcp add --transport stdio scaps -- uvx --from git+https://github.com/asiff00/scaps-mcp scaps-mcp{ "mcpServers": { "scaps": { "command": "uvx", "args": ["scaps-mcp"], "timeout": 3600000 } }}uv syncuv run pytestuv run pytest -m scapsuv run ruff check src tests