Skip to main content
Glama
Solitario119

IC-CAP MCP Server

by Solitario119

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ICCAP_MCP_HOSTNoSSE bind address127.0.0.1
ICCAP_MCP_PORTNoSSE port8765
ICCAP_PYTHONHOMEYesIC-CAP Python prefix, used to resolve typing_extensions
ICCAP_MCP_LOG_FILENoLauncher crash log./mcp_server.log
ICCAP_MCP_WORKSPACENoPlot capture and export directory./iccap_mcp_workspace
ICCAP_MCP_SOURCE_DIRNoPackage source used by the launcher (defaults to the repository src directory)
ICCAP_MCP_ALLOW_REMOTENoAllow a non-loopback bind address when set to '1'0
ICCAP_MCP_TOOL_TIMEOUTNoTool-call timeout in seconds60

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
object_existB

Check if an IC-CAP object exists at the specified path.

object_createA

Create a new IC-CAP object without replacing an existing object unless overwrite=true. Plot guard: when creating a Plot onto a name a Transform/Input/Output already uses, the Plot is auto-suffixed '_plot' ('_plot2', ... on collision) and the response reports name_adjusted/final_name, so no name conflict is ever created.

object_deleteA

Delete an IC-CAP object. Irreversible. Use object_type to disambiguate when Transform and Plot share the same name (e.g., object_type='Plot' to delete the Plot instead of the Transform).

object_renameA

Rename an IC-CAP object. Supported types: Model, Dut, Setup, Input, Output, Transform, Plot, Macro. NOT supported for: Par, MPar, DPar, TableVar, Main, InstrVar. Use object_type to disambiguate naming conflicts.

object_copyA

Copy an IC-CAP object without replacing an existing destination unless overwrite=true.

object_get_fullnameC

Get the full path name of an IC-CAP object.

object_get_pathA

Get the parent path of an IC-CAP object (excluding object name).

object_get_valA

Get the value of an IC-CAP object. For parameters: supports minvalmax. For datasets: supports msb.

object_set_valB

Set the value of an IC-CAP object. For parameters: supports minvalmax. For datasets: supports msb and force.

object_get_valofB

Get visible variable or parameter value from an object, searching the hierarchy.

object_get_childB

Get a specific child object by name with optional type filtering.

object_get_child_objectsA

Get all child objects of a specific type. WARNING: May hang when used on Transform paths; use setup_get_transforms instead.

object_child_names_of_typeC

Get a list of child object names of a specific type.

object_delete_childrenA

Delete all child objects of specified types.

object_find_child_varC

Find a variable in the child variable table of an object.

object_find_varB

Find a variable by name with scope control: 'upward_scope' (search hierarchy) or 'obj_owned' (direct children only).

object_get_precisionC

Get parameter precision and working precision of an IC-CAP object.

model_createA

Create a Model object. Model is the top-level container with circuit netlist, DUTs, parameters, and variables. Set overwrite=true explicitly to replace an existing Model.

model_get_circuitB

Get the Model's SPICE circuit netlist.

model_set_circuitC

Set the Model's SPICE circuit netlist.

model_get_dutsA

Get all DUT names under a Model.

model_get_mvarsC

Get all Model variables (MVar) with their values.

model_get_mparsB

Get all Model parameters (MPar) with their values.

model_get_macrosA

Get all Macro names under a Model.

dut_createB

Create a DUT (Device Under Test) object. Set overwrite=true explicitly to replace an existing DUT.

dut_get_setupsA

Get all Setup names under a DUT.

dut_get_dvarsB

Get all DUT variables (DVar) with their values.

dut_get_dparsA

Get all DUT parameters (DPar) with their values.

setup_createA

Create a Setup object. Set overwrite=true explicitly to replace an existing Setup. Ordering: Transforms may be created before or after setup_import_mdm — both orders are supported (live-verified 2026-09-02: derivative, Optimize, and PythonLocal transforms created after import, no hangs). Importing data before creating program transforms lets their UPDATE_AUTO auto-execution run against real data.

setup_simulateA

Run SPICE simulation on a Setup. The gateway executes it synchronously on IC-CAP's main thread; external MCP clients may submit it as a managed job.

setup_measureB

Run measurement instruments on a Setup. Use run_async=true for a managed observable job.

setup_get_inputsA

Get all Input names in this Setup.

setup_get_outputsA

