Known limitations
The honest list. Updated as the beta runs.
Aircraft creation fails with “could not convert string to float” (before 0.9.9)
Symptom. Adding any aircraft fails, on every airframe, with:
could not convert string to float: '.'
Ground vehicles, ships and statics still work. Creating a new mission works. It is only aircraft, and it happens whatever type, coalition or airfield you ask for.
Cause. One livery file on your machine has a malformed number in it. Creating an aircraft makes DCS’s data library read every livery installed, so a single bad file stops all aircraft creation. Ground units never read liveries, which is why they are unaffected. It is not caused by anything in your mission, and reinstalling dcs-mcp will not help.
Find the file. The error does not say which livery is at fault, so this script finds it for you. It only reads files — it changes nothing. Needs Python 3.8 or newer.
Download find-broken-livery.py
Run it with no arguments and it finds both places liveries live by itself — your DCS installation, and Saved Games\DCS\Liveries, where your own downloaded liveries go:
python find-broken-livery.py
If your DCS is installed somewhere unusual, pass the folder. You cannot pass the wrong one — the installation folder, a Saved Games folder and a Liveries folder are all handled, and you can pass several:
python find-broken-livery.py "C:\Program Files\Eagle Dynamics\DCS World"
It always prints every location it searched and how many files it read, before any findings, so you can see whether it actually reached your liveries. A result of “nothing found” means little if the list shows it never looked where your files are — send the whole output if you are unsure.
Fix it. Move that livery’s whole folder out of the Liveries directory (do not just rename the file inside it), then restart Claude Desktop. The livery will no longer be available in DCS until you replace it with a working copy, but everything else returns to normal.
One thing that will mislead you. A value like .1 is perfectly valid and is not the problem. The error is caused by a lone . where a number should be. Searching your liveries for dots by hand will send you to the wrong file — use the script.
Fixed in 0.9.9. From 0.9.9 on, a livery that cannot be read is skipped instead of stopping you, and dcs-mcp names the file. If you still see this error, update to the current version; the steps above still work if you can’t update yet.
Current limitations (0.9.x beta)
- Terrain analysis is bare-earth. Elevation, line-of-sight, and viewshed calculations use terrain shape only — buildings and trees are not included. A ridge will mask a radar correctly; a city block won't.
- One writer at a time. If you edit the same mission in both dcs-mcp and the DCS Mission Editor, save from one before touching it with the other. Simultaneous edits can lose changes.
- Theater coverage: Caucasus ships built-in; Syria, Kola, Persian Gulf, Sinai, Mariana Islands, Nevada, Germany Cold War, the Falklands, Iraq, Afghanistan, Normandy 2.0, The Channel and Marianas WWII are available through the built-in Terrain Manager. The original Normandy map is not supported; missions made on it open on Normandy 2.0.
- Where dcs-mcp runs. dcs-mcp works with Claude Desktop on the machine where it's installed: in Chat, in Cowork, and in Claude's new layout that combines them. Reaching it from Claude on another computer, the web or a phone hasn't been tested.
- Newest DCS content lags slightly. Units and weapons added in the most recent DCS update may not be placeable until a dcs-mcp release catches up; dcs_install_report says when your DCS is newer than dcs-mcp's data. Missions containing them load and save safely — dcs-mcp preserves what it doesn't recognize.
- SmartScreen warnings: early beta builds are new binaries without download reputation; expect the More info → Run anyway dance for now.
- First start after install or terrain changes is slow. One-time cost per change; subsequent starts are fast.
Found something not on this list? #mcp-issues on Discord — that's what the beta is for.