FieldCure.Mcp.ZStudio
0.16.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.16.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.16.0
dotnet new tool-manifest
dotnet tool install --local FieldCure.Mcp.ZStudio --version 0.16.0
#tool dotnet:?package=FieldCure.Mcp.ZStudio&version=0.16.0
nuke :add-package FieldCure.Mcp.ZStudio --version 0.16.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: zstudio@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.16.0 | 109 | 7/10/2026 |
| 0.15.0 | 106 | 7/10/2026 |
| 0.14.0 | 102 | 7/5/2026 |
| 0.13.0 | 101 | 7/2/2026 |
| 0.12.0 | 115 | 7/1/2026 |
| 0.11.0 | 116 | 6/27/2026 |
| 0.10.0 | 113 | 6/26/2026 |
| 0.9.0 | 107 | 6/26/2026 |
| 0.8.1 | 103 | 6/25/2026 |
| 0.8.0 | 106 | 6/24/2026 |
| 0.7.0 | 109 | 6/22/2026 |
| 0.6.0 | 109 | 6/21/2026 |
| 0.5.0 | 104 | 6/21/2026 |
| 0.4.0 | 176 | 6/19/2026 |
| 0.3.1 | 127 | 6/18/2026 |
| 0.3.0 | 112 | 6/17/2026 |
| 0.2.0 | 108 | 6/12/2026 |
| 0.1.1 | 114 | 6/9/2026 |
| 0.1.0 | 112 | 6/8/2026 |
v0.16.0 — Stable Rs on series-inductance-dominated (pouch-class) cells (shared ZStudio engine); no new tools (44), no schema or description changes — no reconnect needed, results just change on the affected cells. On cells whose high frequencies are dominated by the series (cable) inductance, the Löwner rational model's constant term collapses below numerical resolution, and the reported Rs used to flip between 0 and a fabricated 0.4–0.8 mΩ depending on floating-point luck — the same physical cell measured over an SOC series came back with wildly mixed Rs. The estimator now extrapolates the inductance-removed top frequency decade to its asymptote (Rs + one arc — the practitioner's Bode-extrapolation convention) and reports that value; the legacy pole fallbacks stay suppressed. On the reported pouch SOC series this yields a consistent 0.46–0.54 mΩ with Ls stable at ~47 nH, and a verification cell with a known seeded Rs is recovered to 0.1%. Affects the Rs reported by estimate_inductance, drt_loewner, and drt_tikhonov with inductance_handling='stray' or 'gdrt' (all share the estimator); prismatic/module/pack results are unchanged.