FieldCure.Mcp.ZStudio
0.14.0
{ "inputs": [ { "type": "promptString", "id": "zstudio_license_key", "description": "ZStudio license key carrying the zstudio-ai (MCP) entitlement. Omit to use the fingerprint-bound server-issued trial.", "password": true }, { "type": "promptString", "id": "zstudio_workdir", "description": "Default folder for reading and writing .zstudy files when a tool is called without an explicit path. Defaults to a 'ZStudio' folder under your Documents. Paste a full folder path, e.g. C:\\Workspace", "password": false }, { "type": "promptString", "id": "zstudio_autosave", "description": "Auto-save each affected study to its .zstudy after every successful mutating tool call. On by default — leave empty. Set to 'off' to explore a study without modifying the file on disk (there is no undo once a change is saved); you must then call save_study explicitly to persist.", "password": false } ], "servers": { "FieldCure.Mcp.ZStudio": { "type": "stdio", "command": "dnx", "args": ["FieldCure.Mcp.ZStudio@0.14.0", "--yes"], "env": { "ZSTUDIO_LICENSE_KEY": "${input:zstudio_license_key}", "ZSTUDIO_WORKDIR": "${input:zstudio_workdir}", "ZSTUDIO_AUTOSAVE": "${input:zstudio_autosave}" } } } }
.vscode/mcp.json settings file.
dotnet tool install --global FieldCure.Mcp.ZStudio --version 0.14.0
dotnet new tool-manifest
dotnet tool install --local FieldCure.Mcp.ZStudio --version 0.14.0
#tool dotnet:?package=FieldCure.Mcp.ZStudio&version=0.14.0
nuke :add-package FieldCure.Mcp.ZStudio --version 0.14.0
ZStudio MCP Server
An MCP (Model Context Protocol) server that exposes the ZStudio electrochemical
impedance spectroscopy (EIS) analysis engine to AI assistants. Import multi-vendor
EIS measurement files, build and organize .zstudy documents, plot them, and run
Z-HIT / Kramers–Kronig / DRT / equivalent-circuit fitting — directly from Claude,
VS Code, and other MCP hosts.
ZStudio MCP ties ZStudio's validation / DRT / fitting engine into a conversational
analysis flow, so you can check data quality faster, compare physically plausible
candidate models, and understand the limits of every result. All numbers are
computed by the verified ZStudio engine (each result carries a provenance stamp)
— the AI only guides the workflow and interprets. Results are saved as .zstudy
and open seamlessly in the ZStudio desktop app.
Developed by FieldCure Co., Ltd.
Requirements
- Windows 10/11 (x64) — this is a Windows-only package. It uses the native Intel MKL (x64) math provider and Windows-based machine licensing; macOS and Linux are not supported.
- .NET SDK 10 or later — the server is launched with
dnx, which runs the NuGet package without installing it globally and requires the SDK (not just the runtime). - An MCP host (Claude Desktop, VS Code, or any stdio MCP client).
Configure your MCP host
Many hosts can add this server automatically from the NuGet MCP registry. To
configure manually, run it from NuGet without installing, via dnx:
{
"mcpServers": {
"zstudio": {
"command": "dnx",
"args": ["FieldCure.Mcp.ZStudio"],
"env": {
"ZSTUDIO_LICENSE_KEY": "<your license key>",
"ZSTUDIO_WORKDIR": "C:\\Users\\<you>\\Documents\\ZStudio"
}
}
}
}
All environment variables are optional:
- Omit
ZSTUDIO_LICENSE_KEYto run on the 15-day trial. - Omit
ZSTUDIO_WORKDIRto default to aZStudiofolder under your Documents (created on first use). This is where studies are read/written when a tool is called without an explicit path. - Omit
ZSTUDIO_AUTOSAVE— auto-save is on by default (no value needed to enable it). Set it tooffonly to explore a study without modifying the file on disk;save_studyis then the explicit way to persist.
(Exact config syntax varies by host — see your MCP host's documentation.)
Environment variables
| Variable | Required | Description |
|---|---|---|
ZSTUDIO_LICENSE_KEY |
No | ZStudio license key carrying the MCP (zstudio-ai) entitlement. If omitted, a 15-day trial is used. |
ZSTUDIO_WORKDIR |
No | Default folder for reading and writing .zstudy files when a tool is called without an explicit path. Defaults to a ZStudio folder under your Documents. |
ZSTUDIO_AUTOSAVE |
No | On by default — leave unset; no value is needed to enable it. Set to off to disable the automatic save of the affected study after each successful mutating tool call (any other value keeps auto-save on). |
Tools
The model works through short id-handles and token-light summaries; raw spectra stay on the server. Charts travel as Plotly specs that chart-capable hosts (Claude Desktop, Cowork, VS Code, …) render inline.
- Session & documents —
create_from_file(import a raw file; optionally opens the study in the same call),open_study,list_studies,list_tree,get_dataset(token-light summary, optional geometricshape),get_dataset_metadata,get_curve(decimated / windowed measured points, column-oriented),get_analysis(read back a dataset's stored ECM / Loewner / K-K / DRT / Z-HIT results — and the options each was produced with — without re-running),save_study,export_study(write the study to a re-analyzable.xlsxworkbook),list_session,close_study,open_in_app(launch the ZStudio desktop app). - Editing —
new_study,import_data,add_folder,rename_item,move_item,remove_item,set_active_dataset,set_dataset_properties,get_study_info,set_study_info. - Data curation (masking) —
set_frequency_exclusions/set_point_exclusions/clear_exclusionsmask measured points (raw spectrum only) without deleting them (reversible; new analyses use only non-excluded points). Stored analyses are snapshots and are not recomputed, so re-run the analysis to apply a new mask.get_curve include_excluded=truesurfaces masked points with per-point indices to curate them. - Plotting —
plot(Nyquist / Bode / admittance; overlay multiple datasets, overlay a stored analysis reconstruction, or a dataset-level residual plot). - Analysis —
zhit(apply=falsetunes options non-destructively),set_analysis_source,kk(Kramers–Kronig; R/C-vs-τ Voigt distribution),drt_tikhonov(continuous γ(τ) with a curve-shape description),drt_loewner(discrete RC/RL poles),estimate_inductance(series/stray diagnostic),export_inductive_free(spectrum with the inductive stray Ls + Rp|Lp + Rx|Lx removed, Rs kept),guess_ecm(data-derived initial values, no fit),evaluate_ecm(χ²/uncertainty at adjusted values, no fit),fit_ecm(with optional circuit schematic;seed_fromcontinues from the stored state). - Batch —
batch_runfans one analysis (kk/drt_tikhonov/guess_ecm/fit_ecm) out across many datasets (or the whole study) in parallel, returning a token-light per-dataset summary. For ECM, omit the circuit to fit each dataset's own stored model, or pass one to apply the same circuit to all. - Circuits (CDC) —
parse_circuit,render_circuit,circuit_reference,simulate_circuit,list_models(built-in model catalog with typical values and recommended frequency windows). - Licensing —
license_status(reports licensed / trial / unlicensed; always callable).
Studies and analysis results auto-save to their .zstudy after each mutating
tool call (disable with ZSTUDIO_AUTOSAVE=off).
Vendor formats auto-detected on import: BioLogic (.mpr/.mpt), Gamry (.DTA),
Scribner/ZView (.z), Ivium, EcoChemie, Elchemea, MinTech, and generic CSV/TSV.
License & support
Commercial software. The MCP tools require a valid ZStudio license that includes the AI (MCP) add-on; a time-limited trial runs when no key is supplied.
- To purchase a license (including the AI/MCP add-on), contact MinTech: support@g-mintech.co.kr
- Developer: FieldCure Co., Ltd. — https://www.fieldcure.com — support@fieldcure.com
© FieldCure Co., Ltd. All rights reserved.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.14.0 | 44 | 7/5/2026 |
| 0.13.0 | 49 | 7/2/2026 |
| 0.12.0 | 64 | 7/1/2026 |
| 0.11.0 | 113 | 6/27/2026 |
| 0.10.0 | 107 | 6/26/2026 |
| 0.9.0 | 100 | 6/26/2026 |
| 0.8.1 | 99 | 6/25/2026 |
| 0.8.0 | 103 | 6/24/2026 |
| 0.7.0 | 105 | 6/22/2026 |
| 0.6.0 | 105 | 6/21/2026 |
| 0.5.0 | 97 | 6/21/2026 |
| 0.4.0 | 174 | 6/19/2026 |
| 0.3.1 | 114 | 6/18/2026 |
| 0.3.0 | 105 | 6/17/2026 |
| 0.2.0 | 104 | 6/12/2026 |
| 0.1.1 | 110 | 6/9/2026 |
| 0.1.0 | 105 | 6/8/2026 |
v0.14.0 — External-change save guard, plus shared-engine Loewner-stray fixes; tool count unchanged (44), but save_study gains a `force` parameter (RECONNECT the MCP server after updating — the tool schema changed). An MCP session holds a full-study snapshot from load time and every mutating tool auto-saves the WHOLE study, so a stale session could silently clobber edits another writer (typically the ZStudio app) had made to the bound .zstudy. StudySession now tracks the bound file's last-write time as of its last load/save and refuses a same-file overwrite when the on-disk timestamp moved (ExternalFileChangeException); saving to a new path never trips the guard, and a successful save refreshes the baseline. A blocked auto-save is surfaced ON the tool result as a "[auto-save blocked] ..." text block (stderr is invisible to the model) so the caller can decide: re-open to take the disk version, or save_study force=true to overwrite. save_study and open_in_app's pre-save now route through the guarded session save (both previously bypassed the save gate). Shared ZStudio engine fixes carried by this build: Loewner spectra are now stored on the raw measured basis (Rs+jωLs added back into the reconstruction, so the app / MCP / Excel exports share one basis with no special-casing), and the two-R|L high-frequency stray fit gained an arc-term rescue — gated on an in-window Z' drop plus a Z' up-turn — that restores the in-band Rp|Lp on low-f_max cells where the old fit degenerated to a spurious series-only stray.