{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T15:49:29.964Z","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp","markdownUrl":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp.md","server":{"slug":"asiff00-scaps-mcp","name":"SCAPS-1D","registryName":"io.github.asiff00/scaps-mcp","description":"Design, simulate, fit and sanity-check thin-film solar cells with SCAPS-1D on your own installation.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"scaps-mcp","type":"pypi","identifier":"scaps-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp","version":"0.1.0","transport":"stdio","scoredAt":"2026-11-05T08:14:12.338Z"},"score":{"total":66,"tier":"medium","status":"scored","weekDelta":0,"history":[{"date":"2026-11-05","total":66},{"date":"2026-11-04","total":51},{"date":"2026-11-03","total":66},{"date":"2026-11-02","total":51},{"date":"2026-11-01","total":51},{"date":"2026-10-31","total":51},{"date":"2026-10-30","total":51},{"date":"2026-10-29","total":66},{"date":"2026-10-28","total":51},{"date":"2026-10-27","total":51},{"date":"2026-10-26","total":51}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"partial","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","Runs hatchling.build at install time, a recognised build step with no custom scripting around it.","1 of 28 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"28","unhealthy":"1"}}]},{"name":"Provenance & Transparency","score":45,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 9 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"9"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":51,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","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.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"259","items":"16","tools":"16","tokens":"4144","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":96,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","86% of tool parameters carry a description.","Structured output schemas are declared (94% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"86"}},{"code":"toolquality.output_present","args":{"pct":"94"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 16 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"16"}},{"code":"toolsafety.manipulation_clean","args":{"units":"17","judged":"17"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"malware":[],"components":[{"slug":"scaps-mcp","type":"pypi","identifier":"scaps-mcp","withdrawn":false,"score":66,"current":true,"url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp","markdownUrl":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"scaps-mcp"},{"label":"Version","value":"0.1.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"scaps_status","title":"SCAPS installation status","description":"Report the SCAPS installation in use and how it was found, other installations, run folder and jobs.","inputs":[],"outputs":[{"name":"active_jobs","type":"array","required":true,"description":null},{"name":"busy","type":"boolean","required":true,"description":null},{"name":"executable","type":"string","required":true,"description":null},{"name":"other_installations","type":"array","required":true,"description":null},{"name":"plotting","type":"boolean","required":true,"description":null},{"name":"runs_dir","type":"string","required":true,"description":null},{"name":"scaps_home","type":"string","required":true,"description":null},{"name":"scaps_home_source","type":"string","required":true,"description":null},{"name":"scaps_version","type":"string","required":true,"description":null},{"name":"script_commands","type":"integer","required":true,"description":null},{"name":"timeout_s","type":"number","required":true,"description":null},{"name":"wine_prefix","type":null,"required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":30},{"name":"scaps_list_files","title":"List SCAPS files","description":"List files in a SCAPS data folder: definitions, spectra, absorption, grading, generation and more.","inputs":[{"name":"contains","type":null,"required":false,"description":"Case-insensitive substring filter."},{"name":"kind","type":"string","required":false,"description":"SCAPS data folder to list."},{"name":"limit","type":"integer","required":false,"description":null},{"name":"offset","type":"integer","required":false,"description":null}],"outputs":[{"name":"files","type":"array","required":true,"description":null},{"name":"kind","type":"string","required":true,"description":null},{"name":"total","type":"integer","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":68},{"name":"scaps_script_reference","title":"Search SCAPS script commands","description":"Search the command list of the installed SCAPS version.\n\nlayer, defect, interface and IFdefect stand for numbered forms (layer2, defect1); contact stands for\ncontactleft or contactright; <none> marks commands without a value.","inputs":[{"name":"limit","type":"integer","required":false,"description":null},{"name":"query","type":"string","required":true,"description":"Words to match, e.g. 'defect Ntotal' or 'action qe'."}],"outputs":[{"name":"commands","type":"array","required":true,"description":null},{"name":"query","type":"string","required":true,"description":null},{"name":"source","type":null,"required":true,"description":null},{"name":"total","type":"integer","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":91},{"name":"scaps_describe_device","title":"Describe a SCAPS device","description":"Read a .def file: layers, bulk defects, interfaces with band offsets, contacts and realism checks.\n\nFields use script names and units, so any value can be passed back as a parameter\n(layers[0].NA -> 'layer1.NA'). Graded layers report their base value.","inputs":[{"name":"definition","type":"string","required":true,"description":"Definition file in SCAPS def/, e.g. 'example CIGS.def'."}],"outputs":[{"name":"absorber_layer","type":null,"required":true,"description":null},{"name":"checks","type":"array","required":true,"description":null},{"name":"contacts","type":"object","required":true,"description":null},{"name":"definition","type":"string","required":true,"description":null},{"name":"interfaces","type":"array","required":true,"description":null},{"name":"layers","type":"array","required":true,"description":null},{"name":"sq_limit_mode","type":null,"required":true,"description":null},{"name":"units","type":"object","required":true,"description":null},{"name":"working_point","type":"object","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":94},{"name":"scaps_edit_device","title":"Edit a SCAPS device","description":"Change a device and save it as a .def file: parameters, layers, defects, materials and solver settings.","inputs":[{"name":"base","type":"string","required":true,"description":"Existing definition to start from."},{"name":"materials","type":"object","required":false,"description":"Load .material files into layers before the operations, e.g. {1: 'CIGSe.material'}."},{"name":"numerics","type":"object","required":false,"description":"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}."},{"name":"operations","type":"object","required":false,"description":"Ordered set commands, including structural ones: 'layer2.duplicate', 'layer3.remove', 'layer1.defect1.duplicate', 'layer1.defect2.gauss', 'interface1.2_default_IFdefects', 'layer1.Eg.file': 'profile.…"},{"name":"overwrite","type":"boolean","required":false,"description":"Replace an existing file of that name."},{"name":"save_as","type":"string","required":true,"description":"New definition name, saved in SCAPS def/."}],"outputs":[{"name":"definition","type":"string","required":true,"description":null},{"name":"device","type":null,"required":true,"description":null},{"name":"notes","type":"array","required":true,"description":null},{"name":"run_id","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":249},{"name":"scaps_create_device","title":"Create a SCAPS device","description":"Build a new device from scratch and save it as a .def file.\n\nA layer may name a .material file ('material': 'CIGSe.material'); its properties apply first and\nexplicit keys override them.","inputs":[{"name":"interfaces","type":"object","required":false,"description":"Interface defects by interface number (1 lies between layers 1 and 2), up to 3 each, e.g. {1: [{'Ntotal': 1e10, 'singledonor': null}]}."},{"name":"layers","type":"array","required":true,"description":"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,…"},{"name":"left_contact","type":"object","required":false,"description":"e.g. {'workfunction': 5.1, 'Sn': 1e5, 'Sp': 1e7}; a work function switches flat band off."},{"name":"name","type":"string","required":true,"description":"New definition name, saved in SCAPS def/."},{"name":"numerics","type":"object","required":false,"description":"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}."},{"name":"options","type":"object","required":false,"description":"Other set commands, e.g. {'illumination.fromleft': null, 'numerical.Shockley-Queisser_limit.always': null}."},{"name":"overwrite","type":"boolean","required":false,"description":null},{"name":"right_contact","type":"object","required":false,"description":"As left_contact."}],"outputs":[{"name":"definition","type":"string","required":true,"description":null},{"name":"device","type":null,"required":true,"description":null},{"name":"notes","type":"array","required":true,"description":null},{"name":"run_id","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":497},{"name":"scaps_simulate","title":"Run a SCAPS simulation","description":"Simulate a device: J-V metrics, QE, C-V, C-f and spatial profiles, with analysis and realism checks.\n\nAnalysis gives the absorber's Shockley-Queisser limit, QE-integrated Jsc and a Mott-Schottky fit of\nC-V. Overrides apply to this run only; files stay available through scaps_results and scaps_plot.","inputs":[{"name":"actions","type":"object","required":false,"description":"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…"},{"name":"definition","type":"string","required":true,"description":"Definition file in SCAPS def/, e.g. 'example CIGS.def'."},{"name":"frequency_hz","type":null,"required":false,"description":"Working point frequency in Hz."},{"name":"illumination","type":"string","required":false,"description":"Calculate under the spectrum or in the dark."},{"name":"measurements","type":"array","required":false,"description":"Measurements: iv (J-V), qe, cv, cf. May be empty when profiles are requested."},{"name":"parameters","type":"object","required":false,"description":"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,…"},{"name":"profiles","type":"array","required":false,"description":"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…"},{"name":"response_format","type":"string","required":false,"description":"detailed adds the key columns of each curve."},{"name":"spectrum","type":null,"required":false,"description":"Spectrum file in SCAPS spectrum/; default AM1.5G 1 sun."},{"name":"temperature_k","type":null,"required":false,"description":"Working point temperature in K."},{"name":"voltage_v","type":null,"required":false,"description":"Working point bias in V."},{"name":"wait_seconds","type":"number","required":false,"description":"Wait this long for the result; longer runs continue as a job."}],"outputs":[{"name":"analysis","type":null,"required":true,"description":null},{"name":"checks","type":"array","required":true,"description":null},{"name":"curves","type":"array","required":true,"description":null},{"name":"definition","type":"string","required":true,"description":null},{"name":"files","type":"array","required":true,"description":null},{"name":"measurements","type":"array","required":true,"description":null},{"name":"metrics","type":null,"required":true,"description":null},{"name":"profiles","type":"array","required":true,"description":null},{"name":"progress","type":null,"required":true,"description":null},{"name":"run_id","type":"string","required":true,"description":null},{"name":"scaps_errors","type":"array","required":true,"description":null},{"name":"seconds","type":null,"required":true,"description":null},{"name":"status","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":539},{"name":"scaps_batch","title":"Batch SCAPS simulations","description":"Run one SCAPS session over many parameter values and tabulate the J-V metrics of every point.\n\nCovers thickness, doping, defect, band offset, temperature, intensity and bias studies. Every point's\nfiles are kept for scaps_results and scaps_plot.","inputs":[{"name":"actions","type":"object","required":false,"description":"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…"},{"name":"definition","type":"string","required":true,"description":"Definition file in SCAPS def/, e.g. 'example CIGS.def'."},{"name":"illumination","type":"string","required":false,"description":"Calculate under the spectrum or in the dark."},{"name":"measurements","type":"array","required":false,"description":"Measurements: iv (J-V), qe, cv, cf. May be empty when profiles are requested."},{"name":"mode","type":"string","required":false,"description":"grid runs every combination; zip pairs the lists element-wise."},{"name":"parameters","type":"object","required":false,"description":"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,…"},{"name":"profiles","type":"array","required":false,"description":"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…"},{"name":"spectrum","type":null,"required":false,"description":"Spectrum file in SCAPS spectrum/; default AM1.5G 1 sun."},{"name":"temperature_k","type":null,"required":false,"description":"Working point temperature in K."},{"name":"variables","type":"object","required":true,"description":"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]}."},{"name":"wait_seconds","type":"number","required":false,"description":"Wait this long for the result; longer runs continue as a job."}],"outputs":[{"name":"checks","type":"array","required":true,"description":null},{"name":"definition","type":"string","required":true,"description":null},{"name":"measurements","type":"array","required":true,"description":null},{"name":"points","type":"array","required":true,"description":null},{"name":"progress","type":null,"required":true,"description":null},{"name":"run_id","type":"string","required":true,"description":null},{"name":"scaps_errors","type":"array","required":true,"description":null},{"name":"seconds","type":null,"required":true,"description":null},{"name":"status","type":"string","required":true,"description":null},{"name":"variables","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":563},{"name":"scaps_jobs","title":"Manage SCAPS jobs","description":"List recent runs, or get, wait for or cancel one. A finished job includes its full result.","inputs":[{"name":"action","type":"string","required":false,"description":"What to do."},{"name":"job_id","type":null,"required":false,"description":"Job (run) id for status, wait and cancel."},{"name":"limit","type":"integer","required":false,"description":null},{"name":"wait_seconds","type":"number","required":false,"description":"Wait this long for the result; longer runs continue as a job."}],"outputs":[{"name":"jobs","type":"array","required":true,"description":null},{"name":"result","type":null,"required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":85},{"name":"scaps_results","title":"Read SCAPS results","description":"Return one table of a result file: J-V, QE, C-V, C-f curves or band, generation and AC profiles.","inputs":[{"name":"columns","type":null,"required":false,"description":"Columns to keep; default all."},{"name":"file","type":null,"required":false,"description":"Result file of the run; omit to list the files."},{"name":"max_rows","type":"integer","required":false,"description":null},{"name":"offset","type":"integer","required":false,"description":null},{"name":"run_id","type":"string","required":true,"description":"Run id from scaps_simulate, scaps_batch or scaps_run_script."},{"name":"step","type":"integer","required":false,"description":"Keep every n-th row to thin long profiles."},{"name":"table","type":null,"required":false,"description":"Table title ('bulk', 'interface') or index; default the main table."}],"outputs":[{"name":"columns","type":"array","required":true,"description":null},{"name":"file","type":"string","required":true,"description":null},{"name":"info","type":"object","required":true,"description":null},{"name":"kind","type":null,"required":true,"description":null},{"name":"offset","type":"integer","required":true,"description":null},{"name":"rows","type":"array","required":true,"description":null},{"name":"run_id","type":"string","required":true,"description":null},{"name":"tables","type":"array","required":true,"description":null},{"name":"title","type":null,"required":true,"description":null},{"name":"total_rows","type":"integer","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":138},{"name":"scaps_plot","title":"Plot SCAPS results","description":"Render result curves as a PNG image. Requires the optional 'plot' extra.","inputs":[{"name":"files","type":"array","required":true,"description":"Result files of the run to overlay."},{"name":"log_x","type":"boolean","required":false,"description":null},{"name":"log_y","type":"boolean","required":false,"description":null},{"name":"run_id","type":"string","required":true,"description":"Run id."},{"name":"table","type":null,"required":false,"description":"Table title or index, as in scaps_results."},{"name":"title","type":null,"required":false,"description":null},{"name":"width_px","type":"integer","required":false,"description":null},{"name":"x","type":null,"required":false,"description":"X column; default the natural axis of the file type."},{"name":"y","type":null,"required":false,"description":"Y columns; default the key column of the file type."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":125},{"name":"scaps_run_script","title":"Run a SCAPS script","description":"Run a SCAPS script for workflows beyond the other tools: recorder, curve fitting, math, loops, tandem.\n\nThe server prepends quit and error-log settings and 'clear all'. Commands are checked against the\ninstalled SCAPS; file names must be bare; system commands are rejected. Results saved with\n'save results.<kind> name' are collected into the run.","inputs":[{"name":"script","type":"string","required":true,"description":"SCAPS script text, one command per line."},{"name":"timeout_s","type":null,"required":false,"description":"Override SCAPS_TIMEOUT."},{"name":"validate_only","type":"boolean","required":false,"description":"Only check the script and report problems."},{"name":"wait_seconds","type":"number","required":false,"description":"Wait this long for the result; longer runs continue as a job."}],"outputs":[{"name":"files","type":"array","required":true,"description":null},{"name":"problems","type":"array","required":true,"description":null},{"name":"progress","type":null,"required":true,"description":null},{"name":"run_id","type":"string","required":true,"description":null},{"name":"scaps_errors","type":"array","required":true,"description":null},{"name":"seconds","type":null,"required":true,"description":null},{"name":"status","type":"string","required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":148},{"name":"scaps_sq_limit","title":"Shockley-Queisser limit","description":"Detailed-balance Jsc, Voc, FF and efficiency limits for given band gaps under a SCAPS spectrum.","inputs":[{"name":"band_gaps_ev","type":"array","required":true,"description":"Band gaps in eV."},{"name":"spectrum","type":null,"required":false,"description":"Spectrum file in SCAPS spectrum/; default AM1.5G 1 sun."},{"name":"temperature_k","type":"number","required":false,"description":null}],"outputs":[{"name":"limits","type":"array","required":true,"description":null},{"name":"spectrum","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":77},{"name":"scaps_import_file","title":"Import a SCAPS file","description":"Add a SCAPS file someone shared (device .def, .material, .abs, spectrum, measurement...) to the installation.\n\nDefinitions and materials are parsed to confirm they are valid, and files they reference but that are\nmissing (absorption, grading, filter) are listed.","inputs":[{"name":"content","type":"string","required":true,"description":"Full text of the file."},{"name":"kind","type":"string","required":true,"description":"File type; decides the SCAPS folder."},{"name":"name","type":"string","required":true,"description":"File name with its SCAPS extension, e.g. 'perovskite cell.def'."},{"name":"overwrite","type":"boolean","required":false,"description":null}],"outputs":[{"name":"file","type":"string","required":true,"description":null},{"name":"kind","type":"string","required":true,"description":null},{"name":"missing_references","type":"array","required":true,"description":null},{"name":"summary","type":"object","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":126},{"name":"scaps_write_data","title":"Write a SCAPS input file","description":"Write numeric data as a SCAPS input file with the right format and units.\n\nUse it for measured absorption (alpha or extinction coefficient k), custom spectra, external optical\ngeneration profiles, contact filters, grading profiles and measurement files for comparison.","inputs":[{"name":"area_cm2","type":"number","required":false,"description":"measurement only."},{"name":"bias_v","type":null,"required":false,"description":"measurement only."},{"name":"dark","type":"boolean","required":false,"description":"measurement only."},{"name":"extra","type":null,"required":false,"description":"measurement only: conductance G in S."},{"name":"frequency_hz","type":null,"required":false,"description":"measurement only."},{"name":"interpolation","type":null,"required":false,"description":"grading only."},{"name":"kind","type":"string","required":true,"description":"Input file type."},{"name":"name","type":"string","required":true,"description":"File name; the SCAPS extension is added if missing."},{"name":"normalise_w_m2","type":null,"required":false,"description":"spectrum only: scale total power."},{"name":"note","type":null,"required":false,"description":"Source or description, written as comment lines."},{"name":"overwrite","type":"boolean","required":false,"description":null},{"name":"pin_mw_cm2","type":null,"required":false,"description":"measurement only."},{"name":"position","type":"string","required":false,"description":"grading only."},{"name":"quantity","type":null,"required":false,"description":"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…"},{"name":"shared","type":"boolean","required":false,"description":"grading only: one profile over adjacent layers."},{"name":"temperature_k","type":null,"required":false,"description":"measurement only."},{"name":"x","type":"array","required":true,"description":"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…"},{"name":"x_unit","type":"string","required":false,"description":"absorption only: unit of x, wavelength or photon energy."},{"name":"y","type":"array","required":true,"description":"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 %."}],"outputs":[{"name":"file","type":"string","required":true,"description":null},{"name":"folder","type":"string","required":true,"description":null},{"name":"kind","type":"string","required":true,"description":null},{"name":"points","type":"integer","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":429},{"name":"scaps_optimize","title":"Fit or optimise a SCAPS device","description":"Fit device parameters to measured curves, or optimise efficiency, Voc, Jsc or FF, by bounded Nelder-Mead.\n\nReplaces the GUI-only SCAPS curve fitter and supports several measurements at once (light and dark J-V,\nQE, C-V). Each simplex step is one SCAPS session per measurement condition; long runs continue as a\njob past wait_seconds, so poll with scaps_jobs.","inputs":[{"name":"actions","type":"object","required":false,"description":"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…"},{"name":"definition","type":"string","required":true,"description":"Definition file in SCAPS def/, e.g. 'example CIGS.def'."},{"name":"goal","type":"string","required":true,"description":"fit measured curves, maximise or minimise a J-V metric, or reach a target value."},{"name":"max_evaluations","type":"integer","required":false,"description":null},{"name":"measured","type":"array","required":false,"description":"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…"},{"name":"metric","type":null,"required":false,"description":"Metric for maximize, minimize and target."},{"name":"parameters","type":"object","required":false,"description":"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,…"},{"name":"spectrum","type":null,"required":false,"description":"Spectrum file in SCAPS spectrum/; default AM1.5G 1 sun."},{"name":"target","type":null,"required":false,"description":"Target value of the metric for goal 'target'."},{"name":"temperature_k","type":null,"required":false,"description":"Working point temperature in K."},{"name":"variables","type":"object","required":true,"description":"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}}."},{"name":"wait_seconds","type":"number","required":false,"description":"Wait this long for the result; longer runs continue as a job."}],"outputs":[{"name":"best","type":"object","required":true,"description":null},{"name":"best_metrics","type":null,"required":true,"description":null},{"name":"best_value","type":null,"required":true,"description":null},{"name":"checks","type":"array","required":true,"description":null},{"name":"evaluations","type":"integer","required":true,"description":null},{"name":"history","type":"array","required":true,"description":null},{"name":"objective","type":"string","required":true,"description":null},{"name":"progress","type":null,"required":true,"description":null},{"name":"run_id","type":"string","required":true,"description":null},{"name":"status","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":673}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T08:14:12.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":"no_attestation","reasonLabel":"No attestation published","discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":28,"partial":false,"deprecated":null,"stale":null,"noRepo":1}},"mismatches":[],"changelog":{"trackingSince":"2026-10-26","recent":[{"id":"chg_01a1aac5-cd95-7156-a965-9eb56f8904fc","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a1aac5-cd95-7156-a965-9eb56f8904fc"},{"id":"chg_01a1aac5-cd98-7d06-9a46-3539f50051b2","kind":"score.total_changed","summary":"Trust score (51 → 66)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a1aac5-cd98-7d06-9a46-3539f50051b2"},{"id":"chg_01a1a59c-7e22-7405-8866-97739ca56bfc","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a1a59c-7e22-7405-8866-97739ca56bfc"},{"id":"chg_01a1a59c-7e24-723c-b708-aee5bfad998d","kind":"score.total_changed","summary":"Trust score (66 → 51)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a1a59c-7e24-723c-b708-aee5bfad998d"},{"id":"chg_01a1a011-e8fe-72d0-b022-594d421842e2","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a1a011-e8fe-72d0-b022-594d421842e2"},{"id":"chg_01a1a011-e8ff-7740-b3ae-4f761593fe14","kind":"score.total_changed","summary":"Trust score (51 → 66)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a1a011-e8ff-7740-b3ae-4f761593fe14"},{"id":"chg_01a18be9-7975-7f15-af3f-78c49155935a","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a18be9-7975-7f15-af3f-78c49155935a"},{"id":"chg_01a18be9-7977-7326-9c04-e62540f6cd65","kind":"score.total_changed","summary":"Trust score (66 → 51)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a18be9-7977-7326-9c04-e62540f6cd65"},{"id":"chg_01a186c8-1d5d-7626-86aa-65547dfa0cc1","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a186c8-1d5d-7626-86aa-65547dfa0cc1"},{"id":"chg_01a186c8-1d5e-757f-bfe2-0e21539c94b1","kind":"score.total_changed","summary":"Trust score (51 → 66)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a186c8-1d5e-757f-bfe2-0e21539c94b1"},{"id":"chg_01a17981-3dc8-7ced-807c-6bbc1a92f0a8","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp#chg-chg_01a17981-3dc8-7ced-807c-6bbc1a92f0a8"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp","markdown":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp.md","changelogJson":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/asiff00-scaps-mcp/scaps-mcp.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/scaps-mcp/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/scaps-mcp"},{"label":"Repository","href":"https://github.com/asiff00/scaps-mcp"}]}}