SCAPS-1D
PYPI · SCAPS-MCP
Design, simulate, fit and sanity-check thin-film solar cells with SCAPS-1D on your own installation.
Available components
Last scanned (4 hours ago)
Scores higher than 63% of PyPI servers
Category Health and Science
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- 1 of 28 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 9 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability51
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 4144 tokens (~259/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage96
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 86% of tool parameters carry a description.Partial
- Structured output schemas are declared (94% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 16 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 4 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- 3 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 30 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- 29 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 26 Oct 26 51
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed pypi/scaps-mcp@0.1.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 28 packages
| Packages resolved | 28 |
|---|---|
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
scaps_batch Batch SCAPS simulations ~563
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | object | – | SCAPS action commands, e.g. {'iv.startV': 0, 'iv.stopV': 1.2, 'iv.increment': 0.02, 'qe.startlambda': 300, 'cf.points.per.decade': 5, 'intensity.ND': 1, 'spectrumcutoff.on': null, 'spectrumcutoff.lon… |
| definition | string | yes | Definition file in SCAPS def/, e.g. 'example CIGS.def'. |
| illumination | string | – | Calculate under the spectrum or in the dark. |
| measurements | array | – | Measurements: iv (J-V), qe, cv, cf. May be empty when profiles are requested. |
| mode | string | – | grid runs every combination; zip pairs the lists element-wise. |
| parameters | object | – | Ordered SCAPS set commands in script units, e.g. {'layer1.thickness': 2, 'layer1.NA': 1e16, 'layer1.defect1.Ntotal': 1e14, 'layer1.defect1.singleacceptor': null, 'interface1.IFdefect1.Ntotal': 1e10,… |
| profiles | array | – | Spatial results at the working point voltage: eb (bands, quasi-Fermi levels, carriers, field, currents, generation and recombination rates) and genrec (occupation of every defect level); ac (small si… |
| spectrum | – | – | Spectrum file in SCAPS spectrum/; default AM1.5G 1 sun. |
| temperature_k | – | – | Working point temperature in K. |
| variables | object | yes | Set or action keys and their values, e.g. {'layer1.thickness': [0.3, 0.5, 1]} or {'workingpoint.temperature': [280, 300, 320], 'intensity.ND': [0, 1, 2]}. |
| wait_seconds | number | – | Wait this long for the result; longer runs continue as a job. |
| Name | Type | Req | Description |
|---|---|---|---|
| checks | array | yes | – |
| definition | string | yes | – |
| measurements | array | yes | – |
| points | array | yes | – |
| progress | – | yes | – |
| run_id | string | yes | – |
| scaps_errors | array | yes | – |
| seconds | – | yes | – |
| status | string | yes | – |
| variables | array | yes | – |
No examples provided.
scaps_create_device Create a SCAPS device ~497
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.
| Name | Type | Req | Description |
|---|---|---|---|
| interfaces | object | – | Interface defects by interface number (1 lies between layers 1 and 2), up to 3 each, e.g. {1: [{'Ntotal': 1e10, 'singledonor': null}]}. |
| layers | array | yes | Layers from the left (back) contact. Each maps set-command suffixes to values, e.g. {'name': 'absorber', 'thickness': 0.5, 'Eg': 1.55, 'chi': 3.9, 'epsilon': 10, 'NC': 2.2e18, 'NV': 1.8e19, 'mun': 2,… |
| left_contact | object | – | e.g. {'workfunction': 5.1, 'Sn': 1e5, 'Sp': 1e7}; a work function switches flat band off. |
| name | string | yes | New definition name, saved in SCAPS def/. |
| numerics | object | – | Numerical settings stored in the .def 'convergence' section, which scripts cannot set, e.g. {'maxiter': 2000, 'clamp_psi': 0.25, 'termination_psi': 1e-4, 'defectdiscretisations': 9}. |
| options | object | – | Other set commands, e.g. {'illumination.fromleft': null, 'numerical.Shockley-Queisser_limit.always': null}. |
| overwrite | boolean | – | – |
| right_contact | object | – | As left_contact. |
| Name | Type | Req | Description |
|---|---|---|---|
| definition | string | yes | – |
| device | – | yes | – |
| notes | array | yes | – |
| run_id | string | yes | – |
No examples provided.
scaps_describe_device Describe a SCAPS device ~94
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.
| Name | Type | Req | Description |
|---|---|---|---|
| definition | string | yes | Definition file in SCAPS def/, e.g. 'example CIGS.def'. |
| Name | Type | Req | Description |
|---|---|---|---|
| absorber_layer | – | yes | – |
| checks | array | yes | – |
| contacts | object | yes | – |
| definition | string | yes | – |
| interfaces | array | yes | – |
| layers | array | yes | – |
| sq_limit_mode | – | yes | – |
| units | object | yes | – |
| working_point | object | yes | – |
No examples provided.
scaps_edit_device Edit a SCAPS device ~249
Change a device and save it as a .def file: parameters, layers, defects, materials and solver settings.
| Name | Type | Req | Description |
|---|---|---|---|
| base | string | yes | Existing definition to start from. |
| materials | object | – | Load .material files into layers before the operations, e.g. {1: 'CIGSe.material'}. |
| numerics | object | – | Numerical settings stored in the .def 'convergence' section, which scripts cannot set, e.g. {'maxiter': 2000, 'clamp_psi': 0.25, 'termination_psi': 1e-4, 'defectdiscretisations': 9}. |
| operations | object | – | Ordered set commands, including structural ones: 'layer2.duplicate', 'layer3.remove', 'layer1.defect1.duplicate', 'layer1.defect2.gauss', 'interface1.2_default_IFdefects', 'layer1.Eg.file': 'profile.… |
| overwrite | boolean | – | Replace an existing file of that name. |
| save_as | string | yes | New definition name, saved in SCAPS def/. |
| Name | Type | Req | Description |
|---|---|---|---|
| definition | string | yes | – |
| device | – | yes | – |
| notes | array | yes | – |
| run_id | string | yes | – |
No examples provided.
scaps_import_file Import a SCAPS file ~126
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.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | Full text of the file. |
| kind | string | yes | File type; decides the SCAPS folder. |
| name | string | yes | File name with its SCAPS extension, e.g. 'perovskite cell.def'. |
| overwrite | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| kind | string | yes | – |
| missing_references | array | yes | – |
| summary | object | yes | – |
No examples provided.
scaps_jobs Manage SCAPS jobs ~85
List recent runs, or get, wait for or cancel one. A finished job includes its full result.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | What to do. |
| job_id | – | – | Job (run) id for status, wait and cancel. |
| limit | integer | – | – |
| wait_seconds | number | – | Wait this long for the result; longer runs continue as a job. |
| Name | Type | Req | Description |
|---|---|---|---|
| jobs | array | yes | – |
| result | – | yes | – |
No examples provided.
scaps_list_files List SCAPS files ~68
List files in a SCAPS data folder: definitions, spectra, absorption, grading, generation and more.
| Name | Type | Req | Description |
|---|---|---|---|
| contains | – | – | Case-insensitive substring filter. |
| kind | string | – | SCAPS data folder to list. |
| limit | integer | – | – |
| offset | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
| kind | string | yes | – |
| total | integer | yes | – |
No examples provided.
scaps_optimize Fit or optimise a SCAPS device ~673
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | object | – | SCAPS action commands, e.g. {'iv.startV': 0, 'iv.stopV': 1.2, 'iv.increment': 0.02, 'qe.startlambda': 300, 'cf.points.per.decade': 5, 'intensity.ND': 1, 'spectrumcutoff.on': null, 'spectrumcutoff.lon… |
| definition | string | yes | Definition file in SCAPS def/, e.g. 'example CIGS.def'. |
| goal | string | yes | fit measured curves, maximise or minimise a J-V metric, or reach a target value. |
| max_evaluations | integer | – | – |
| measured | array | – | For fit: curves to match together, e.g. [{'kind': 'iv', 'file': 'Numos Ex 1 light.iv'}, {'kind': 'iv', 'x': [...], 'y': [...], 'illumination': 'dark', 'log': true, 'weight': 1}]. Files come from SCAP… |
| metric | – | – | Metric for maximize, minimize and target. |
| parameters | object | – | Ordered SCAPS set commands in script units, e.g. {'layer1.thickness': 2, 'layer1.NA': 1e16, 'layer1.defect1.Ntotal': 1e14, 'layer1.defect1.singleacceptor': null, 'interface1.IFdefect1.Ntotal': 1e10,… |
| spectrum | – | – | Spectrum file in SCAPS spectrum/; default AM1.5G 1 sun. |
| target | – | – | Target value of the metric for goal 'target'. |
| temperature_k | – | – | Working point temperature in K. |
| variables | object | yes | Set or action keys to vary with bounds, e.g. {'layer1.defect1.Ntotal': {'min': 1e12, 'max': 1e16, 'log': true}, 'layer2.thickness': {'min': 0.03, 'max': 0.12, 'start': 0.05}}. |
| wait_seconds | number | – | Wait this long for the result; longer runs continue as a job. |
| Name | Type | Req | Description |
|---|---|---|---|
| best | object | yes | – |
| best_metrics | – | yes | – |
| best_value | – | yes | – |
| checks | array | yes | – |
| evaluations | integer | yes | – |
| history | array | yes | – |
| objective | string | yes | – |
| progress | – | yes | – |
| run_id | string | yes | – |
| status | string | yes | – |
No examples provided.
scaps_plot Plot SCAPS results ~125
Render result curves as a PNG image. Requires the optional 'plot' extra.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | Result files of the run to overlay. |
| log_x | boolean | – | – |
| log_y | boolean | – | – |
| run_id | string | yes | Run id. |
| table | – | – | Table title or index, as in scaps_results. |
| title | – | – | – |
| width_px | integer | – | – |
| x | – | – | X column; default the natural axis of the file type. |
| y | – | – | Y columns; default the key column of the file type. |
No output schema declared.
No examples provided.
scaps_results Read SCAPS results ~138
Return one table of a result file: J-V, QE, C-V, C-f curves or band, generation and AC profiles.
| Name | Type | Req | Description |
|---|---|---|---|
| columns | – | – | Columns to keep; default all. |
| file | – | – | Result file of the run; omit to list the files. |
| max_rows | integer | – | – |
| offset | integer | – | – |
| run_id | string | yes | Run id from scaps_simulate, scaps_batch or scaps_run_script. |
| step | integer | – | Keep every n-th row to thin long profiles. |
| table | – | – | Table title ('bulk', 'interface') or index; default the main table. |
| Name | Type | Req | Description |
|---|---|---|---|
| columns | array | yes | – |
| file | string | yes | – |
| info | object | yes | – |
| kind | – | yes | – |
| offset | integer | yes | – |
| rows | array | yes | – |
| run_id | string | yes | – |
| tables | array | yes | – |
| title | – | yes | – |
| total_rows | integer | yes | – |
No examples provided.
scaps_run_script Run a SCAPS script ~148
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.
| Name | Type | Req | Description |
|---|---|---|---|
| script | string | yes | SCAPS script text, one command per line. |
| timeout_s | – | – | Override SCAPS_TIMEOUT. |
| validate_only | boolean | – | Only check the script and report problems. |
| wait_seconds | number | – | Wait this long for the result; longer runs continue as a job. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
| problems | array | yes | – |
| progress | – | yes | – |
| run_id | string | yes | – |
| scaps_errors | array | yes | – |
| seconds | – | yes | – |
| status | string | yes | – |
| warnings | array | yes | – |
No examples provided.
scaps_script_reference Search SCAPS script commands ~91
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| query | string | yes | Words to match, e.g. 'defect Ntotal' or 'action qe'. |
| Name | Type | Req | Description |
|---|---|---|---|
| commands | array | yes | – |
| query | string | yes | – |
| source | – | yes | – |
| total | integer | yes | – |
No examples provided.
scaps_simulate Run a SCAPS simulation ~539
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | object | – | SCAPS action commands, e.g. {'iv.startV': 0, 'iv.stopV': 1.2, 'iv.increment': 0.02, 'qe.startlambda': 300, 'cf.points.per.decade': 5, 'intensity.ND': 1, 'spectrumcutoff.on': null, 'spectrumcutoff.lon… |
| definition | string | yes | Definition file in SCAPS def/, e.g. 'example CIGS.def'. |
| frequency_hz | – | – | Working point frequency in Hz. |
| illumination | string | – | Calculate under the spectrum or in the dark. |
| measurements | array | – | Measurements: iv (J-V), qe, cv, cf. May be empty when profiles are requested. |
| parameters | object | – | Ordered SCAPS set commands in script units, e.g. {'layer1.thickness': 2, 'layer1.NA': 1e16, 'layer1.defect1.Ntotal': 1e14, 'layer1.defect1.singleacceptor': null, 'interface1.IFdefect1.Ntotal': 1e10,… |
| profiles | array | – | Spatial results at the working point voltage: eb (bands, quasi-Fermi levels, carriers, field, currents, generation and recombination rates) and genrec (occupation of every defect level); ac (small si… |
| response_format | string | – | detailed adds the key columns of each curve. |
| spectrum | – | – | Spectrum file in SCAPS spectrum/; default AM1.5G 1 sun. |
| temperature_k | – | – | Working point temperature in K. |
| voltage_v | – | – | Working point bias in V. |
| wait_seconds | number | – | Wait this long for the result; longer runs continue as a job. |
| Name | Type | Req | Description |
|---|---|---|---|
| analysis | – | yes | – |
| checks | array | yes | – |
| curves | array | yes | – |
| definition | string | yes | – |
| files | array | yes | – |
| measurements | array | yes | – |
| metrics | – | yes | – |
| profiles | array | yes | – |
| progress | – | yes | – |
| run_id | string | yes | – |
| scaps_errors | array | yes | – |
| seconds | – | yes | – |
| status | string | yes | – |
No examples provided.
scaps_sq_limit Shockley-Queisser limit ~77
Detailed-balance Jsc, Voc, FF and efficiency limits for given band gaps under a SCAPS spectrum.
| Name | Type | Req | Description |
|---|---|---|---|
| band_gaps_ev | array | yes | Band gaps in eV. |
| spectrum | – | – | Spectrum file in SCAPS spectrum/; default AM1.5G 1 sun. |
| temperature_k | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| limits | array | yes | – |
| spectrum | string | yes | – |
No examples provided.
scaps_status SCAPS installation status ~30
Report the SCAPS installation in use and how it was found, other installations, run folder and jobs.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| active_jobs | array | yes | – |
| busy | boolean | yes | – |
| executable | string | yes | – |
| other_installations | array | yes | – |
| plotting | boolean | yes | – |
| runs_dir | string | yes | – |
| scaps_home | string | yes | – |
| scaps_home_source | string | yes | – |
| scaps_version | string | yes | – |
| script_commands | integer | yes | – |
| timeout_s | number | yes | – |
| wine_prefix | – | yes | – |
No examples provided.
scaps_write_data Write a SCAPS input file ~429
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.
| Name | Type | Req | Description |
|---|---|---|---|
| area_cm2 | number | – | measurement only. |
| bias_v | – | – | measurement only. |
| dark | boolean | – | measurement only. |
| extra | – | – | measurement only: conductance G in S. |
| frequency_hz | – | – | measurement only. |
| interpolation | – | – | grading only. |
| kind | string | yes | Input file type. |
| name | string | yes | File name; the SCAPS extension is added if missing. |
| normalise_w_m2 | – | – | spectrum only: scale total power. |
| note | – | – | Source or description, written as comment lines. |
| overwrite | boolean | – | – |
| pin_mw_cm2 | – | – | measurement only. |
| position | string | – | grading only. |
| quantity | – | – | absorption: alpha_per_cm (default), alpha_per_m or k; spectrum: irradiance_w_m2_nm (default) or power_w_m2; generation: per_cm3_s (default) or per_m3_s; grading: the property, e.g. composition, Eg, N… |
| shared | boolean | – | grading only: one profile over adjacent layers. |
| temperature_k | – | – | measurement only. |
| x | array | yes | absorption: wavelength or photon energy (x_unit); spectrum, filter: wavelength nm; generation: position um; grading: position um, relative position or composition; measurement: V (iv, cv), Hz (cf) or… |
| x_unit | string | – | absorption only: unit of x, wavelength or photon energy. |
| y | array | yes | absorption: alpha or k (see quantity); spectrum: W/m2/nm or W/m2 per point; generation: G; filter: % transmission or reflection; grading: property in script units; measurement: mA, nF or QE %. |
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| folder | string | yes | – |
| kind | string | yes | – |
| points | integer | yes | – |
No examples provided.
How do I install the SCAPS-1D MCP server?
SCAPS-1D runs locally as a PyPI package, launched with uvx scaps-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · scaps-mcp
claude mcp add asiff00-scaps-mcp -- uvx scaps-mcp
What is the SCAPS-1D MCP server?
SCAPS-1D is an MCP server listed in the public MCP registry as io.github.asiff00/scaps-mcp. Design, simulate, fit and sanity-check thin-film solar cells with SCAPS-1D on your own installation. This page covers its PyPI package (scaps-mcp).
Is the SCAPS-1D MCP server safe to use?
SCAPS-1D scores 66 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the SCAPS-1D MCP server expose?
SCAPS-1D exposes 16 tools: scaps_status, scaps_list_files, scaps_script_reference, scaps_describe_device, scaps_edit_device, and 11 more. Their descriptions and schemas cost roughly 3,932 tokens of context every time the server is loaded.
Is the SCAPS-1D MCP server still maintained?
SCAPS-1D is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the SCAPS-1D MCP server under?
SCAPS-1D declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.