Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Drive IPG CarMaker for Simulink: run test runs, read results, edit vehicle data and parameters.
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.
CM_PROJECT, CM_MODEL, CM_MATLAB_SESSION, CM_POPUP_TIMEOUT, CM_ENABLE, CM_DISABLEYou 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": {
"carmaker": {
"command": "uvx",
"args": [
"carmaker-mcp"
],
"env": {
"CM_PROJECT": "your-value",
"CM_MODEL": "your-value",
"CM_MATLAB_SESSION": "your-value",
"CM_POPUP_TIMEOUT": "your-value",
"CM_ENABLE": "your-value",
"CM_DISABLE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add carmaker --env CM_PROJECT=your-value --env CM_MODEL=your-value --env CM_MATLAB_SESSION=your-value --env CM_POPUP_TIMEOUT=your-value --env CM_ENABLE=your-value --env CM_DISABLE=your-value -- uvx carmaker-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"carmaker": {
"command": "uvx",
"args": [
"carmaker-mcp"
],
"env": {
"CM_PROJECT": "your-value",
"CM_MODEL": "your-value",
"CM_MATLAB_SESSION": "your-value",
"CM_POPUP_TIMEOUT": "your-value",
"CM_ENABLE": "your-value",
"CM_DISABLE": "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": {
"carmaker": {
"type": "stdio",
"command": "uvx",
"args": [
"carmaker-mcp"
],
"env": {
"CM_PROJECT": "your-value",
"CM_MODEL": "your-value",
"CM_MATLAB_SESSION": "your-value",
"CM_POPUP_TIMEOUT": "your-value",
"CM_ENABLE": "your-value",
"CM_DISABLE": "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.
CM_MODEL envCM_MATLAB_SESSION envCM_POPUP_TIMEOUT envCM_ENABLE envCM_DISABLE 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 8, 2026
The registry name was verified with the GitHub account dimitr-io, 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.
You need to fill in: CM_PROJECT
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.3.0) reached the registry 6 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, Happo
Servers in the same category from other makers, sorted by stars.
Reading a card:★ 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.
Review Happo's visual and accessibility diffs: inspect comparisons, accept or reject, report flakes.
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.
https://github.com/user-attachments/assets/6093b1a3-8ef5-43ef-8134-b214d534720f
*Claude Desktop with this server (CarMaker without MATLAB, IPGMovie open) and MathWorks' MATLAB MCP server for the figure. A 68-run sweep of the driver's limits on a Formula Student skid pad; the agent's work is shown 30 times faster.*
The prompt in the video
Open Carmaker (standalone) and run Skidpad tests with the Rhea vehicle (torque vectoring disabled). Run a
parameter sweep for the IPGDriver's lateral acceleration limits and gg exponents to get the best lap time.
Open IPGMovie first so I can see the runs. Evaluate lap time based on the average time between the second
lap on the right and the second lap on the left. Plot out the yaw rate and lateral acceleration of the
best run using MATLAB (MCP).
An MCP server that lets an AI agent drive IPG CarMaker on your computer: start a session, run test runs and parameter studies, read and plot the results, change vehicle, driver and Simulink controller parameters, and undo what it changed.
Unofficial community project, not affiliated with or endorsed by IPG Automotive or MathWorks. You need your
own CarMaker and MATLAB/Simulink licences. This repository contains no IPG or MathWorks code or data.
Status: alpha. Developed and tested on one setup (CarMaker 14.1.1, MATLAB R2024b, Windows 11). docs/verification.md lists what has been checked against real software and what has not.
Things you can ask an agent once the server is connected:
Kp_yaw to 1.5 in the controller model, run the slalom again and compare the yaw rate."Runs go at CarMaker's maximum speed unless you ask for a slower one. Parameter studies run in the background, one run after another, with IPGMovie open if you want to watch. The server also teaches the agent how IPGDriver works (cm_guide): which driver to choose, how its limits and g-g exponents set the lap time, and when a driver adaption is worth its minutes.
It works in two ways, and the agent picks the one that fits the vehicle:
| MATLAB-connected session | Standalone run | |
|---|---|---|
| Use it for | vehicles whose controller is a Simulink model (CarMaker for Simulink) | vehicles with CarMaker's built-in controllers |
| Needs | MATLAB with your model, and the CarMaker GUI (the server can start both) | only CarMaker; no MATLAB, no window (IPGMovie on request) |
Not covered: Linux, TruckMaker and MotorcycleMaker, CarMaker HIL, Test Manager and test series, building roads, traffic or scenarios, Movie NX, result formats other than .erg, and remote machines. The full list is in docs/scope.md, and more worked examples are in docs/examples.md.
1. Check your machine. This finds your CarMaker and MATLAB installs, tells you what does not fit and how to fix it, and prints the uvx arguments for your machine:
uvx carmaker-mcp doctor
2. Register the server. This prints the entry for your client, with those arguments filled in:
uvx carmaker-mcp config --client claude-code # or claude-desktop, vscode, codex, antigravity, cursor
For most clients the entry looks like this:
{
"mcpServers": { "carmaker": { "command": "uvx", "args": ["--python", "3.12", "--with", "matlabengine==24.2.*", "carmaker-mcp"], "env": { "CM_PROJECT": "C:\\CM_Projects\\my-project", "CM_MODEL": "MyModel" } } } }
In Claude Desktop you can instead drag the .mcpb bundle for your MATLAB release from the latest release into Settings > Extensions; uv must be installed. docs/setup.md has the steps for each client and the versions that belong to each MATLAB release.
3. Start a session. Ask the agent, for example "start CarMaker and run the braking test run". It opens MATLAB, your model and the CarMaker GUI as far as they are not open yet, and never closes anything. Standalone runs need neither. If you would rather open MATLAB and CarMaker yourself, run this once per MATLAB session so that the server can attach:
matlab.engine.shareEngine('cm_mcp')
Settings are environment variables in the client entry. These are the ones you are likely to need; docs/setup.md has the rest.
| Variable | Default | Meaning |
|---|---|---|
CM_PROJECT | read from the running CarMaker GUI | CarMaker project folder. The server writes nowhere else. Needed to start a session from scratch |
CM_MODEL | none | Simulink model to open when a session is started |
CM_MATLAB_INIT | none | Your project's own MATLAB setup script, run once when a session is started. Without it the model may not compile |
CM_POPUP_TIMEOUT | not set | Seconds after which CarMaker pop-ups answer themselves with their default choice. Not set: they wait for your click. See Safety |
CM_DISABLE | none | Tool groups to switch off, for a shorter tool list: standalone, study, matlab, movie |
CM_ENABLE | none | Optional tools to switch on: tcl (raw Tcl in the CarMaker GUI), experimental (add and delete Simulink blocks) |
Each tool tells the client whether it is read-only, changes state or is destructive, so that clients can ask for confirmation where it matters. Every tool and parameter is described in docs/tools.md.
For CarMaker for Simulink work it is worth connecting MathWorks' MATLAB MCP Core Server as well: this server handles CarMaker, and that one writes and runs MATLAB code. Let both work on the same MATLAB session, in the release CarMaker uses. What is changed through the MATLAB server is not in this server's change log, and cm_revert_all does not undo it. More in docs/setup.md.
This server can start simulations and edit your project files and the live Simulink model in place. Connect it only to agents you trust.
What protects your work:
cm_revert_all undoes a session.CM_ENABLE.CM_POPUP_TIMEOUT, a question such as "Vehicle not saved. All changes will be lost. OK to continue?" is answered with its default, which discards unsaved changes in the CarMaker GUI.Runs write result and log files into the project's SimOutput folder; a revert does not remove those.
The server collects no telemetry and makes no network connections of its own. It only talks to MATLAB and CarMaker on your machine. Details: docs/safety.md.
Run uvx carmaker-mcp doctor first: it names most setup problems together with their fix.
| Symptom | Cause and fix |
|---|---|
| "No shared MATLAB session" | MATLAB is closed or has not shared its engine. Let the agent start the session, or run matlab.engine.shareEngine('cm_mcp') in MATLAB |
uvx fails while installing matlabengine | The pin must match your MATLAB release, and that MATLAB must be installed. Use the arguments doctor prints |
| "CarMaker ships no cmapi for Python 3.x" | Add --python 3.12 (or another version the message lists) |
| A tool call hangs at load or start | The CarMaker GUI is showing a question. Answer it, or see CM_POPUP_TIMEOUT |
| "too many licenses in use" on a standalone run | Another CarMaker program holds the licence: an open MATLAB with CarMaker for Simulink, or a standalone program the server left open |
| "license has expired" | The licence must be renewed; doctor shows its end date |
The wait tool returns finished: false | Not an error: waits are limited to 50 s per call and are simply repeated |
More: docs/troubleshooting.md. The server's own log is server.log in the state folder.
cmguicmd.cmapi, loaded from your CarMaker install, to start and control a separate CarMaker process..erg files (checked against MATLAB's cmread).Nothing of IPG's or MathWorks' is bundled or redistributed.
Related work: [pycarmaker](https://git
Only the beginning is shown; read the rest in the repo