Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MCP server for IKA hotplate stirrers and overhead stirrers (NAMUR commands).
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
LABMCP_ADDRESS, LABMCP_SIMULATE, LABMCP_READ_ONLY, LABMCP_LIMITSYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"labmcp-ika": {
"command": "uvx",
"args": [
"labmcp-ika"
],
"env": {
"LABMCP_ADDRESS": "your-value",
"LABMCP_SIMULATE": "your-value",
"LABMCP_READ_ONLY": "your-value",
"LABMCP_LIMITS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add labmcp-ika --env LABMCP_ADDRESS=your-value --env LABMCP_SIMULATE=your-value --env LABMCP_READ_ONLY=your-value --env LABMCP_LIMITS=your-value -- uvx labmcp-ikaFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"labmcp-ika": {
"command": "uvx",
"args": [
"labmcp-ika"
],
"env": {
"LABMCP_ADDRESS": "your-value",
"LABMCP_SIMULATE": "your-value",
"LABMCP_READ_ONLY": "your-value",
"LABMCP_LIMITS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"labmcp-ika": {
"type": "stdio",
"command": "uvx",
"args": [
"labmcp-ika"
],
"env": {
"LABMCP_ADDRESS": "your-value",
"LABMCP_SIMULATE": "your-value",
"LABMCP_READ_ONLY": "your-value",
"LABMCP_LIMITS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
LABMCP_ADDRESS envLABMCP_SIMULATE envLABMCP_READ_ONLY envLABMCP_LIMITS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026
The registry name was verified with the GitHub account K-Dense-AI, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.1) reached the registry 44 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Plures
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
Human in the loop for AI agents: ask ID verified people to check a decision before acting.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Let an AI agent heat and stir with IKA hotplate stirrers (C-MAG HS control, IKA Plate / RCT digital) and drive IKA overhead stirrers (EUROSTAR control) through IKA's documented NAMUR interface commands: read plate, probe and medium temperatures, speed and torque; set and start heating and stirring; wait for a temperature; and arm the hotplate's hardware watchdog so it switches itself off if the computer stops talking to it.
| Package | labmcp-ika |
| Instruments | Hotplate stirrers: C-MAG HS 7 control, IKA Plate (RCT digital). Overhead stirrers (--option device=overhead): EUROSTAR 60 control, EUROSTAR 100 control. Other IKA devices with the same NAMUR set are likely to work but are unverified |
| Interfaces | RS-232 (9-pin, PC 1.1 cable), USB (virtual COM port) |
| Protocol | IKA NAMUR commands, "Interfaces and outputs" section of the operating instructions: IKA Plate (RCT digital) (11/2018), C-MAG HS 7 control (11/2018), EUROSTAR 60/100 control (20000003965c). Official downloads: ika.com |
| Status | 🧪 simulated: tested against a wire-level NAMUR simulator, not yet verified on hardware. Report a hardware test |
uvx labmcp-ika --simulate --check
uvx labmcp-ika --simulate --option device=overhead --check # EUROSTAR simulator
uvx labmcp ports uvx labmcp-ika --address /dev/ttyACM0 --check # Linux, hotplate
uvx labmcp-ika --address /dev/tty.usbmodem14101 --check # macOS uvx labmcp-ika --address COM5 --check # Windows uvx labmcp-ika --address COM6 --option device=overhead --check # EUROSTAR
`--check` prints the name the device reports (`IN_NAME`).
Claude Code
claude mcp add ika -- uvx labmcp-ika --address /dev/ttyACM0 --limit max_temperature_c=120
Claude Desktop / Cursor / Windsurf (claude_desktop_config.json, .cursor/mcp.json, …)
{
"mcpServers": { "ika": { "command": "uvx", "args": ["labmcp-ika", "--address", "/dev/ttyACM0", "--limit", "max_temperature_c=120"] } } }
Add --read-only to allow monitoring only (the stop tools stay available). For other clients: uvx labmcp config ika-stirrer --address /dev/ttyACM0 --client vscode.
| Tool | Kind | Description |
|---|---|---|
disable_watchdog | 🎛 control | Cancel watchdog mode 2 (OUT_WD2@0) and stop the background refresh. Watchdog mode 1 has no cancel command; this tool reports an error for it. |
enable_watchdog | 🎛 control | Arm the hotplate's communication watchdog (OUT_WD1@m / OUT_WD2@m). The server then re-sends the watchdog command in the background; if the computer, this server or the cable fails, the hotplate switches heating and stirring off (mode 1) or falls back to the given safety values (mode 2) after timeout_s. Note: stopping or reconnecting the server also stops the refresh, so the watchdog trips unless you enable it again. Mode 1 cannot be cancelled over the interface. |
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_status | 👁 read | Read temperatures, stirring speed and setpoints. On hotplates: plate and external-probe temperature, temperature setpoint and the device's safety-circuit temperature. On overhead stirrers: PT1000 probe temperature, torque and the speed/torque limits set on the device. |
reconnect | 🛑 safety | Close and re-open the connection to the instrument (e.g. after it was power cycled or a cable was re-plugged). |
set_speed | ⚠️ hazard | Set the stirring speed setpoint (OUT_SP_4). Does not start the motor; if it is already running, the speed changes immediately. Refused above max_speed_rpm (and, on overhead stirrers, above the speed limit set on the device). |
set_temperature | ⚠️ hazard | Set the hotplate temperature setpoint (OUT_SP_1). With an external probe connected this is the target temperature of the medium. Does not start heating; if heating is already on, the plate starts moving to the new setpoint immediately. Refused above max_temperature_c or above the device's own safety-circuit temperature. |
start_heating | ⚠️ hazard | Switch the hotplate heater on (START_1). It heats towards the current setpoint, which is checked against max_temperature_c first. Make sure the vessel and its contents can take the setpoint temperature and that nothing flammable is near the plate. |
start_stirring | ⚠️ hazard | Start the stirring motor (START_4) at the current speed setpoint, which is checked against max_speed_rpm first. Make sure the stir bar or impeller is in place and the vessel is secured (a decoupled stir bar or an unclamped vessel can splash). |
stop_all | 🛑 safety | Emergency stop: switch the heater off (hotplates) and stop the motor. Every stop command is sent even if one of them fails. Also ends a running wait_for_temperature. |
stop_heating | 🛑 safety | Switch the hotplate heater off (STOP_1). Stirring continues. The plate stays hot for a long time after switching off. |
stop_stirring | 🛑 safety | Stop the stirring motor (STOP_4). Heating (if on) continues. |
wait_for_temperature | 👁 read | Poll a temperature until it is within tolerance_c of the target for stable_for_s seconds, or until timeout_s passes. Does not change anything on the device (start heating first). Returns whether the target was reached plus a short temperature trace. A stop command ends the wait early. |
| Limit | Default | Meaning |
|---|---|---|
max_temperature_c | 150 °C | Highest hotplate setpoint an agent may set (also checked before start_heating, and for the watchdog fallback temperature) |
max_speed_rpm | 1000 rpm | Highest stirring speed an agent may set (also checked before start_stirring) |
max_wait_s | 3600 s | Longest wait_for_temperature |
Override at launch, e.g. --limit max_temperature_c=250 --limit max_speed_rpm=1500. On top of these, the hotplate refuses setpoints above its own safety-circuit temperature (set with the screwdriver dial on the device, read with IN_SP_3), and overhead stirrers refuse speeds above the speed limit set in the device menu (IN_SP_6); the server checks both before sending.
--option device=hotplate. Overhead stirrers need --option device=overhead; they have no heater, report their PT1000 probe on IN_PV_3 and torque on IN_PV_5. Tools that don't apply to the configured type return a clear error and send nothing.get_status reports the last start/stop *this server* sent (heating_commanded, stirring_commanded) and None when unknown. The front-panel buttons can change it without the server knowing.set_temperature / set_speed (IN_SP_1 / IN_SP_4), and a warning is returned if the device reports a different value.OUT_WD1@m / OUT_WD2@m, 20–1500 s): enable_watchdog arms it and the server re-sends the command in the background every quarter of the watchdog time. If the server or the computer dies or the cable is pulled, the hotplate switches heating and stirring off (mode 1) or falls back to the safety temperature and speed (mode 2). Stopping or reconnecting the server also stops the refresh, so the watchdog trips. Mode 1 has no documented cancel command; mode 2 is cancelled with OUT_WD2@0. The manual's watchdog error codes differ between sections (ER 2 vs Err. 1/Err. 2); a trip is visible on the display, not over the interface.25.3 2), so both forms work. The value reported by IN_PV_1 when no external probe is plugged in is not documented; ignore external_temperature_c if you have no probe.0x20 0x0D 0x0A.SET_MODE_n (changes the power-on operating mode A/B/D, a persistent setting) and RESET; overhead-stirrer torque/speed-limit writes (OUT_SP_5/6/8) and direction change (OUT_MODE_n).| Model | Firmware | Interface | Verified by | Date |
|---|---|---|---|---|
| *none yet: be the first* |