Get all Output names in this Setup.

setup_get_transformsA

Get all Transform names in this Setup.

setup_get_plotsA

Get all Plot names in this Setup.

setup_get_svarsB

Get all Setup variables (SVar) with their names and values.

setup_get_lengthB

Get the data length of the Setup's dataset.

setup_get_infoA

Get complete Setup info: all input names, output names, transform names, plot names, and data length. Useful for verifying Setup structure.

setup_export_mdmA

Export Setup measurement or simulation data to an .mdm file. File is written directly on the server side, suitable for large datasets. file_path should be an absolute path on the server machine.

setup_import_mdmA

Import data from an .mdm file into a Setup using Import Create command. Automatically creates inputs/outputs structure from MDM file. Ordering: Transforms may be created before or after the import — both orders are supported and live-verified (2026-09-02: derivative/Optimize/PythonLocal created after import, no hangs, configuration read back effective). A bonus of importing first: program transforms whose Program starts with an UPDATE_AUTO line auto-execute on creation, so that execution runs against the already-imported data. Data is processed on the server side, suitable for large datasets.

input_createC

Create and configure an Input object.

Mode (modedict) options:

  • V: Voltage mode (+Node, -Node, Unit, Compliance)

  • I: Current mode (ToNode, FromNode, Unit, Compliance)

  • F: Frequency mode

  • T: Time mode

  • P: Parameter mode (ParamName, Unit)

  • U: Voltage mode (+Node, -Node, Unit, Compliance)

  • W: Power mode

