Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
MCP server for PalmSens potentiostats running MethodSCRIPT (EmStat Pico, EmStat4, Sensit, Nexus).
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
LABMCP_ADDRESS, LABMCP_SIMULATE, LABMCP_READ_ONLY, LABMCP_LIMITSDu brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"labmcp-palmsens": {
"command": "uvx",
"args": [
"labmcp-palmsens"
],
"env": {
"LABMCP_ADDRESS": "your-value",
"LABMCP_SIMULATE": "your-value",
"LABMCP_READ_ONLY": "your-value",
"LABMCP_LIMITS": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add labmcp-palmsens --env LABMCP_ADDRESS=your-value --env LABMCP_SIMULATE=your-value --env LABMCP_READ_ONLY=your-value --env LABMCP_LIMITS=your-value -- uvx labmcp-palmsensTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"labmcp-palmsens": {
"command": "uvx",
"args": [
"labmcp-palmsens"
],
"env": {
"LABMCP_ADDRESS": "your-value",
"LABMCP_SIMULATE": "your-value",
"LABMCP_READ_ONLY": "your-value",
"LABMCP_LIMITS": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"labmcp-palmsens": {
"type": "stdio",
"command": "uvx",
"args": [
"labmcp-palmsens"
],
"env": {
"LABMCP_ADDRESS": "your-value",
"LABMCP_SIMULATE": "your-value",
"LABMCP_READ_ONLY": "your-value",
"LABMCP_LIMITS": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
LABMCP_ADDRESS envLABMCP_SIMULATE envLABMCP_READ_ONLY envLABMCP_LIMITS envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 9. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto K-Dense-AI bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.3) kam vor 43 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, bot2bot
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Let your AI assistant message the bots of family and friends.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Let an AI agent run cyclic voltammetry, linear sweep voltammetry, differential pulse voltammetry and chronoamperometry on PalmSens potentiostats that speak MethodSCRIPT, and get back downsampled data, peak summaries and optional full-resolution CSV files.
| Package | labmcp-palmsens |
| Instruments | EmStat Pico (module and development board), EmStat4 LR/HR (EmStat4S, EmStat4M, EmStat4X), Sensit Wearable / Sensit BT, Nexus |
| Interfaces | USB (virtual COM port), UART |
| Protocol | MethodSCRIPT v1.x (MethodSCRIPT manual v1.8) over the PalmSens online communication protocol (EmStat Pico v1.6, EmStat4 v1.3); cross-checked against PalmSens/MethodSCRIPT_Examples |
| Status | 🧪 simulated: tested against a wire-level simulator, not yet verified on hardware. Report a hardware test |
uvx labmcp-palmsens --simulate --check
The simulator is an EmStat Pico with a 3 mm disk electrode in 1 mM of a reversible one-electron redox couple (E° = +0.20 V, like ferro/ferricyanide vs Ag/AgCl). It interprets the scripts the server sends and streams correctly encoded data packages, so you get a proper CV "duck", DPV peaks and Cottrell decays. Simulated time runs 10× faster than real time; change that with --option sim_speed=1 (real time) or =100.
uvx labmcp ports. An EmStat Pico development board or Sensit shows up as a USB serial port (FTDI). An EmStat4 or Nexus shows up as a virtual COM port named after the device. uvx labmcp-palmsens --address /dev/ttyUSB0 --check # EmStat Pico / Sensit (Linux)
uvx labmcp-palmsens --address /dev/tty.usbmodemXXXX --check # EmStat4 (macOS) uvx labmcp-palmsens --address COM7 --check # Windows
Defaults are the EmStat Pico's: **230400 baud, 8N1, XON/XOFF**, LF line endings. Over USB the EmStat4 and Nexus ignore the baud rate. For an EmStat4 **UART** connection use `serial://COM7?baudrate=921600&rtscts=true&xonxoff=false`.
--check sends the firmware-version (t) and serial-number (i) commands and prints the model, firmware and serial.Claude Code
claude mcp add potentiostat -- uvx labmcp-palmsens --address /dev/ttyUSB0
Claude Desktop / Cursor / Windsurf (claude_desktop_config.json, .cursor/mcp.json, …)
{
"mcpServers": { "potentiostat": { "command": "uvx", "args": ["labmcp-palmsens", "--address", "/dev/ttyUSB0"] } } }
Add --read-only to allow device information only: every measurement tool applies potential and is hidden.
| Tool | Kind | Description |
|---|---|---|
abort_measurement | 🛑 safety | Abort the running measurement or script immediately (communication command Z) and make sure the cell is switched off. Safe to call when nothing is running. |
get_command_log | 👁 read | Return the most recent raw commands sent to / replies received from the instrument (newest last). Useful for debugging and for recording what was done. |
get_connection_info | 👁 read | Report which instrument is connected (identity, address, simulated or real), whether the server is read-only, and the active safety limits. Call this first. |
get_device_info | 👁 read | Identify the potentiostat (model, firmware, serial number) and list its potential window, PGStat modes and current ranges, so measurement parameters can be chosen within them. |
reconnect | 🛑 safety | Close and re-open the connection to the instrument (e.g. after it was power cycled or a cable was re-plugged). |
run_chronoamperometry | ⚠️ hazard | Hold the cell at potential_v for run_time_s and record the current every interval_s. Returns the data (time from the instrument timer) plus first/last/mean current and the charge. Applies potential to the cell. |
run_cyclic_voltammetry | ⚠️ hazard | Run a cyclic voltammogram: begin -> vertex 1 -> vertex 2 -> begin, n_scans times, and return potential/current/time data with the anodic and cathodic peaks of every scan. Applies potential to the cell for the whole scan; the cell is switched off at the end. |
run_differential_pulse_voltammetry | ⚠️ hazard | Run differential pulse voltammetry (current = forward - reverse, per step) from begin to end potential and return the data with the peak current and peak potential. The scan rate must be below step / pulse_time / 2. Applies potential to the cell. |
run_linear_sweep_voltammetry | ⚠️ hazard | Run a linear sweep voltammogram from begin_potential_v to end_potential_v and return the data with the largest/smallest current and where they occur. Applies potential to the cell. |
run_methodscript | ⚠️ hazard | Advanced: run a raw MethodSCRIPT and return its raw output and decoded data packages. Literal potentials of set_e / set_range_minmax da and the CV, LSV, DPV, SWV, NPV, ACV, CA, PAD, EIS and fast CV/CA techniques are checked against max_potential_v, and literal set_range ba / set_autoranging ba currents against max_current_range_a; values computed at run time are not. Aborted after timeout_s; add on_finished: + cell_off to your script so the cell is switched off after an abort. After a runtime error, a timeout or abort_measurement the server switches the cell off itself. |
| Limit | Default | Meaning |
|---|---|---|
max_potential_v | 2.0 V | Largest absolute potential vs RE any technique (or literal in a raw script) may apply, including DPV pulses |
max_current_range_a | 0.01 A | Highest current range an agent may select (with autorange, the instrument never goes above current_range_a); in raw scripts, literal set_range ba / set_autoranging ba values |
max_duration_s | 600 s | Longest measurement (including equilibration) or raw-script timeout |
Override at launch, e.g. --limit max_potential_v=1.0 --limit max_duration_s=1800. Whatever the limits say, a single tool call is capped at one hour.
set_pgstat_chan 0, set_pgstat_mode, set_max_bandwidth, set_range_minmax da, set_range ba, set_autoranging ba, set_e, cell_on, optional wait, then meas_loop_cv / lsv / dpv / ca with pck_add of the set potential and current, and on_finished: cell_off. So the cell is switched off after completion and after an abort. A runtime error skips on_finished: (MethodSCRIPT manual §10.1), so after one the server sends a separate cell_off script. The exact script is in get_command_log.time_s comes from the instrument timer for chronoamperometry and from step/scan rate for sweeps.run_methodscript checks literal potentials (and store_var literals) of set_e, set_range_minmax da and the CV/LSV/DPV/SWV/NPV/ACV/CA/PAD/EIS loops and meas_fast_cv/meas_fast_ca against max_potential_v (DPV pulse and 2x SWV amplitude included). Literal current ranges of set_range ba / set_autoranging ba are checked against max_current_range_a. Values computed inside the script are not checked. The script is aborted at timeout_s and a cell_off script is run.abort_measurement sends the communication-protocol Z command. A running technique returns the data measured so far with aborted: true. Afterwards (and when nothing was running) the server runs a one-line cell_off script, so the cell is also switched off after a raw script without on_finished:. If the output of a running script cannot be read (e.g. a USB glitch), the server aborts the script and switches the cell off before reporting the error; a single corrupted data line is skipped with a warning instead.save_path must end in .csv; missing folders are created and an existing file is never overwritten (choose a new name). The path is checked before the measurement starts. Points with a nan value are left out (with a warning).run_methodscript for single-channel scripts beyond the built-in techniques.| Model | Firmware | Interface | Verified by | Date |
|---|---|---|---|---|
| *none yet: be the first* |