Sweep Type (sweepdict) options:

  • LIN: Linear sweep (SweepOrder, Start, Stop, # of Points)

  • LOG: Logarithmic sweep (SweepOrder, Start, Stop, # of Points, Dec or Oct)

  • LIST: List sweep (SweepOrder, # of Values, Values)

  • CON: Constant (Value)

  • SYNC: Synchronous sweep (Ratio, Offset, MasterSweep)

  • LSYNC: List synchronous (MasterSweep)

input_get_fieldA

Get a specific field value from an Input (e.g. 'Mode', 'Sweep Type', 'Start', 'Stop').

input_set_fieldC

Set a specific field value for an Input.

input_get_fieldsB

Get all configurable field names for an Input.

input_get_modedictC

Get the mode dictionary showing available modes and their required fields.

input_get_sweepdictB

Get the sweep type dictionary showing available sweep types and their required fields.

input_get_dataC

Get Input dataset as dictionary. Supports msb (M/S/B) and imaginary flag.

input_get_dfB

Get Input dataset as DataFrame with optional matrix indexing.

input_set_dataA

Set Input data from a dictionary. String keys such as '("M", "11")' are converted to tuple keys for IC-CAP. Data format: {"('M', '11')": [val1, val2, ...]}.

input_get_lengthA

Get the number of data points in the Input dataset.

input_get_typeA

Get the Input dataset type: 'M' (measured), 'S' (simulated), or 'B' (both).

input_MA

Get measured data from an Input. Convenience method equivalent to get_data(msb='M').

input_SB

Get simulated data from an Input. Convenience method equivalent to get_data(msb='S').

input_BA

Get both measured and simulated data from an Input. Convenience method equivalent to get_data(msb='B').

output_createB

Create and configure an Output object.

Mode (modedict) options:

  • V: Voltage measurement (+Node, -Node, Unit)

  • I: Current measurement (ToNode, FromNode, Unit)

  • C: Capacitance measurement (HighNode, LowNode, Unit)

  • G: Conductance measurement

  • S: S-parameters (Port1, Port2, ACGround, Unit)

  • H: H-parameters

  • Z: Z-parameters

  • Y: Y-parameters

  • M: Multi-port S-parameters (PortType, NumPorts, ACGround, Unit)

Type: M=measured, S=simulated, B=both

output_get_fieldA

Get a specific field value from an Output (e.g. 'Mode', 'Unit'). Only works on Output objects, NOT Plot objects.

output_set_fieldC

Set a specific field value for an Output.

output_get_fieldsA

Get all configurable field names for an Output. Only works on Output objects, NOT Plot objects.

output_get_modedictC

Get the mode dictionary for an Output.

output_get_dataC

Get Output dataset as dictionary.

output_get_dfC

Get Output dataset as DataFrame with optional matrix indexing.

output_get_lengthB

Get the number of data points in the Output dataset.

mvar_createA

Create a Model variable (MVar). Common uses: SIMULATOR, PARAMETER_PRECISION, WORKING_PRECISION.

mvar_getC

Get a Model variable value.

mvar_setB

Set a Model variable value. Pass scalar values as strings and arrays as JSON array strings such as '["a","b","c"]'.

dvar_createB

Create a DUT variable (DVar). Common uses: DUT-level overrides of SIMULATOR, etc.

dvar_getC

Get a DUT variable value.

dvar_setB

Set a DUT variable value. Pass scalar values as strings and arrays as JSON array strings such as '["a","b"]'.

svar_createA

Create a Setup variable (SVar). Common uses: X_LOW, X_HIGH, sweep range parameters for optimizers.

svar_getB

Get a Setup variable value.

svar_setA

Set a Setup variable value. Pass scalar values as strings and arrays as JSON array strings such as '["a","b"]'.

ivar_createA

Create a system variable (IVar) at Main level. var_name is the variable name only (no path prefix).

ivar_getB

Get a system variable (IVar) value at Main level.

ivar_setA

Set a system variable (IVar) at Main level. Pass scalar values as strings and arrays as JSON array strings such as '["a","b"]'.

var_get_table_sizeA

Get the size of an ICCAP_ARRAY type variable. Only works on variables whose value is an ICCAP_ARRAY (set via mvar_set with a JSON array like '["a","b"]'). Returns null for scalar string values.

mpar_getA

Get a Model parameter value. MPar objects are defined by the circuit netlist and cannot be created or deleted.

minvalmax options:

  • Value: Current parameter value (default)

  • Min/Max: Parameter range bounds

  • Opt Min/Opt Max: Optimization range bounds

mpar_setA

Set a Model parameter value. Use minvalmax to set bounds (Min, Max, Opt Min, Opt Max) instead of the current value.

mpar_existsA

Check if a Model parameter exists. Useful for verifying circuit netlist defines the expected parameter.

dpar_getB

Get a DUT parameter value. Supports same minvalmax options as mpar_get.

dpar_setC

Set a DUT parameter value.

dpar_existsA

Check if a DUT parameter exists.

dpar_createA

Create DUT parameters by declaring them in a circuit page: IC-CAP has no direct DPar constructor, so parameters materialize from $dpar(NAME=value) declarations. circuit='model' (default, per IC-CAP docs the declaration appears in every DUT's parameter set) or circuit='dut' (DUT Test Circuit only). Prior declarations of the same name are replaced; after writing, each parameter is verified to exist and initialized to its value. Requires the DUT to exist; verify results with dpar_exists/dpar_get.

mpar_set_boundsA

Batch-set parameter boundaries (Min, Max, Opt Min, Opt Max) for multiple MPar parameters in one call. Only works for MPar, not DPar.

transform_createA

Create a Transform and optionally set its Function type and Program content in one call.

ORDERING: Transforms may be created before or after setup_import_mdm — both orders are supported (live-verified 2026-09-02). Engineer PEL programs conventionally start with an UPDATE_AUTO line, which makes the transform auto-execute on creation; with data already imported, that execution runs against real data.

TRANSFORM TYPES AND THEIR SYNTAX REQUIREMENTS:

  1. PythonLocal - Python script. Use transform_type='PythonLocal', program=''. Example: transform_create(transform_type='PythonLocal', program='print("hello")')

  2. PEL/Program - IC-CAP PEL script. Use transform_type='PEL', program=''. WARNING: PEL uses return statement to output data. Direct assignment like beta = ic/ib causes parse error "Direct assignment to the data set beta is not allowed. Use the RETURN statement." Correct: return ic/ib. WRONG: beta = ic/ib. Example: transform_create(transform_type='PEL', program='return ic/ib')

  3. Equation - Simple mathematical expression. Use transform_type='Equation' (or check funcdict for available types). Equations are evaluated directly; no return statement is needed. Note: IC-CAP requires lowercase 'equation' as function type; the handler auto-maps 'Equation' to 'equation'. Equation content is stored in the 'Input' field (NOT 'Program'); the handler handles this automatically. Example: transform_create(transform_type='Equation', program='ic/ib')

  4. Built-in - IC-CAP built-in extraction functions (e.g. BJTDC_is_nf, BJTDC_fwd_gummel, PNCAPsimu, RBBcalc). Use transform_type=''. Function is set automatically. Built-in transforms require table fields to be filled (data references to other setups/transforms). Inspect the transform's table fields with tablevar_get and consult the installed IC-CAP documentation for required fields. Example: transform_create(transform_type='BJTDC_is_nf') Then fill table fields: tablevar_set('/path/to/transform/Forward VC', 'fearly/vc')

  5. Optimize - Optimization transform. Use transform_type='Optimize'. Configure it with optimizer_setup or with transform_set_optim_field for individual fields. Example: transform_create(transform_type='Optimize') Then: optimizer_setup(transform_path='/path/to/optimize', ...)

Malformed transform types, programs, or fields can leave IC-CAP unresponsive. Always verify the created transform with transform_get_function.

Creating a Transform onto a name a Plot already uses creates a name conflict: the result then carries a warning (the Transform is never auto-renamed), and Plot-side field access afterwards requires object_type='Plot'. Prefer distinct names for new objects.

Consult the IC-CAP documentation installed with your licensed software for model- and version-specific transform fields.

transform_executeA

Execute/Run a Transform. CRITICAL SAFETY CHECKS before executing:

  1. Verify the Transform exists (use transform_get_function or setup_get_transforms)

  2. Verify the Function type is correct (use transform_get_function)

  3. Verify Program content is non-empty for PEL/PythonLocal types (use tablevar_get on transform_path+'/Program')

  4. For built-in transforms, verify all required table fields are filled

An invalid function type, malformed PEL program, or missing table field can leave IC-CAP unresponsive and require a restart.

transform_get_functionA

Get the Transform's Function type (e.g. 'PythonLocal', 'PEL', 'Optimize'). This reads the 'Function' child field.

transform_set_functionA

Set the Transform's Function type (e.g. change from 'PythonLocal' to 'PEL'). This writes to the 'Function' child field. Note: For Optimize type, use transform_create with transform_type='Optimize' instead.

transform_get_funcdictA

Get the dictionary of available Transform function types (funcdict). Returns list of function type names that this Transform can be set to.

transform_get_fieldsA

List the table fields readable on a Transform for its current Function type. Ownership: '' (empty, grouping node) owns no fields; 'equation' -> Input; 'derivative' -> Input, Output; 'Optimize' -> Algorithm/Error plus Target/Simulated/X Min/X Max/Name/Min/Max rows (actual row counts probed read-only) and algorithm-filtered option fields; program types -> Program. 'Function' itself is always readable. Use before tablevar_get/tablevar_set to introspect instead of triggering ICCAP_FIELD_NOT_APPLICABLE.

transform_get_dataB

Get a Transform dataset as a dictionary. Returns measured (M), simulated (S), or both (B) data. Set imag=true to include imaginary components.

transform_get_dfA

Get a Transform dataset as a DataFrame. Supports matrix indexing with m and n. Set imag=true to include imaginary components.

transform_get_lengthA

Get the number of data points in the Transform's dataset. Returns 0 for an empty dataset.

transform_allocateB

Allocate data space for a Transform with specified size. Used to pre-allocate dataset before filling with data. Default creates both measured and simulated (B) data with dimension 1.

transform_set_optim_fieldA

Set an Optimize Transform's table field value via STFV.

Configure IC-CAP optimizer Inputs, Parameters, and Options tables programmatically. Option field names are validated against the current algorithm; invalid names return success=false with an explanation.

Common fields:

  • Function: Set to "Optimize" to enable the optimizer

  • Algorithm: Optimization algorithm (full names or PEL short codes, auto-mapped). Unknown values are rejected before reaching IC-CAP (the native SetAlgorithm accepts anything without checking). On success the response carries current_value with current_value_source='this write': IC-CAP provides no way to read the algorithm back, so your own write is the authoritative record.

    • Full names: "Levenberg-Marquardt", "Random", "Hybrid", "Gradient", "Quasi-Newton", "Minimax", "Genetic", "Least Pth"

    • Short codes: "L", "R", "H", "B", "G", "N", "Q", "I"

  • Error: Error type (full names or PEL short codes, auto-mapped). Same write-only caveat as Algorithm.

    • Full names: "Relative", "Absolute" Short codes: "R", "A"

  • Inputs table (0-indexed rows):

    • "Target[i]": Target measured data, e.g. "ia.m"

    • "Simulated[i]": Simulated data, e.g. "ia.s"

    • "X Min[i]", "X Max[i]": X-axis range limits

  • Parameters table (0-indexed rows):

    • "Name[i]": Parameter name, e.g. "MAIN.IS"

    • "Min[i]": Parameter minimum bound

    • "Max[i]": Parameter maximum bound

  • Options table (algorithm-specific!):

    • Random (R): RMS error, Rand Iters, Rand Std Dev, Rand Reward, Rand Penalty, Rand Seed, Comb Filter

    • LM (L): RMS error, Max error, Max Evals, Param Tol, Function Tol, Comb Filter, Param Delta

    • Hybrid (H): RMS error, Max error, Rand Iters, Comb Filter, Param Tol, Function Tol, Param Delta

    • Minimax (N): RMS error, Max error, Max Evals, Param Tol, Function Tol, Max Iters, Comb Filter

    • All algorithms also support: X/Y Lower/Upper Bound

    • NOTE: Random uses 'Rand Iters' (NOT 'Max Iters'), LM uses 'Max Evals' (NOT 'Max Iters')

transform_get_optim_fieldA

Read an Optimize Transform's table field value. Counterpart to transform_set_optim_field.

'Algorithm' and 'Error' are write-only in the IC-CAP API: the table fields do not exist and GTFV rejects them, so this tool returns readable=false with an explanation instead of an error. Track the value you set via transform_set_optim_field (its response echoes current_value); to inspect a transform configured elsewhere, open its GUI. Indexed fields (Target[0], Name[0], etc.) and options read reliably.

optimizer_setupA

Configure an Optimize Transform in a single call. Replaces multiple transform_set_optim_field calls.

Sets Algorithm, Error type, Inputs table (Target/Simulated/X range), Parameters table (Name/Min/Max), and Options all at once. The Transform must already exist with Function='Optimize' (use transform_create with transform_type='Optimize' first).

CRITICAL: ALL optimizer parameters MUST have both min AND max bounds specified. Unbounded parameters cause optimization failures (e.g. IS/N compensation). The server serializes all IC-CAP API calls, so parallel calls are automatically queued. If any field fails to set, the call stops and reports which field failed.

Options are validated against the selected algorithm. Common options per algorithm:

  • Random (R): RMS error, Rand Iters (NOT Max Iters!), Rand Std Dev, Rand Reward, Rand Penalty, Rand Seed, Comb Filter

  • LM (L): RMS error, Max error, Max Evals, Param Tol, Function Tol, Comb Filter, Param Delta

  • Hybrid (H): RMS error, Max error, Rand Iters, Comb Filter, Param Tol, Function Tol, Param Delta

  • Minimax (N): RMS error, Max error, Max Evals, Param Tol, Function Tol, Max Iters, Comb Filter

  • All algorithms also support: X/Y Lower/Upper Bound

plot_setupA

Create and fully configure a Plot in one call, never creating a name conflict. Supports all IC-CAP report types: XY GRAPH, SMITH PLOT, POLAR PLOT, RI GRAPH, SCATTER PLOT, HISTOGRAM, CDF PLOT, MULTI PLOT. Field mapping is live-verified per type: XY GRAPH traces go to 'Y Data 0..7' + '# of Traces'; SMITH/POLAR/RI use 'Sweep Data' + 'Smith/Polar/RI Data 0..7'; SCATTER PLOT takes a single 'Y Data' (only y_data[0] is used); HISTOGRAM/CDF PLOT take a single 'Data-set' (pass data_set, or y_data[0]); MULTI PLOT takes sub-plot names in y_data -> 'Plot 0..N' + '# of Plots' (set 'Orientation' afterwards via tablevar_set). Conflict guard: when a Transform/Input/Output already uses the requested name, the Plot is auto-suffixed '_plot' ('_plot2', ... on collision) and the response reports name_adjusted/final_name. Reconfiguring an existing conflicted Plot (overwrite=true) writes fields through a rename-aside transaction.

plot_get_fieldsA

Return a Plot's complete field configuration in one call, without repeated tablevar_get round-trips or missed fields. Field names are enumerated from the live object, so the set always matches the Report Type — XY GRAPH: Report Type, Header, Footer, X Data, Curve Data, # of Traces, X/Y/Y2 Axis Type, Y2 Data, Y Data 0..7; SMITH PLOT: Sweep Data + Smith Data 0..7; POLAR PLOT: Sweep Data + Polar Data 0..7; RI GRAPH: Sweep Data + RI Data 0..7; SCATTER PLOT: single X Data + Y Data + axis types; HISTOGRAM / CDF PLOT: Data-set; MULTI PLOT: # of Plots, # of GUIs, Orientation, Plots Per Row, Plot 0..N. When any non-Plot object (Transform, Input, or Output — e.g. an output current named 'id' with a plot also named 'id') shares the Plot's name, the read runs inside an automatic rename-aside transaction (annotated conflict=true, resolved_as='Plot', via='rename_txn') and the original name is restored afterwards. In/Out Graphically are GUI runtime state, not table fields, and are not accessible via the API.

plot_displayA

Display a Plot in the IC-CAP GUI. Use run_async=true for a broker-managed job; direct gateway execution remains on the UI thread.

plot_capture_windowA

Capture an IC-CAP Plot window by name and save it to a local file for visual inspection.

plot_show_absolute_errorC

Show absolute error (MAX/RMS) on Plot window. Equivalent to ShowAbsoluteError in IC-CAP GUI.

plot_show_relative_errorB

Show relative error (MAX/RMS) on Plot window. Equivalent to ShowRelativeError in IC-CAP GUI.

macro_createC

Create a Macro object. Optionally set its text content.

macro_executeC

Execute/Run a Macro. Use run_async=true for a managed observable job.

macro_get_textC

Get the text content of a Macro.

macro_set_textC

Set the text content of a Macro.

main_get_modelsA

List all Model names in the current IC-CAP session.

main_get_ivarsA

List all system variables (IVar) with their names and values.

main_get_childB

Get a child object from Main by name. Optionally filter by type (Model, IVar).

main_get_valofA

Get a variable or parameter value visible from Main (searches hierarchy: variables, parameters, tablevars, datasets).

main_saveA

Save an IC-CAP object to disk. For Save As, arg is the destination filename: a bare name is written into the MCP workspace, an absolute path must satisfy the workspace path policy (see ICCAP_MCP_ALLOW_EXTERNAL_FILES); .mdl is appended when missing. The result is verified against the file system and reports file_exists/file_size - success means the file is actually on disk. Use locator='/' for the full project or a model path for one model.

project_openA

Open a .mdl project file into the named model slot (IC-CAP's Open action reads the file over the target, destroying its previous contents). When the target model exists, a Save-As-No-Data checkpoint of its current contents is taken first and returned in the response. The file must exist and satisfy the workspace path policy (set ICCAP_MCP_ALLOW_EXTERNAL_FILES=1 to open from anywhere). Use this to restore a project after an IC-CAP restart.

model_export_structureA

Export a model's full structure to one JSON file in a single call: per DUT the DPAR values; per setup the inputs, outputs, setup variables, and every transform in order (PEL/Python program text, equation expressions, derivative sources with X/Y Data and Order, complete optimizer configuration with targets, parameter tables, and options). Replaces thousands of per-field tablevar_get calls for knowledge capture and build verification. file_path follows the workspace path policy (see ICCAP_MCP_WORKSPACE).

tablevar_getA

Get a table field value. Works on any IC-CAP object that has table fields: Transform ('transform_path/Program' for PEL content), Plot ('plot_path/Report Type', 'plot_path/X Data', 'plot_path/Y Data N'), etc. Use tablevar_exists first to verify the field exists. When a path has both a Transform and a Plot with the same name, reads default to the Transform and the result is annotated with conflict=true / resolved_as='Transform' (all common table fields are Transform-exclusive); pass object_type='Plot' to read the Plot side — when any non-Plot object (Transform, Input, or Output) shares the Plot's name, the read runs inside an automatic rename-aside transaction (conflict=true, resolved_as='Plot', via='rename_txn') that restores the original name afterwards. Reading a field the object does not own (e.g. Program on an empty-Function grouping transform, 'Plot 0' on an XY GRAPH) returns ICCAP_FIELD_NOT_APPLICABLE instead of touching the C API; use transform_get_fields / plot_get_fields to introspect first.

tablevar_setA

Set an existing table field; this tool cannot create fields. Use tablevar_exists first. On Transform/Plot name-conflict paths, writes default to the Transform (result annotated with conflict=true); pass object_type='Plot' to write the Plot side — on conflict paths this runs inside an automatic rename-aside transaction (necessary because a direct write on a conflict path silently targets the non-Plot object and reports success). Plot writes are validated against the plot's actual field set first: writing a field the current Report Type does not own (e.g. 'Plot 0' on an XY GRAPH, which STFV would accept while writing nothing) returns ICCAP_FIELD_NOT_APPLICABLE listing the available fields — never a false success. Transform-side writes are validated the same way against the Function type.

tablevar_existsA

Check if a table field exists. Returns boolean. Use before tablevar_get/set to avoid errors on non-existent fields. On name-conflict paths (Plot sharing its name with a Transform/Input/Output) the untyped probe reflects the non-Plot side; pass object_type='Plot' to probe the Plot side through an automatic rename-aside transaction (annotated conflict=true, resolved_as='Plot').

instrvar_getA

Get an instrument option field value. Path is constructed as input_output_path/field_name.

instrvar_setC

Set an instrument option field value.

instrvar_existsC

Check if an instrument option field exists.

iccap_healthB

Check the selected IC-CAP gateway and report its busy/session state plus feedback capabilities.

iccap_error_dialog_getA

Read Error Message dialogs from the selected IC-CAP process and dismiss them by default so modal UI errors do not leave automation blocked.

iccap_status_getA

Read the current IC-CAP Status window text and parse optimizer progress without modifying the project.

iccap_sessions_listA

List live IC-CAP sessions without exposing authentication tokens.

iccap_session_selectA

Select the IC-CAP session used by subsequent calls in this MCP process.

iccap_job_getB

Get the state, result, error, and latest progress of a managed IC-CAP job.

iccap_job_listA

List recent managed IC-CAP jobs, newest first.

iccap_job_logsB

Read incremental IC-CAP status output for a managed job.

iccap_job_cancelB

Request IC-CAP Stop Activity for a running job; failure is reported explicitly.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
skills/iccap-extraction/SKILL.mdIC-CAP Parameter Extraction Skills
skills/iccap-extraction/bjt-gp-extraction.mdGummel-Poon BJT Parameter Extraction
skills/iccap-extraction/diode-extraction.mdDiode SPICE Model Extraction
skills/iccap-extraction/hemt-extraction.mdASM-HEMT GaN Model Extraction
skills/iccap-extraction/optimization.mdParameter Optimization
skills/iccap-extraction/setup-dut.mdSetup and DUT Preparation
skills/iccap-extraction/validation.mdExtraction Validation
skills/iccap-operation/SKILL.mdIC-CAP Operation Skills
skills/iccap-operation/basics.mdIC-CAP Operating Basics
skills/iccap-operation/data-handling.mdIC-CAP Data Handling
skills/iccap-operation/engineering-completion.mdIC-CAP Engineering Completion
skills/iccap-operation/hierarchy.mdIC-CAP Hierarchy and Object Paths
skills/iccap-operation/safety.mdIC-CAP Project Safety
skills/iccap-operation/tool-usage-guide.mdIC-CAP MCP Tool Usage
skills/iccap-operation/troubleshooting.mdIC-CAP Troubleshooting

TDQS

B3.4/5.0

Scored across 128 tools

Disambiguation5/5

Each tool has a clearly distinct purpose. Even with many similar getters/setters for different object types, the prefixes (mvar, dvar, svar, etc.) disambiguate them. Convenience wrappers like input_M/S/B are explicitly documented as equivalents to input_get_data with different msb flags, avoiding confusion.

Naming Consistency5/5

Naming follows a consistent snake_case verb_noun pattern with object-type prefixes (object_, model_, dut_, setup_, input_, output_, transform_, plot_, macro_, mvar_, etc.). All tools adhere to this convention, with occasional compound names like 'object_get_fullname' and 'iccap_job_cancel' that still fit the pattern.

Tool Count2/5

128 tools is far above the 25+ threshold for 'too many'. While IC-CAP is a complex domain requiring many operations, the sheer number overwhelms the agent's ability to select the right tool efficiently, risking misselection and cognitive overload.

Completeness5/5

The tool surface appears comprehensive for the IC-CAP domain: it covers creation, deletion, renaming, copying, inspection, and execution for all major object types (Model, DUT, Setup, Input, Output, Transform, Plot, Macro, variables, parameters). It also includes simulation, measurement, data import/export, session management, job control, and error handling, leaving no obvious dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues